|
Horizon
|
#include <pns_placement_algo.h>
Public Member Functions | |
| PLACEMENT_ALGO (ROUTER *aRouter) | |
| virtual bool | Start (const VECTOR2I &aP, ITEM *aStartItem)=0 |
| Function Start(). | |
| virtual bool | Move (const VECTOR2I &aP, ITEM *aEndItem)=0 |
| Function Move(). | |
| virtual bool | FixRoute (const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false)=0 |
| Function FixRoute(). | |
| virtual bool | UnfixRoute () |
| virtual bool | CommitPlacement () |
| virtual bool | AbortPlacement () |
| virtual bool | HasPlacedAnything () const |
| virtual bool | ToggleVia (bool aEnabled) |
| Function ToggleVia(). | |
| virtual bool | IsPlacingVia () const |
| Function IsPlacingVia(). | |
| virtual bool | SetLayer (int aLayer) |
| Function SetLayer(). | |
| virtual const ITEM_SET | Traces ()=0 |
| Function Traces(). | |
| virtual const VECTOR2I & | CurrentEnd () const =0 |
| Function CurrentEnd(). | |
| virtual const std::vector< int > | CurrentNets () const =0 |
| Function CurrentNets(). | |
| virtual int | CurrentLayer () const =0 |
| Function CurrentLayer(). | |
| virtual NODE * | CurrentNode (bool aLoopsRemoved=false) const =0 |
| Function CurrentNode(). | |
| virtual void | FlipPosture () |
| Function FlipPosture(). | |
| virtual void | UpdateSizes (const SIZES_SETTINGS &aSizes) |
| Function UpdateSizes(). | |
| virtual void | SetOrthoMode (bool aOrthoMode) |
| Function SetOrthoMode(). | |
| virtual void | GetModifiedNets (std::vector< int > &aNets) const |
| Function GetModifiedNets. | |
| 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 |
Additional Inherited Members | |
| Protected Attributes inherited from PNS::ALGO_BASE | |
| DEBUG_DECORATOR * | m_debugDecorator |
| ROUTER * | m_router |
| LOGGER * | m_logger |
Abstract class for a P&S placement/dragging algorithm. All subtools (drag, single/diff pair routing and meandering) are derived from it.
|
inlinevirtual |
Reimplemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, and PNS::MEANDER_PLACER.
|
inlinevirtual |
Reimplemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, and PNS::MEANDER_PLACER.
|
pure virtual |
Function CurrentEnd().
Returns the current end of the line(s) being placed/tuned. It may not be equal to the cursor position due to collisions.
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, and PNS::MEANDER_PLACER.
|
pure virtual |
Function CurrentLayer().
Returns the layer of currently routed track.
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, and PNS::MEANDER_PLACER.
|
pure virtual |
Function CurrentNets().
Returns the net code(s) of currently routed track(s).
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, and PNS::MEANDER_PLACER.
|
pure virtual |
Function CurrentNode().
Returns the most recent board state.
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, and PNS::MEANDER_PLACER.
|
pure virtual |
Function FixRoute().
Commits the currently routed items to the parent node, taking aP as the final end point and aEndItem as the final anchor (if provided).
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, and PNS::MEANDER_PLACER.
|
inlinevirtual |
Function FlipPosture().
Toggles the current posture (straight/diagonal) of the trace head.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
|
inlinevirtual |
Function GetModifiedNets.
Returns the net codes of all currently routed trace(s)
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
|
inlinevirtual |
Reimplemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, and PNS::MEANDER_PLACER.
|
inlinevirtual |
Function IsPlacingVia().
Returns true if the placer is placing a via (or more vias).
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
|
pure virtual |
Function Move().
Moves the end of the currently routed primtive(s) to the point aP, taking aEndItem as the anchor (if not NULL). (unless NULL).
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, PNS::MEANDER_PLACER, and PNS::MEANDER_SKEW_PLACER.
|
inlinevirtual |
Function SetLayer().
Sets the current routing layer.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
|
inlinevirtual |
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 in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
|
pure virtual |
Function Start().
Starts placement/drag operation at point aP, taking item aStartItem as anchor (unless NULL).
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, PNS::MEANDER_PLACER, and PNS::MEANDER_SKEW_PLACER.
|
inlinevirtual |
Function ToggleVia().
Enables/disables a via at the end of currently routed trace.
Reimplemented in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.
|
pure virtual |
Function Traces().
Returns all routed/tuned traces.
Implemented in PNS::DIFF_PAIR_PLACER, PNS::DP_MEANDER_PLACER, PNS::LINE_PLACER, and PNS::MEANDER_PLACER.
|
inlinevirtual |
Function UpdateSizes().
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 in PNS::DIFF_PAIR_PLACER, and PNS::LINE_PLACER.