< Summary

Information
Class: Gravitas.Colliders.ColliderSettings2D
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Colliders/Definitions/ColliderSettings2D.cs
Line coverage
100%
Covered lines: 41
Uncovered lines: 0
Coverable lines: 41
Total lines: 69
Line coverage: 100%
Branch coverage
100%
Covered branches: 34
Total branches: 34
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetPriority(...)100%66100%
GetCollisionType(...)100%2828100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/Colliders/Definitions/ColliderSettings2D.cs

#LineLine coverage
 1//=======================================================================
 2// ColliderSettings2D.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 System.Runtime.CompilerServices;
 9
 10namespace Gravitas.Colliders;
 11
 12/// <summary>
 13/// Provides deterministic priority and collision-dispatch metadata for pure 2D collider shapes.
 14/// </summary>
 15public static class ColliderSettings2D
 16{
 17    /// <summary>
 18    /// Gets the narrow-phase priority used to order 2D colliders before dispatch.
 19    /// </summary>
 20    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 21    public static int GetPriority(ColliderType2D type) =>
 157222        type switch
 157223        {
 114424            ColliderType2D.Circle => 0,
 1125            ColliderType2D.Capsule => 0,
 37726            ColliderType2D.AABox => 1,
 1127            ColliderType2D.ConvexPolygon => 1,
 2728            ColliderType2D.Compound => 2,
 229            _ => -1
 157230        };
 31
 32    /// <summary>
 33    /// Resolves the narrow-phase collision type for an ordered pair of 2D collider shapes.
 34    /// </summary>
 35    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 36    public static CollisionType2D GetCollisionType(ColliderType2D type1, ColliderType2D type2) =>
 296537        (type1, type2) switch
 296538        {
 34139            (ColliderType2D.Circle, ColliderType2D.Circle) => CollisionType2D.Circle_Circle,
 296540            (ColliderType2D.Circle, ColliderType2D.AABox or ColliderType2D.ConvexPolygon) =>
 5041                CollisionType2D.Circle_Convex,
 1142            (ColliderType2D.Circle, ColliderType2D.Capsule) => CollisionType2D.Circle_Capsule,
 296543            (ColliderType2D.AABox or ColliderType2D.ConvexPolygon, ColliderType2D.Circle) =>
 153244                CollisionType2D.Convex_Circle,
 296545            (
 296546                ColliderType2D.AABox or ColliderType2D.ConvexPolygon,
 46747                ColliderType2D.AABox or ColliderType2D.ConvexPolygon) => CollisionType2D.Convex_Convex,
 296548            (ColliderType2D.AABox or ColliderType2D.ConvexPolygon, ColliderType2D.Capsule) =>
 1949                CollisionType2D.Convex_Capsule,
 2350            (ColliderType2D.Capsule, ColliderType2D.Circle) => CollisionType2D.Capsule_Circle,
 296551            (ColliderType2D.Capsule, ColliderType2D.AABox or ColliderType2D.ConvexPolygon) =>
 44852                CollisionType2D.Capsule_Convex,
 2353            (ColliderType2D.Capsule, ColliderType2D.Capsule) => CollisionType2D.Capsule_Capsule,
 296554            (
 296555                ColliderType2D.Compound,
 296556                ColliderType2D.Circle
 296557                    or ColliderType2D.AABox
 296558                    or ColliderType2D.ConvexPolygon
 296559                    or ColliderType2D.Compound
 2760                    or ColliderType2D.Capsule) => CollisionType2D.Compound,
 296561            (
 296562                ColliderType2D.Circle
 296563                    or ColliderType2D.AABox
 296564                    or ColliderType2D.ConvexPolygon
 296565                    or ColliderType2D.Capsule,
 966                ColliderType2D.Compound) => CollisionType2D.Compound,
 1567            _ => CollisionType2D.None
 296568        };
 69}