46class DIFF_PAIR_PLACER;
102 int aFlags = 0 ) = 0;
163 void GetUpdatedItems( std::vector<PNS::ITEM*>& aRemoved, std::vector<PNS::ITEM*>& aAdded,
164 std::vector<PNS::ITEM*>& aHeads );
242 ITEM*& aOtherEndItem );
Base class for PNS router board items.
Keep the router "world" - i.e.
std::vector< ITEM * > ITEM_VECTOR
virtual void DisplayPathLine(const SHAPE_LINE_CHAIN &aLine, int aImportance)=0
virtual int GetPNSLayerFromBoardLayer(PCB_LAYER_ID aLayer) const =0
virtual void RemoveItem(ITEM *aItem)=0
virtual void UpdateItem(ITEM *aItem)=0
virtual wxString GetNetName(PNS::NET_HANDLE aNet) const =0
virtual bool IsItemVisible(const PNS::ITEM *aItem) const =0
virtual void DisplayItem(const ITEM *aItem, int aClearance, bool aEdit=false, int aFlags=0)=0
virtual DEBUG_DECORATOR * GetDebugDecorator()=0
virtual void HideItem(ITEM *aItem)=0
virtual int GetNetCode(NET_HANDLE aNet) const =0
virtual bool IsPNSCopperLayer(int aPNSLayer) const =0
virtual RULE_RESOLVER * GetRuleResolver()=0
virtual PCB_LAYER_ID GetBoardLayerFromPNSLayer(int aLayer) const =0
virtual void UpdateNet(NET_HANDLE aNet)=0
virtual void AddItem(ITEM *aItem)=0
virtual void DisplayRatline(const SHAPE_LINE_CHAIN &aRatline, NET_HANDLE aNetCode)=0
virtual bool ImportSizes(SIZES_SETTINGS &aSizes, ITEM *aStartItem, NET_HANDLE aNet, VECTOR2D aStartPosition)=0
virtual void EraseView()=0
virtual void SyncWorld(NODE *aNode)=0
virtual bool IsFlashedOnLayer(const PNS::ITEM *aItem, int aLayer) const =0
virtual NET_HANDLE GetOrphanedNetHandle()=0
virtual int StackupHeight(int aFirstLayer, int aSecondLayer) const =0
virtual bool IsFlashedOnLayer(const PNS::ITEM *aItem, const PNS_LAYER_RANGE &aLayer) const =0
virtual bool IsAnyLayerVisible(const PNS_LAYER_RANGE &aLayer) const =0
virtual PNS::NODE * GetWorld() const =0
void updateView(NODE *aNode, ITEM_SET &aCurrent, bool aDragging=false)
void SetMode(ROUTER_MODE aMode)
bool moveDragging(const VECTOR2I &aP, ITEM *aItem)
bool SwitchLayer(int layer)
void SetIterLimit(int aX)
void ClearViewDecorations()
std::vector< PNS::ITEM * > m_leaderSegments
PLACEMENT_ALGO * Placer()
std::vector< PNS::ITEM * > GetLastCommittedLeaderSegments()
ROUTER_IFACE * GetInterface() const
void BreakSegmentOrArc(ITEM *aItem, const VECTOR2I &aP)
bool ContinueFromEnd(ITEM **aNewStartItem)
void UpdateSizes(const SIZES_SETTINGS &aSizes)
Applies stored settings.
void SetFailureReason(const wxString &aReason)
void LoadSettings(ROUTING_SETTINGS *aSettings)
Changes routing settings to ones passed in the parameter.
std::unique_ptr< DRAG_ALGO > m_dragger
const ITEM_SET QueryHoverItems(const VECTOR2I &aP, int aSlopRadius=0)
void SetInterface(ROUTER_IFACE *aIface)
const BOX2I & VisibleViewArea() const
void markViolations(NODE *aNode, ITEM_SET &aCurrent, NODE::ITEM_VECTOR &aRemoved)
std::unique_ptr< PLACEMENT_ALGO > m_placer
const wxString & FailureReason() const
bool isStartingPointRoutable(const VECTOR2I &aWhere, ITEM *aItem, int aLayer)
bool IsPlacingVia() const
RULE_RESOLVER * GetRuleResolver() const
ROUTING_SETTINGS & Settings()
bool movePlacing(const VECTOR2I &aP, ITEM *aItem)
bool RoutingInProgress() const
RouterState GetState() const
static ROUTER * GetInstance()
std::optional< VECTOR2I > UndoLastSegment()
void SetOrthoMode(bool aEnable)
bool StartDragging(const VECTOR2I &aP, ITEM *aItem, int aDragMode=DM_ANY)
bool StartRouting(const VECTOR2I &aP, ITEM *aItem, int aLayer)
void SetVisibleViewArea(const BOX2I &aExtents)
int GetCurrentLayer() const
bool getNearestRatnestAnchor(VECTOR2I &aOtherEnd, PNS_LAYER_RANGE &aOtherEndLayers, ITEM *&aOtherEndItem)
void GetUpdatedItems(std::vector< PNS::ITEM * > &aRemoved, std::vector< PNS::ITEM * > &aAdded, std::vector< PNS::ITEM * > &aHeads)
std::unique_ptr< SHOVE > m_shove
bool FixRoute(const VECTOR2I &aP, ITEM *aItem, bool aForceFinish, bool aForceCommit)
std::unique_ptr< NODE > m_world
void ToggleViaPlacement()
ROUTING_SETTINGS * m_settings
const std::vector< NET_HANDLE > GetCurrentNets() const
wxString m_toolStatusbarName
bool Move(const VECTOR2I &aP, ITEM *aItem)
Contain all persistent settings of the router, such as the mode, optimization effort,...
Represent a contiguous set of PCB layers.
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
PCB_LAYER_ID
A quick note on layer IDs:
The Cairo implementation of the graphics abstraction layer.
Push and Shove diff pair dimensions (gap) settings dialog.
@ PNS_MODE_ROUTE_DIFF_PAIR
@ PNS_MODE_TUNE_DIFF_PAIR
@ PNS_MODE_TUNE_DIFF_PAIR_SKEW