22 #ifndef __PNS_LINE_PLACER_H 23 #define __PNS_LINE_PLACER_H 98 bool SetLayer(
int aLayer )
override;
405 #endif // __PNS_LINE_PLACER_H bool FixRoute(const VECTOR2I &aP, ITEM *aEndItem) override
Function FixRoute()
const ITEM_SET Traces() override
Function Traces()
bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()
NODE * m_lastNode
Postprocessed world state (including marked collisions & removed loops)
void routeStep(const VECTOR2I &aP)
Function routeStep()
NODE * m_world
pointer to world to search colliding items
void removeLoops(NODE *aNode, LINE &aLatest)
Function removeLoops()
const std::vector< int > CurrentNets() const override
Function CurrentNet()
const LINE reduceToNearestObstacle(const LINE &aOriginalLine)
LINE m_head
routing "head": volatile part of the track from the previously analyzed point to the current routing ...
bool rhWalkOnly(const VECTOR2I &aP, LINE &aNewHead)
route step, walkaround mode
void simplifyNewLine(NODE *aNode, SEGMENT *aLatest)
Function simplifyNewLine()
bool checkObtusity(const SEG &aA, const SEG &aB) const
Function checkObtusity()
bool reduceTail(const VECTOR2I &aEnd)
Function reduceTail()
const LINE & Tail() const
Function Tail()
bool handlePullback()
Function handlePullback()
LINE_PLACER(ROUTER *aRouter)
void UpdateSizes(const SIZES_SETTINGS &aSizes) override
Function UpdateSizes()
DIRECTION_45 m_initial_direction
routing direction for new traces
LINE m_tail
routing "tail": part of the track that has been already fixed due to collisions with obstacles ...
const LINE & Head() const
Function Head()
void setInitialDirection(const DIRECTION_45 &aDirection)
Function setInitialDirection()
LOGGER * Logger() override
Returns the logger object, allowing to dump geometry to a file.
bool SplitAdjacentSegments(NODE *aNode, ITEM *aSeg, const VECTOR2I &aP)
Function SplitAdjacentSegments()
DIRECTION_45 m_direction
current routing direction
void initPlacement()
Function startPlacement()
bool buildInitialLine(const VECTOR2I &aP, LINE &aHead, bool aInvertPosture=false)
void updateLeadingRatLine()
Function updateLeadingRatLine()
bool routeHead(const VECTOR2I &aP, LINE &aNewHead)
Function routeHead()
bool handleSelfIntersections()
Function handleSelfIntersections()
bool route(const VECTOR2I &aP)
Function route()
std::unique_ptr< SHOVE > m_shove
The shove engine
void GetModifiedNets(std::vector< int > &aNets) const override
Function GetModifiedNets.
bool rhMarkObstacles(const VECTOR2I &aP, LINE &aNewHead)
route step, mark obstacles mode
bool rhShoveOnly(const VECTOR2I &aP, LINE &aNewHead)
route step, shove mode
NODE * m_currentNode
Current world state
void setWorld(NODE *aWorld)
Function setWorld()
bool optimizeTailHeadTransition()
Function optimizeTailHeadTransition()
NODE * CurrentNode(bool aLoopsRemoved=false) const override
Function CurrentNode()
bool ToggleVia(bool aEnabled) override
Function ToggleVia()
void FlipPosture() override
Function FlipPosture()
const VECTOR2I & CurrentEnd() const override
Function CurrentEnd()
bool m_placingVia
Are we placing a via?
bool SetLayer(int aLayer) override
Function SetLayer()
VECTOR2I m_p_start
current routing start point (end of tail, beginning of head)
bool IsPlacingVia() const override
Function IsPlacingVia()
bool mergeHead()
Function mergeHead()
bool rhStopAtNearestObstacle(const VECTOR2I &aP, LINE &aNewHead)
void SetOrthoMode(bool aOrthoMode) override
Function SetOrthoMode()
bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
const VIA makeVia(const VECTOR2I &aP)
Push and Shove diff pair dimensions (gap) settings dialog.
const LINE Trace() const
Function Trace()
int CurrentLayer() const override
Function CurrentLayer()