Horizon
|
Single track placement algorithm. More...
#include <pns_line_placer.h>
Public Member Functions | |
LINE_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 | UnfixRoute () override |
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 LINE & | Head () const |
Return the "head" of the line being placed, that is the volatile part that has not been "fixed" yet. | |
const LINE & | Tail () const |
Return the "tail" of the line being placed, the part which has already wrapped around and shoved some obstacles. | |
const LINE | Trace () const |
Return the complete routed line. | |
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. | |
void | SetOrthoMode (bool aOrthoMode) override |
Function SetOrthoMode() | |
bool | IsPlacingVia () const override |
Function IsPlacingVia() | |
void | GetModifiedNets (std::vector< int > &aNets) const override |
Function GetModifiedNets. | |
bool | SplitAdjacentSegments (NODE *aNode, ITEM *aSeg, const VECTOR2I &aP) |
Check if point aP lies on segment aSeg. | |
![]() | |
PLACEMENT_ALGO (ROUTER *aRouter) | |
![]() | |
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 |
Additional Inherited Members | |
![]() | |
DEBUG_DECORATOR * | m_debugDecorator |
ROUTER * | m_router |
LOGGER * | m_logger |
Single track placement algorithm.
Interactively routes a track. Applies shove and walkaround 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.
|
inlineoverridevirtual |
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.
Check if point aP lies on segment aSeg.
If so, splits the segment in two, forming a joint at aP and stores updated topology in node aNode.
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 |
Reimplemented from PNS::PLACEMENT_ALGO.
|
overridevirtual |
Perform on-the-fly update of the width, via diameter & drill size from a settings class.
Performs 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.