< Summary

Information
Class: Gravitas.CollisionHandling.CylinderContactGeometry
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Detection/3D/CylinderContactGeometry.cs
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 31
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
IsAxisAligned(...)100%11100%
GetCapBasis(...)100%11100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Detection/3D/CylinderContactGeometry.cs

#LineLine coverage
 1//=======================================================================
 2// CylinderContactGeometry.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 Gravitas.Colliders;
 10using System.Runtime.CompilerServices;
 11
 12namespace Gravitas.CollisionHandling;
 13
 14internal static class CylinderContactGeometry
 15{
 16    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 17    public static bool IsAxisAligned(
 18        FixedQuaternion rotation,
 19        Vector3d localAxis,
 20        Vector3d direction) =>
 85521        Vector3d.Dot(
 85522            localAxis,
 85523            rotation.Inverse().Rotate(direction)).Abs()
 85524        >= Fixed64.FromFraction(63, 64);
 25
 26    public static void GetCapBasis(LSCylinderCollider cylinder, out Vector3d tangentA, out Vector3d tangentB)
 27    {
 43428        tangentA = (cylinder.Rotation * Vector3d.Right).Normalized;
 43429        tangentB = (cylinder.Rotation * Vector3d.Forward).Normalized;
 43430    }
 31}