< Summary

Information
Class: Gravitas.Colliders.ColliderSettings
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Colliders/Definitions/ColliderSettings.cs
Line coverage
100%
Covered lines: 83
Uncovered lines: 0
Coverable lines: 83
Total lines: 105
Line coverage: 100%
Branch coverage
100%
Covered branches: 90
Total branches: 90
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%99100%
GetCollisionType(...)100%8181100%

File(s)

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

#LineLine coverage
 1//=======================================================================
 2// ColliderSettings.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>Provides deterministic priority and collision-dispatch metadata for 3D collider shapes.</summary>
 13public static class ColliderSettings
 14{
 15    /// <summary>Gets the narrow-phase priority used to order 3D colliders before dispatch.</summary>
 16    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 17    public static int GetPriority(ColliderType type) =>
 1054318        type switch
 1054319        {
 611420            ColliderType.Sphere => 0,
 14621            ColliderType.Capsule => 1,
 9722            ColliderType.Cylinder => 1,
 6823            ColliderType.Cone => 1,
 38824            ColliderType.AABox => 2,
 339325            ColliderType.OBBox => 2,
 27126            ColliderType.Mesh => 3,
 6427            ColliderType.Compound => 4,
 228            _ => -1
 1054329        };
 30
 31    /// <summary>Resolves the narrow-phase collision type for an ordered pair of 3D collider shapes.</summary>
 32    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 33    public static CollisionType GetCollisionType(ColliderType type1, ColliderType type2) =>
 402834        (type1, type2) switch
 402835        {
 28036            (ColliderType.Sphere, ColliderType.Sphere) => CollisionType.Sphere_Sphere,
 637            (ColliderType.Sphere, ColliderType.AABox or ColliderType.OBBox) => CollisionType.Cuboid_Sphere,
 138            (ColliderType.Sphere, ColliderType.Capsule) => CollisionType.Capsule_Sphere,
 139            (ColliderType.Sphere, ColliderType.Cylinder) => CollisionType.Cylinder_Sphere,
 140            (ColliderType.Sphere, ColliderType.Cone) => CollisionType.Cone_Sphere,
 141            (ColliderType.Sphere, ColliderType.Mesh) => CollisionType.Mesh_Sphere,
 142            (ColliderType.Sphere, ColliderType.Compound) => CollisionType.Compound,
 402843
 544            (ColliderType.Capsule, ColliderType.Sphere) => CollisionType.Capsule_Sphere,
 145            (ColliderType.Capsule, ColliderType.AABox) => CollisionType.AABox_Capsule,
 146            (ColliderType.Capsule, ColliderType.OBBox) => CollisionType.OBBox_Capsule,
 1547            (ColliderType.Capsule, ColliderType.Capsule) => CollisionType.Capsule_Capsule,
 248            (ColliderType.Capsule, ColliderType.Cylinder) => CollisionType.Cylinder_Capsule,
 149            (ColliderType.Capsule, ColliderType.Cone) => CollisionType.Cone_Convex,
 150            (ColliderType.Capsule, ColliderType.Mesh) => CollisionType.Mesh_Capsule,
 151            (ColliderType.Capsule, ColliderType.Compound) => CollisionType.Compound,
 402852
 334453            (ColliderType.AABox or ColliderType.OBBox, ColliderType.Sphere) => CollisionType.Cuboid_Sphere,
 2054            (ColliderType.AABox, ColliderType.Capsule) => CollisionType.AABox_Capsule,
 1455            (ColliderType.OBBox, ColliderType.Capsule) => CollisionType.OBBox_Capsule,
 402856            (ColliderType.AABox or ColliderType.OBBox, ColliderType.AABox or ColliderType.OBBox) =>
 5657                CollisionType.Cuboid_Cuboid,
 402858            (ColliderType.AABox or ColliderType.OBBox, ColliderType.Cylinder) =>
 1259                CollisionType.Cuboid_Cylinder,
 960            (ColliderType.AABox or ColliderType.OBBox, ColliderType.Cone) => CollisionType.Cone_Convex,
 561            (ColliderType.AABox or ColliderType.OBBox, ColliderType.Mesh) => CollisionType.Mesh_Cuboid,
 262            (ColliderType.AABox or ColliderType.OBBox, ColliderType.Compound) => CollisionType.Compound,
 402863
 1164            (ColliderType.Cylinder, ColliderType.Sphere) => CollisionType.Cylinder_Sphere,
 765            (ColliderType.Cylinder, ColliderType.Capsule) => CollisionType.Cylinder_Capsule,
 402866            (ColliderType.Cylinder, ColliderType.AABox or ColliderType.OBBox) =>
 267                CollisionType.Cuboid_Cylinder,
 968            (ColliderType.Cylinder, ColliderType.Cylinder) => CollisionType.Cylinder_Cylinder,
 169            (ColliderType.Cylinder, ColliderType.Cone) => CollisionType.Cone_Convex,
 170            (ColliderType.Cylinder, ColliderType.Mesh) => CollisionType.Mesh_Cylinder,
 171            (ColliderType.Cylinder, ColliderType.Compound) => CollisionType.Compound,
 402872
 402873            (
 402874                ColliderType.Cone,
 402875                ColliderType.Capsule
 402876                    or ColliderType.AABox
 402877                    or ColliderType.OBBox
 402878                    or ColliderType.Cylinder
 1079                    or ColliderType.Cone) => CollisionType.Cone_Convex,
 880            (ColliderType.Cone, ColliderType.Sphere) => CollisionType.Cone_Sphere,
 181            (ColliderType.Cone, ColliderType.Mesh) => CollisionType.Mesh_Cone,
 182            (ColliderType.Cone, ColliderType.Compound) => CollisionType.Compound,
 402883
 1384            (ColliderType.Mesh, ColliderType.Sphere) => CollisionType.Mesh_Sphere,
 1785            (ColliderType.Mesh, ColliderType.Capsule) => CollisionType.Mesh_Capsule,
 7286            (ColliderType.Mesh, ColliderType.AABox or ColliderType.OBBox) => CollisionType.Mesh_Cuboid,
 1587            (ColliderType.Mesh, ColliderType.Cylinder) => CollisionType.Mesh_Cylinder,
 1488            (ColliderType.Mesh, ColliderType.Cone) => CollisionType.Mesh_Cone,
 2389            (ColliderType.Mesh, ColliderType.Mesh) => CollisionType.Mesh_Mesh,
 190            (ColliderType.Mesh, ColliderType.Compound) => CollisionType.Compound,
 402891
 402892            (
 402893                ColliderType.Compound,
 402894                ColliderType.Sphere
 402895                    or ColliderType.Capsule
 402896                    or ColliderType.AABox
 402897                    or ColliderType.OBBox
 402898                    or ColliderType.Cylinder
 402899                    or ColliderType.Cone
 4028100                    or ColliderType.Mesh
 24101                    or ColliderType.Compound) => CollisionType.Compound,
 4028102
 17103            _ => CollisionType.None
 4028104        };
 105}