|
Horizon
|
Single track placement algorithm. More...
#include <pns_diff_pair_placer.h>
Public Member Functions | |
| DIFF_PAIR_PLACER (ROUTER *aRouter) | |
| bool | Start (const VECTOR2I &aP, ITEM *aStartItem) override |
| Start routing a single track at point aP, taking item aStartItem as anchor (unless NULL). More... | |
| bool | Move (const VECTOR2I &aP, ITEM *aEndItem) override |
| Move the end of the currently routed trace to the point aP, taking aEndItem as anchor (if not NULL). More... | |
| bool | FixRoute (const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish) override |
| Commit the currently routed track to the parent node, taking aP as the final end point and aEndItem as the final anchor (if provided). More... | |
| bool | CommitPlacement () override |
| bool | AbortPlacement () override |
| bool | HasPlacedAnything () const override |
| bool | ToggleVia (bool aEnabled) override |
| Enable/disable a via at the end of currently routed trace. More... | |
| bool | SetLayer (int aLayer) override |
| Set the current routing layer. More... | |
| const ITEM_SET | Traces () override |
| Return the complete routed line, as a single-member ITEM_SET. More... | |
| const VECTOR2I & | CurrentEnd () const override |
| Return the current end of the line being placed. More... | |
| const std::vector< int > | CurrentNets () const override |
| Return the net code of currently routed track. More... | |
| int | CurrentLayer () const override |
| Return the layer of currently routed track. More... | |
| NODE * | CurrentNode (bool aLoopsRemoved=false) const override |
| Return the most recent world state. More... | |
| void | FlipPosture () override |
| Toggle the current posture (straight/diagonal) of the trace head. More... | |
| void | UpdateSizes (const SIZES_SETTINGS &aSizes) override |
| Perform on-the-fly update of the width, via diameter & drill size from a settings class. More... | |
| bool | IsPlacingVia () const override |
| Function IsPlacingVia() More... | |
| void | SetOrthoMode (bool aOrthoMode) override |
| Function SetOrthoMode() More... | |
| void | GetModifiedNets (std::vector< int > &aNets) const override |
| Function GetModifiedNets. More... | |
Public Member Functions inherited from PNS::PLACEMENT_ALGO | |
| PLACEMENT_ALGO (ROUTER *aRouter) | |
| virtual bool | Start (const VECTOR2I &aP, ITEM *aStartItem)=0 |
| Function Start() More... | |
| virtual bool | Move (const VECTOR2I &aP, ITEM *aEndItem)=0 |
| Function Move() More... | |
| virtual bool | FixRoute (const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false)=0 |
| Function FixRoute() More... | |
| virtual bool | UnfixRoute () |
| virtual bool | CommitPlacement () |
| virtual bool | AbortPlacement () |
| virtual bool | HasPlacedAnything () const |
| virtual bool | ToggleVia (bool aEnabled) |
| Function ToggleVia() More... | |
| virtual bool | IsPlacingVia () const |
| Function IsPlacingVia() More... | |
| virtual bool | SetLayer (int aLayer) |
| Function SetLayer() More... | |
| virtual const ITEM_SET | Traces ()=0 |
| Function Traces() More... | |
| virtual const VECTOR2I & | CurrentEnd () const =0 |
| Function CurrentEnd() More... | |
| virtual const std::vector< int > | CurrentNets () const =0 |
| Function CurrentNets() More... | |
| virtual int | CurrentLayer () const =0 |
| Function CurrentLayer() More... | |
| virtual NODE * | CurrentNode (bool aLoopsRemoved=false) const =0 |
| Function CurrentNode() More... | |
| virtual void | FlipPosture () |
| Function FlipPosture() More... | |
| virtual void | UpdateSizes (const SIZES_SETTINGS &aSizes) |
| Function UpdateSizes() More... | |
| virtual void | SetOrthoMode (bool aOrthoMode) |
| Function SetOrthoMode() More... | |
| virtual void | GetModifiedNets (std::vector< int > &aNets) const |
| Function GetModifiedNets. More... | |
Public Member Functions inherited from PNS::ALGO_BASE | |
| ALGO_BASE (ROUTER *aRouter) | |
| virtual | ~ALGO_BASE () |
| Return the instance of our router. | |
| ROUTER * | Router () const |
| Return current router settings. | |
| ROUTING_SETTINGS & | Settings () const |
| Return the logger object, allowing to dump geometry to a file. | |
| virtual LOGGER * | Logger () |
| void | SetLogger (LOGGER *aLogger) |
| void | SetDebugDecorator (DEBUG_DECORATOR *aDecorator) |
| Assign a debug decorator allowing this algo to draw extra graphics for visual debugging. | |
| DEBUG_DECORATOR * | Dbg () const |
| const BOX2I & | VisibleViewArea () const |
Static Public Member Functions | |
| static bool | FindDpPrimitivePair (NODE *aWorld, const VECTOR2I &aP, ITEM *aItem, DP_PRIMITIVE_PAIR &aPair, wxString *aErrorMsg=nullptr) |
Additional Inherited Members | |
Protected Attributes inherited from PNS::ALGO_BASE | |
| DEBUG_DECORATOR * | m_debugDecorator |
| ROUTER * | m_router |
| LOGGER * | m_logger |
Single track placement algorithm.
Interactively routes a track and applies shove and walk around algorithms when needed.
|
overridevirtual |
Reimplemented from PNS::PLACEMENT_ALGO.
|
overridevirtual |
Reimplemented from PNS::PLACEMENT_ALGO.
|
inlineoverridevirtual |
Return the current end of the line being placed.
It may not be equal to the cursor position due to collisions.
Implements PNS::PLACEMENT_ALGO.
|
inlineoverridevirtual |
Return the layer of currently routed track.
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Return the net code of currently routed track.
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Return the most recent world state.
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Commit the currently routed track to the parent node, taking aP as the final end point and aEndItem as the final anchor (if provided).
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Toggle the current posture (straight/diagonal) of the trace head.
Reimplemented from PNS::PLACEMENT_ALGO.
|
overridevirtual |
Function GetModifiedNets.
Returns the net codes of all currently routed trace(s)
Reimplemented from PNS::PLACEMENT_ALGO.
|
overridevirtual |
Reimplemented from PNS::PLACEMENT_ALGO.
|
inlineoverridevirtual |
Function IsPlacingVia()
Returns true if the placer is placing a via (or more vias).
Reimplemented from PNS::PLACEMENT_ALGO.
Move the end of the currently routed trace to the point aP, taking aEndItem as anchor (if not NULL).
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Set the current routing layer.
Reimplemented from PNS::PLACEMENT_ALGO.
|
overridevirtual |
Function SetOrthoMode()
Forces the router to place a straight 90/45 degree trace (with the end as near to the cursor as possible) instead of a standard 135 degree two-segment bend.
Reimplemented from PNS::PLACEMENT_ALGO.
Start routing a single track at point aP, taking item aStartItem as anchor (unless NULL).
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Enable/disable a via at the end of currently routed trace.
Reimplemented from PNS::PLACEMENT_ALGO.
|
overridevirtual |
Return the complete routed line, as a single-member ITEM_SET.
Implements PNS::PLACEMENT_ALGO.
|
overridevirtual |
Perform on-the-fly update of the width, via diameter & drill size from a settings class.
Used to dynamically change these parameters as the track is routed.
Reimplemented from PNS::PLACEMENT_ALGO.