< Summary

Information
Class: Gravitas.CollisionHandling.ResponseBody2D
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Response/2D/ResponseBody2D.cs
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 51
Line coverage: 100%
Branch coverage
100%
Covered branches: 10
Total branches: 10
Branch coverage: 100%
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_CanTranslate()100%22100%
get_CanRotate()100%22100%
get_HasSolverMobility()100%22100%
GetConstrainedInverseMass(...)100%22100%
Create(...)100%22100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Response/2D/ResponseBody2D.cs

#LineLine coverage
 1//=======================================================================
 2// ResponseBody2D.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/// Scalar pure 2D response body data for one collider participant.
 15/// </summary>
 16internal readonly struct ResponseBody2D
 17{
 18    private ResponseBody2D(SolidBody2D? body, Fixed64 inverseMass, Fixed64 inverseMoment)
 19    {
 196420        Body = body;
 196421        InverseMass = inverseMass;
 196422        InverseMoment = inverseMoment;
 196423    }
 24
 25    public SolidBody2D? Body { get; }
 26
 27    public Fixed64 InverseMass { get; }
 28
 29    public Fixed64 InverseMoment { get; }
 30
 109031    public bool CanTranslate => Body?.CanTranslate == true;
 32
 21633    public bool CanRotate => Body?.CanRotate == true;
 34
 161435    public bool HasSolverMobility => Body?.HasSolverMobility == true;
 36
 37    public Fixed64 GetConstrainedInverseMass(Vector2d axis) =>
 87638        Body?.GetConstrainedInverseMass(axis) ?? Fixed64.Zero;
 39
 40    public static ResponseBody2D Create(LSCollider2D collider)
 41    {
 199042        SolidBody2D? body = collider.Body;
 199043        if (body == null)
 2644            return default;
 45
 196446        return new ResponseBody2D(
 196447            body,
 196448            body.EffectiveInverseMass,
 196449            body.EffectiveInverseMomentOfInertia);
 50    }
 51}