< Summary

Information
Class: Trailblazer.Pathing.NavigationGraphEdge
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Graph/NavigationGraphEdge.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 72
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%
.ctor(...)100%11100%

File(s)

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

#LineLine coverage
 1//=======================================================================
 2// NavigationGraphEdge.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 GridForge.Grids.Topology;
 9
 10namespace Trailblazer.Pathing;
 11
 12/// <summary>Identifies the structural kind of one graph edge.</summary>
 13internal enum NavigationGraphEdgeKind : byte
 14{
 15    Native = 0,
 16    Explicit = 1,
 17    Seam = 2
 18}
 19
 20/// <summary>Describes one allocation-free graph edge result.</summary>
 21internal readonly struct NavigationGraphEdge
 22{
 23    internal NavigationGraphEdge(
 24        NavigationNodeRef target,
 25        NavigationGraphEdgeKind kind,
 26        GridNavigationPortal nativePortal,
 27        int nativeDirectionOrdinal = -1)
 28    {
 78893929        Target = target;
 78893930        Kind = kind;
 78893931        NativePortal = nativePortal;
 78893932        NativeDirectionOrdinal = nativeDirectionOrdinal;
 78893933        ExplicitConnection = null!;
 78893934        AutomaticSeam = default;
 78893935    }
 36
 37    internal NavigationGraphEdge(
 38        NavigationNodeRef target,
 39        NavigationExplicitConnectionRecord explicitConnection)
 40    {
 16708641        Target = target;
 16708642        Kind = NavigationGraphEdgeKind.Explicit;
 16708643        NativePortal = default;
 16708644        NativeDirectionOrdinal = -1;
 16708645        ExplicitConnection = explicitConnection;
 16708646        AutomaticSeam = default;
 16708647    }
 48
 49    internal NavigationGraphEdge(
 50        NavigationNodeRef target,
 51        NavigationAutomaticSeamRef automaticSeam)
 52    {
 20296953        Target = target;
 20296954        Kind = NavigationGraphEdgeKind.Seam;
 20296955        NativePortal = default;
 20296956        NativeDirectionOrdinal = -1;
 20296957        ExplicitConnection = null!;
 20296958        AutomaticSeam = automaticSeam;
 20296959    }
 60
 61    internal NavigationNodeRef Target { get; }
 62
 63    internal NavigationGraphEdgeKind Kind { get; }
 64
 65    internal GridNavigationPortal NativePortal { get; }
 66
 67    internal int NativeDirectionOrdinal { get; }
 68
 69    internal NavigationExplicitConnectionRecord ExplicitConnection { get; }
 70
 71    internal NavigationAutomaticSeamRef AutomaticSeam { get; }
 72}