22#ifndef __PNS_PLACEMENT_ALGO_H
23#define __PNS_PLACEMENT_ALGO_H
81 virtual std::optional<VECTOR2I>
UnfixRoute() {
return std::nullopt; };
Base class for all P&S algorithms (shoving, walkaround, line placement, dragging, etc....
Base class for PNS router board items.
Keep the router "world" - i.e.
virtual NODE * CurrentNode(bool aLoopsRemoved=false) const =0
Function CurrentNode()
virtual bool IsPlacingVia() const
Function IsPlacingVia()
virtual bool CommitPlacement()
virtual void FlipPosture()
Function FlipPosture()
virtual const VECTOR2I & CurrentEnd() const =0
Function CurrentEnd()
virtual const ITEM_SET Traces()=0
Function Traces()
virtual bool Start(const VECTOR2I &aP, ITEM *aStartItem)=0
Function Start()
virtual ~PLACEMENT_ALGO()
virtual bool HasPlacedAnything() const
PLACEMENT_ALGO(ROUTER *aRouter)
virtual bool AbortPlacement()
virtual bool Move(const VECTOR2I &aP, ITEM *aEndItem)=0
Function Move()
virtual const VECTOR2I & CurrentStart() const =0
Function CurrentStart()
virtual int CurrentLayer() const =0
Function CurrentLayer()
virtual void SetOrthoMode(bool aOrthoMode)
Function SetOrthoMode()
virtual void GetModifiedNets(std::vector< NET_HANDLE > &aNets) const
Function GetModifiedNets.
virtual const std::vector< NET_HANDLE > CurrentNets() const =0
Function CurrentNets()
virtual bool ToggleVia(bool aEnabled)
Function ToggleVia()
virtual std::optional< VECTOR2I > UnfixRoute()
virtual bool SetLayer(int aLayer)
Function SetLayer()
virtual void UpdateSizes(const SIZES_SETTINGS &aSizes)
Function UpdateSizes()
virtual bool FixRoute(const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false)=0
Function FixRoute()
Push and Shove diff pair dimensions (gap) settings dialog.