21#ifndef __PNS_MULTI_DRAGGER_H
22#define __PNS_MULTI_DRAGGER_H
75 bool FixRoute(
bool aForceCommit )
override;
90 const std::vector<NET_HANDLE>
CurrentNets()
const override;
DRAG_ALGO(ROUTER *aRouter)
Base class for PNS router board items.
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
bool multidragShove(std::vector< MDRAG_LINE > &aCompletedLines)
bool multidragMarkObstacles(std::vector< MDRAG_LINE > &aCompletedLines)
virtual bool GetForceMarkObstaclesMode(bool *aDragStatus) const override
std::vector< PNS::ITEM * > m_leaderSegments
virtual bool Start(const VECTOR2I &aP, ITEM_SET &aPrimitives) override
Function Start()
bool FixRoute(bool aForceCommit) override
Function FixRoute()
bool Drag(const VECTOR2I &aP) override
Function Drag()
ITEM_SET m_origDraggedItems
int CurrentLayer() const override
Function CurrentLayer()
NODE * CurrentNode() const override
Function CurrentNode()
std::vector< MDRAG_LINE > m_mdragLines
bool tryWalkaround(NODE *aNode, LINE &aOrig, LINE &aWalk)
VECTOR2I m_dragStartPoint
void SetMode(PNS::DRAG_MODE aDragMode) override
int findNewLeaderSegment(const MDRAG_LINE &aLine) const
void restoreLeaderSegments(std::vector< MDRAG_LINE > &aCompletedLines)
virtual std::vector< PNS::ITEM * > GetLastCommittedLeaderSegments() override
bool multidragWalkaround(std::vector< MDRAG_LINE > &aCompletedLines)
const ITEM_SET Traces() override
Function Traces()
const std::vector< NET_HANDLE > CurrentNets() const override
Function CurrentNets()
MULTI_DRAGGER(ROUTER *aRouter)
PNS::DRAG_MODE Mode() const override
std::unique_ptr< SHOVE > m_shove
Keep the router "world" - i.e.
Perform various optimizations of the lines being routed, attempting to make the lines shorter and les...
The actual Push and Shove algorithm.
Push and Shove diff pair dimensions (gap) settings dialog.
std::vector< PNS::ITEM * > originalLeaders
VECTOR2< int32_t > VECTOR2I