< Summary

Information
Class: Gravitas.CollisionHandling.ContactWarmStartImpulse
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Contacts/Shared/ContactWarmStartImpulse.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 42
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%
.ctor(...)100%11100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/CollisionHandling/Contacts/Shared/ContactWarmStartImpulse.cs

#LineLine coverage
 1//=======================================================================
 2// ContactWarmStartImpulse.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;
 9
 10namespace Gravitas.CollisionHandling;
 11
 12/// <summary>
 13/// Stores deterministic impulse scalars from the previous solve for one stable manifold contact.
 14/// </summary>
 15internal readonly struct ContactWarmStartImpulse
 16{
 17    public ContactWarmStartImpulse(Fixed64 normalImpulse, Fixed64 tangentImpulse)
 207418        : this(Vector3d.Zero, normalImpulse, tangentImpulse, Fixed64.Zero) { }
 19
 20    public ContactWarmStartImpulse(
 21        Vector3d normal,
 22        Fixed64 normalImpulse,
 23        Fixed64 tangentImpulse,
 24        Fixed64 secondaryTangentImpulse)
 25    {
 1015826        Normal = normal;
 1015827        NormalImpulse = normalImpulse;
 1015828        TangentImpulse = tangentImpulse;
 1015829        SecondaryTangentImpulse = secondaryTangentImpulse;
 1015830    }
 31
 32    public Vector3d Normal { get; }
 33
 34    public Fixed64 NormalImpulse { get; }
 35
 36    public Fixed64 TangentImpulse { get; }
 37
 38    /// <summary>
 39    /// Secondary tangent impulse for 3D contacts. Pure 2D contacts leave this value at zero.
 40    /// </summary>
 41    public Fixed64 SecondaryTangentImpulse { get; }
 42}