< Summary

Information
Class: Gravitas.Colliders.ColliderPartitionState2D
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Colliders/State/ColliderPartitionState2D.cs
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 59
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
MarkBroadPhaseChanged()100%11100%
MarkPartitioned()100%11100%
MarkUnpartitioned()100%11100%
MatchesGridBounds(...)100%66100%
SetPreviousGridBounds(...)100%11100%
ClearCoordinates()100%22100%

File(s)

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

#LineLine coverage
 1//=======================================================================
 2// ColliderPartitionState2D.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 FixedMathSharp;
 9using GridForge.Spatial;
 10using SwiftCollections;
 11using System.Runtime.CompilerServices;
 12
 13namespace Gravitas.Colliders;
 14
 15internal struct ColliderPartitionState2D
 16{
 17    public bool IsPartitioned { get; private set; }
 18
 19    public uint BroadPhaseVersion { get; private set; }
 20
 21    public Vector2d LastGridBoundsMin { get; private set; }
 22
 23    public Vector2d LastGridBoundsMax { get; private set; }
 24
 25    public int LastPartitionKind { get; private set; }
 26
 27    public SwiftList<WorldVoxelIndex>? Coordinates;
 28
 29    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 674630    public void MarkBroadPhaseChanged() => BroadPhaseVersion++;
 31
 32    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 33    public void MarkPartitioned()
 34    {
 674635        IsPartitioned = true;
 674636        MarkBroadPhaseChanged();
 674637    }
 38
 39    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 256440    public void MarkUnpartitioned() => IsPartitioned = false;
 41
 42    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 43    public bool MatchesGridBounds(Vector2d min, Vector2d max, int partitionKind) =>
 217644        IsPartitioned
 217645        && LastGridBoundsMin == min
 217646        && LastGridBoundsMax == max
 217647        && LastPartitionKind == partitionKind;
 48
 49    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 50    public void SetPreviousGridBounds(Vector2d min, Vector2d max, int partitionKind = 0)
 51    {
 674652        LastGridBoundsMin = min;
 674653        LastGridBoundsMax = max;
 674654        LastPartitionKind = partitionKind;
 674655    }
 56
 57    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 256658    public void ClearCoordinates() => Coordinates?.Clear();
 59}