Class PathRegion
Defines a region, which is a connected set of positions which can all be reached from each other.
Inheritance
System.Object
PathRegion
Assembly: Eco.Simulation.dll
Syntax
public class PathRegion : Object
Constructors
PathRegion()
Declaration
Fields
CanTraverseByRegionType
Declaration
public static readonly bool[][] CanTraverseByRegionType
Field Value
| Type |
Description |
| System.Boolean[][] |
|
PosList
Declaration
public ThreadSafeList<WorldPosition3i> PosList
Field Value
Properties
Id
Declaration
Property Value
| Type |
Description |
| System.Int32 |
|
PathRegionType
Declaration
public PathRegionType PathRegionType { get; }
Property Value
PosSet
Declaration
public ThreadSafeHashSet<WorldPosition3i> PosSet { get; }
Property Value
Size
Declaration
Property Value
| Type |
Description |
| System.Int32 |
|
Methods
CalcValid()
Declaration
Returns
| Type |
Description |
| System.Boolean |
|
CanTraverse(PackedPathNode.PathBlockType)
Declaration
public bool CanTraverse(PackedPathNode.PathBlockType blockType)
Parameters
Returns
| Type |
Description |
| System.Boolean |
|
FillNeighbors(PackedPathNode, WorldPosition3i, Span<WorldPosition3i>)
For debugging, can get all the valid neighbors from a given node and pos.
Declaration
public int FillNeighbors(PackedPathNode node, WorldPosition3i centerPos, Span<WorldPosition3i> values)
Parameters
Returns
| Type |
Description |
| System.Int32 |
|
FillNeighbors(PackedPathNode, WorldPosition3i, Span<(WorldPosition3i, PackedPathNode.Movability, HorzDir)>)
Declaration
public int FillNeighbors(PackedPathNode node, WorldPosition3i centerPos, Span<(WorldPosition3i, PackedPathNode.Movability, HorzDir)> values)
Parameters
Returns
| Type |
Description |
| System.Int32 |
|
GetAcceptableTransitions(PathRegionType)
Declaration
public static bool[] GetAcceptableTransitions(PathRegionType type)
Parameters
Returns
| Type |
Description |
| System.Boolean[] |
|
GetRandomPosition(WorldPosition3i, Vector3, Single, Single, PathfindFlags, Func<WorldPosition3i, Boolean>, Single)
Finds a random position, checking up to 100 points, that is in the given direction within 90 degrees, and is the given distance. If dir is zero, ignore. Filterfunc can block points from being considered. After 100, the filter is ignored.
Declaration
public WorldPosition3i GetRandomPosition(WorldPosition3i startRaw, Vector3 dir, float min, float max, PathfindFlags flags, Func<WorldPosition3i, bool> filterFunc = null, float tramplePref = 0.3F)
Parameters
Returns
Initialize(WorldPosition3i, PathRegionType, IReadOnlyDictionary<WorldPosition3i, PackedPathNode>, IReadOnlyDictionary<WorldPosition3i, PathRegion>)
Declaration
public void Initialize(WorldPosition3i pos, PathRegionType type, IReadOnlyDictionary<WorldPosition3i, PackedPathNode> graph, IReadOnlyDictionary<WorldPosition3i, PathRegion> posToRegion)
Parameters
Merge(PathRegion)
Declaration
public void Merge(PathRegion other)
Parameters
UpdateNodeConnectivity(WorldPosition3i, WorldPosition3i, PackedPathNode, Span<WorldPosition3i>)
Declaration
public bool UpdateNodeConnectivity(WorldPosition3i oldPos, WorldPosition3i newPos, PackedPathNode newNode, Span<WorldPosition3i> neighbors)
Parameters
Returns
| Type |
Description |
| System.Boolean |
|