< Summary

Information
Class: Gravitas.Colliders.ColliderPairState<T>
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Colliders/State/ColliderPairState.cs
Line coverage
100%
Covered lines: 22
Uncovered lines: 0
Coverable lines: 22
Total lines: 76
Line coverage: 100%
Branch coverage
100%
Covered branches: 20
Total branches: 20
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_CollisionPairCount()100%22100%
get_CollisionPairHolderCount()100%22100%
get_CollisionPairs()100%11100%
get_CollisionPairHolders()100%11100%
TryGetCollisionPair(...)100%22100%
TryAddCollisionPair(...)100%22100%
TryRemoveCollisionPair(...)100%44100%
TryAddCollisionPairHolder(...)100%22100%
TryRemoveCollisionPairHolder(...)100%22100%
ClearCollisionPairs()100%22100%
ClearCollisionPairHolders()100%22100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/Colliders/State/ColliderPairState.cs

#LineLine coverage
 1//=======================================================================
 2// ColliderPairState.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2026–present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8using SwiftCollections;
 9using System.Runtime.CompilerServices;
 10
 11namespace Gravitas.Colliders;
 12
 13internal struct ColliderPairState<TPair>
 14    where TPair : class
 15{
 16    private SwiftDictionary<int, TPair>? _collisionPairs;
 17    private SwiftHashSet<int>? _collisionPairHolders;
 18
 191319    public int CollisionPairCount => _collisionPairs?.Count ?? 0;
 20
 192921    public int CollisionPairHolderCount => _collisionPairHolders?.Count ?? 0;
 22
 109823    public SwiftDictionary<int, TPair>? CollisionPairs => _collisionPairs;
 24
 109825    public SwiftHashSet<int>? CollisionPairHolders => _collisionPairHolders;
 26
 27    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 28    public bool TryGetCollisionPair(int otherId, out TPair? collisionPair)
 29    {
 10411430        if (_collisionPairs == null)
 31        {
 1893332            collisionPair = null;
 1893333            return false;
 34        }
 35
 8518136        return _collisionPairs.TryGetValue(otherId, out collisionPair);
 37    }
 38
 39    public bool TryAddCollisionPair(int otherId, TPair collisionPair)
 40    {
 52041        _collisionPairs ??= new();
 52042        return _collisionPairs.Add(otherId, collisionPair);
 43    }
 44
 45    public bool TryRemoveCollisionPair(int otherId, out TPair? collisionPair)
 46    {
 11747        if (_collisionPairs == null)
 48        {
 449            collisionPair = null;
 450            return false;
 51        }
 52
 11353        if (!_collisionPairs.TryGetValue(otherId, out collisionPair))
 554            return false;
 55
 10856        _collisionPairs.Remove(otherId);
 10857        return true;
 58    }
 59
 60    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 61    public bool TryAddCollisionPairHolder(int otherId)
 62    {
 51863        _collisionPairHolders ??= new();
 51864        return _collisionPairHolders.Add(otherId);
 65    }
 66
 67    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 68    public bool TryRemoveCollisionPairHolder(int otherId) =>
 11669        _collisionPairHolders?.Remove(otherId) == true;
 70
 71    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 113772    public void ClearCollisionPairs() => _collisionPairs?.Clear();
 73
 74    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 113775    public void ClearCollisionPairHolders() => _collisionPairHolders?.Clear();
 76}