Show / Hide Table of Contents

Class PathRegion

Defines a region, which is a connected set of positions which can all be reached from each other.

Inheritance
System.Object
PathRegion
Namespace: Eco.Simulation.Pathfinding.Internal
Assembly: Eco.Simulation.dll
Syntax
public class PathRegion : Object

Constructors

PathRegion()

Declaration
public PathRegion()

Fields

CanTraverseByRegionType

Declaration
public static readonly bool[][] CanTraverseByRegionType
Field Value
Type Description
System.Boolean[][]

PosList

Declaration
public ThreadSafeList<WorldPosition3i> PosList
Field Value
Type Description
ThreadSafeList<WorldPosition3i>

Properties

Id

Declaration
public int Id { get; }
Property Value
Type Description
System.Int32

PathRegionType

Declaration
public PathRegionType PathRegionType { get; }
Property Value
Type Description
PathRegionType

PosSet

Declaration
public ThreadSafeHashSet<WorldPosition3i> PosSet { get; }
Property Value
Type Description
ThreadSafeHashSet<WorldPosition3i>

Size

Declaration
public int Size { get; }
Property Value
Type Description
System.Int32

Methods

CalcValid()

Declaration
public bool CalcValid()
Returns
Type Description
System.Boolean

CanTraverse(PackedPathNode.PathBlockType)

Declaration
public bool CanTraverse(PackedPathNode.PathBlockType blockType)
Parameters
Type Name Description
PackedPathNode.PathBlockType blockType
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
Type Name Description
PackedPathNode node
WorldPosition3i centerPos
System.Span<WorldPosition3i> values
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
Type Name Description
PackedPathNode node
WorldPosition3i centerPos
System.Span<System.ValueTuple<WorldPosition3i, PackedPathNode.Movability, HorzDir>> values
Returns
Type Description
System.Int32

GetAcceptableTransitions(PathRegionType)

Declaration
public static bool[] GetAcceptableTransitions(PathRegionType type)
Parameters
Type Name Description
PathRegionType type
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
Type Name Description
WorldPosition3i startRaw
System.Numerics.Vector3 dir
System.Single min
System.Single max
PathfindFlags flags
System.Func<WorldPosition3i, System.Boolean> filterFunc
System.Single tramplePref
Returns
Type Description
WorldPosition3i

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
Type Name Description
WorldPosition3i pos
PathRegionType type
System.Collections.Generic.IReadOnlyDictionary<WorldPosition3i, PackedPathNode> graph
System.Collections.Generic.IReadOnlyDictionary<WorldPosition3i, PathRegion> posToRegion

Merge(PathRegion)

Declaration
public void Merge(PathRegion other)
Parameters
Type Name Description
PathRegion other

UpdateNodeConnectivity(WorldPosition3i, WorldPosition3i, PackedPathNode, Span<WorldPosition3i>)

Declaration
public bool UpdateNodeConnectivity(WorldPosition3i oldPos, WorldPosition3i newPos, PackedPathNode newNode, Span<WorldPosition3i> neighbors)
Parameters
Type Name Description
WorldPosition3i oldPos
WorldPosition3i newPos
PackedPathNode newNode
System.Span<WorldPosition3i> neighbors
Returns
Type Description
System.Boolean
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾