Show / Hide Table of Contents

Interface IPathView

A view of the underlying TilePropagator used for various path constraints, such as ConnectedConstraint.

This is best understood as exposing two array of bool variables, called "path" and "relevant". These are variables in the constraint solver sense - that is, we track if they could be true/false, and those evolve over time. The path variable at a given index is possibly true if CouldBePath is true, and it's possibly false if MustBePath is false. IPathView is responsible for propagating those variables back to the source of truth, the TilePropagator.:

  • Calling update propagates from TilePropagator to {Could/Must}Be{Path/Relevant}.
  • Calling {Select/Ban}{Path/Relevant} propagates back.

The path constraint is thus free to work entirely on the path and relevant variables, and doesn't use TilePropagator at all. The mapping between these two variables and the TilePropagator can cause a variety of effects.

The arrays of path and relevant don't need to match the topology of the TilePropagator at all, they use the Graph variable for their topology.

The interpretation of path and relevant varies between the different path constraints, but generally the path=t

Namespace: DeBroglie.Constraints
Assembly: DeBroglie.dll
Syntax
public interface IPathView

Properties

| Edit this page View Source

CouldBePath

Declaration
bool[] CouldBePath { get; }
Property Value
Type Description
bool[]
| Edit this page View Source

CouldBeRelevant

Declaration
bool[] CouldBeRelevant { get; }
Property Value
Type Description
bool[]
| Edit this page View Source

Graph

Declaration
PathConstraintUtils.SimpleGraph Graph { get; }
Property Value
Type Description
PathConstraintUtils.SimpleGraph
| Edit this page View Source

MustBePath

Declaration
bool[] MustBePath { get; }
Property Value
Type Description
bool[]
| Edit this page View Source

MustBeRelevant

Declaration
bool[] MustBeRelevant { get; }
Property Value
Type Description
bool[]

Methods

| Edit this page View Source

BanPath(int)

Updates the TilePropagator such that CouldBePath[index] and MustBePath[index] becomes false.

Declaration
void BanPath(int index)
Parameters
Type Name Description
int index
| Edit this page View Source

BanRelevant(int)

Updates the TilePropagator such that CouldBeRelevant[index] and MustBeRelevant[index] becomes false.

Declaration
void BanRelevant(int index)
Parameters
Type Name Description
int index
| Edit this page View Source

SelectPath(int)

Updates the TilePropagator such that CouldBePath[index] and MustBePath[index] become true.

Declaration
void SelectPath(int index)
Parameters
Type Name Description
int index
| Edit this page View Source

Update()

Updates CouldBePath,MustBePath,CouldBeRelevant,MustBeRelevant, to reflect the current state of the TilePropagator

Declaration
void Update()

Extension Methods

PathViewExtensions.Init(IPathView)
  • Edit this page
  • View Source
In this article
Back to top Generated by DocFX