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). | |
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). | |
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). | |
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. | |
bool | SetLayer (int aLayer) override |
Set the current routing layer. | |
const ITEM_SET | Traces () override |
Return the complete routed line, as a single-member ITEM_SET. | |
const VECTOR2I & | CurrentEnd () const override |
Return the current end of the line being placed. | |
const std::vector< int > | CurrentNets () const override |
Return the net code of currently routed track. | |
int | CurrentLayer () const override |
Return the layer of currently routed track. | |
NODE * | CurrentNode (bool aLoopsRemoved=false) const override |
Return the most recent world state. | |
void | FlipPosture () override |
Toggle the current posture (straight/diagonal) of the trace head. | |
void | UpdateSizes (const SIZES_SETTINGS &aSizes) override |
Perform on-the-fly update of the width, via diameter & drill size from a settings class. | |
bool | IsPlacingVia () const override |
Function IsPlacingVia() | |
void | SetOrthoMode (bool aOrthoMode) override |
Function SetOrthoMode() | |
void | GetModifiedNets (std::vector< int > &aNets) const override |
Function GetModifiedNets. | |
![]() | |
PLACEMENT_ALGO (ROUTER *aRouter) | |
virtual bool | UnfixRoute () |
![]() | |
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 | |
![]() | |
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.