< Summary

Information
Class: Trailblazer.Pathing.NavigationDistanceMath
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationDistanceMath.cs
Line coverage
100%
Covered lines: 10
Uncovered lines: 0
Coverable lines: 10
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
TryFloor(...)100%44100%
TryCeiling(...)100%44100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationDistanceMath.cs

#LineLine coverage
 1//=======================================================================
 2// NavigationDistanceMath.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2024-present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8using FixedMathSharp;
 9
 10namespace Trailblazer.Pathing;
 11
 12/// <summary>Provides conservative fixed-point bounds for exact geometric distances.</summary>
 13internal static class NavigationDistanceMath
 14{
 15    internal static bool TryFloor(Vector3d start, Vector3d end, out Fixed64 distance)
 16    {
 143617        if (!Vector3d.TryGetDistance(start, end, out distance))
 218            return false;
 143419        var scalar = new Vector3d(distance, Fixed64.Zero, Fixed64.Zero);
 143420        return Vector3d.CompareDistanceSquared(start, end, Vector3d.Zero, scalar) >= 0
 143421            || Fixed64.TrySubtract(distance, Fixed64.MinIncrement, out distance);
 22    }
 23
 24    internal static bool TryCeiling(Vector3d start, Vector3d end, out Fixed64 distance)
 25    {
 16843926        if (!Vector3d.TryGetDistance(start, end, out distance))
 627            return false;
 16843328        var scalar = new Vector3d(distance, Fixed64.Zero, Fixed64.Zero);
 16843329        return Vector3d.CompareDistanceSquared(start, end, Vector3d.Zero, scalar) <= 0
 16843330            || Fixed64.TryAdd(distance, Fixed64.MinIncrement, out distance);
 31    }
 32}