22#ifndef __PNS_WALKAROUND_H
23#define __PNS_WALKAROUND_H
125 bool aOptimize =
true );
Base class for all P&S algorithms (shoving, walkaround, line placement, dragging, etc....
ROUTING_SETTINGS & Settings() const
Return the logger object, allowing to dump geometry to a file.
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
Keep the router "world" - i.e.
std::optional< OBSTACLE > OPT_OBSTACLE
int WalkaroundIterationLimit() const
void SetIterationLimit(const int aIterLimit)
void SetLengthLimit(bool aEnable, double aLengthExpansionFactor)
void RestrictToCluster(bool aEnabled, const TOPOLOGY::CLUSTER &aCluster)
void SetSolidsOnly(bool aSolidsOnly)
STATUS Route(const LINE &aInitialPath, LINE &aWalkPath, bool aOptimize=true)
void SetForceWinding(bool aEnabled, bool aCw)
void SetWorld(NODE *aNode)
bool m_enabledPolicies[MaxWalkPolicies]
NODE::OPT_OBSTACLE nearestObstacle(const LINE &aPath)
void SetItemMask(int aMask)
std::vector< VECTOR2I > m_restrictedVertices
NODE::OPT_OBSTACLE m_currentObstacle[MaxWalkPolicies]
void SetAllowedPolicies(std::vector< WALK_POLICY > aPolicies)
void SetPickShortestPath(bool aEnabled)
void start(const LINE &aInitialPath)
TOPOLOGY::CLUSTER m_currentCluster[MaxWalkPolicies]
static constexpr int MaxWalkPolicies
std::optional< TOPOLOGY::CLUSTER > m_lastShortestCluster
WALKAROUND(NODE *aWorld, ROUTER *aRouter)
double m_lengthExpansionFactor
std::set< const ITEM * > m_restrictedSet
Push and Shove diff pair dimensions (gap) settings dialog.
LINE lines[MaxWalkPolicies]
STATUS status[MaxWalkPolicies]