|
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. | |
Public Member Functions inherited from PNS::PLACEMENT_ALGO | |
| PLACEMENT_ALGO (ROUTER *aRouter) | |
| virtual bool | UnfixRoute () |
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.