< Summary

Information
Class: Gravitas.Queries.MixedQueryReducerClassifier
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Queries/Mixed/MixedQueryReducerClassifier.cs
Line coverage
100%
Covered lines: 19
Uncovered lines: 0
Coverable lines: 19
Total lines: 52
Line coverage: 100%
Branch coverage
100%
Covered branches: 24
Total branches: 24
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ClassifySweepSphereAgainst2D(...)100%1010100%
ClassifySweepCircleAgainst3D(...)100%1414100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/Queries/Mixed/MixedQueryReducerClassifier.cs

#LineLine coverage
 1//=======================================================================
 2// MixedQueryReducerClassifier.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 Gravitas.Colliders;
 9using System;
 10
 11namespace Gravitas.Queries;
 12
 13/// <summary>
 14/// Classifies mixed swept-query reducers before the exact candidate path runs.
 15/// </summary>
 16internal static class MixedQueryReducerClassifier
 17{
 18    internal static PhysicsQueryReducerKind ClassifySweepSphereAgainst2D(LSCollider2D collider)
 19    {
 820        if (collider is LSCircleCollider2D
 821            || collider is LSCapsuleCollider2D
 822            || collider is LSAABBoxCollider2D
 823            || collider is LSPolygonCollider2D)
 24        {
 625            return PhysicsQueryReducerKind.Exact;
 26        }
 27
 228        if (collider is LSCompoundCollider2D)
 129            return PhysicsQueryReducerKind.Exact;
 30
 131        throw new InvalidOperationException(
 132            "The embedded 2D collider type is not supported by mixed queries.");
 33    }
 34
 35    internal static PhysicsQueryReducerKind ClassifySweepCircleAgainst3D(LSCollider collider)
 36    {
 1137        if (collider is LSSphereCollider
 1138            || collider is LSCuboidCollider
 1139            || collider is LSCapsuleCollider
 1140            || collider is LSCylinderCollider
 1141            || collider is LSConeCollider
 1142            || collider is LSMeshCollider)
 43        {
 844            return PhysicsQueryReducerKind.Exact;
 45        }
 46
 347        if (collider is LSCompoundCollider)
 148            return PhysicsQueryReducerKind.Exact;
 49
 250        return PhysicsQueryReducerKind.ConservativeFallback;
 51    }
 52}