22#ifndef __PNS_WALKAROUND_H
23#define __PNS_WALKAROUND_H
108 void RestrictToSet(
bool aEnabled,
const std::set<ITEM*>& aSet );
111 bool aOptimize =
true );
113 const RESULT
Route(
const LINE& aInitialPath );
Base class for all P&S algorithms (shoving, walkaround, line placement, dragging, etc....
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
void SetIterationLimit(const int aIterLimit)
std::set< ITEM * > m_restrictedSet
void SetLengthLimit(bool aEnable)
void SetSolidsOnly(bool aSolidsOnly)
WALKAROUND_STATUS singleStep(LINE &aPath, bool aWindingDirection)
NODE::OPT_OBSTACLE m_currentObstacle[2]
void SetForceWinding(bool aEnabled, bool aCw)
void SetWorld(NODE *aNode)
NODE::OPT_OBSTACLE nearestObstacle(const LINE &aPath)
void SetItemMask(int aMask)
std::vector< VECTOR2I > m_restrictedVertices
WALKAROUND_STATUS Route(const LINE &aInitialPath, LINE &aWalkPath, bool aOptimize=true)
void start(const LINE &aInitialPath)
void RestrictToSet(bool aEnabled, const std::set< ITEM * > &aSet)
static const int DefaultIterationLimit
WALKAROUND(NODE *aWorld, ROUTER *aRouter)
Push and Shove diff pair dimensions (gap) settings dialog.
WALKAROUND_STATUS statusCcw
RESULT(WALKAROUND_STATUS aStatusCw=STUCK, WALKAROUND_STATUS aStatusCcw=STUCK, const LINE &aLineCw=LINE(), const LINE &aLineCcw=LINE())
WALKAROUND_STATUS statusCw