< Summary

Information
Class: Gravitas.CollisionHandling.ResponseBody
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Response/3D/ResponseBody.cs
Line coverage
100%
Covered lines: 10
Uncovered lines: 0
Coverable lines: 10
Total lines: 46
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
.ctor(...)100%11100%
get_HasSolverMobility()100%11100%
get_CanRotate()100%11100%
GetConstrainedInverseMass(...)100%11100%
Create(...)100%11100%
Create(...)100%11100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Response/3D/ResponseBody.cs

#LineLine coverage
 1//=======================================================================
 2// ResponseBody.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;
 10
 11namespace Gravitas.CollisionHandling;
 12
 13/// <summary>
 14/// Represents a body involved in a collision response, containing necessary information for collision resolution.
 15/// </summary>
 16internal readonly struct ResponseBody
 17{
 18    private ResponseBody(SolidBody body, Fixed64 inverseMass)
 19    {
 1767820        Body = body;
 1767821        InverseMass = inverseMass;
 1767822    }
 23
 24    public SolidBody Body { get; }
 25
 26    public Fixed64 InverseMass { get; }
 27
 3364128    public bool HasSolverMobility => Body.HasSolverMobility;
 29
 1230530    public bool CanRotate => Body.CanRotate;
 31
 32    public Fixed64 GetConstrainedInverseMass(Vector3d axis) =>
 1351033        Body.GetConstrainedInverseMass(axis);
 34
 35    public static ResponseBody Create(LSCollider collider)
 36    {
 1767837        SolidBody body = collider.Body!;
 1767838        return Create(body);
 39    }
 40
 41    public static ResponseBody Create(SolidBody body)
 42    {
 1767843        Fixed64 inverseMass = body.EffectiveInverseMass;
 1767844        return new ResponseBody(body, inverseMass);
 45    }
 46}