< Summary

Information
Class: Gravitas.PlanarRotation
Assembly: Gravitas
File(s): /home/runner/work/Gravitas/Gravitas/src/Gravitas/Support/PlanarRotation.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 32
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Canonicalize(...)100%88100%
Combine(...)100%11100%

File(s)

/home/runner/work/Gravitas/Gravitas/src/Gravitas/Support/PlanarRotation.cs

#LineLine coverage
 1//=======================================================================
 2// PlanarRotation.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 System.Runtime.CompilerServices;
 10
 11namespace Gravitas;
 12
 13internal static class PlanarRotation
 14{
 15    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 16    internal static Fixed64 Canonicalize(Fixed64 rotation)
 17    {
 6952918        if (rotation >= -Fixed64.Pi && rotation < Fixed64.Pi)
 6941919            return rotation;
 20
 11021        rotation %= Fixed64.TwoPi;
 11022        if (rotation >= Fixed64.Pi)
 7423            return rotation - Fixed64.TwoPi;
 3624        if (rotation < -Fixed64.Pi)
 625            return rotation + Fixed64.TwoPi;
 3026        return rotation;
 27    }
 28
 29    [MethodImpl(MethodImplOptions.AggressiveInlining)]
 30    internal static Fixed64 Combine(Fixed64 first, Fixed64 second) =>
 29231        Canonicalize(Canonicalize(first) + Canonicalize(second));
 32}