Horizon
|
Base class for Single trace & Differential pair meandering tools, as both of them share a lot of code. More...
#include <pns_meander_placer_base.h>
Public Types | |
enum | TUNING_STATUS { TOO_SHORT = 0 , TOO_LONG , TUNED } |
< Result of the length tuning operation | |
Public Member Functions | |
MEANDER_PLACER_BASE (ROUTER *aRouter) | |
virtual const wxString | TuningInfo (EDA_UNITS aUnits) const =0 |
Return a string describing the status and length of the tuned traces. | |
virtual TUNING_STATUS | TuningStatus () const =0 |
Return the tuning status (too short, too long, etc.) of the trace(s) being tuned. | |
virtual void | AmplitudeStep (int aSign) |
Increase/decreases the current meandering amplitude by one step. | |
virtual void | SpacingStep (int aSign) |
Increase/decrease the current meandering spacing by one step. | |
virtual int | Clearance () |
Return the clearance of the track(s) being length tuned. | |
virtual const MEANDER_SETTINGS & | MeanderSettings () const |
Return the current meandering configuration. | |
virtual void | UpdateSettings (const MEANDER_SETTINGS &aSettings) |
virtual bool | CheckFit (MEANDER_SHAPE *aShape) |
Checks if it's OK to place the shape aShape (i.e. | |
int | GetTotalPadToDieLength (const LINE &aLine) const |
![]() | |
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. | |
![]() | |
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 |
Protected Member Functions | |
void | cutTunedLine (const SHAPE_LINE_CHAIN &aOrigin, const VECTOR2I &aTuneStart, const VECTOR2I &aCursorPos, SHAPE_LINE_CHAIN &aPre, SHAPE_LINE_CHAIN &aTuned, SHAPE_LINE_CHAIN &aPost) |
Extract the part of a track to be meandered, depending on the starting point and the cursor position. | |
void | tuneLineLength (MEANDERED_LINE &aTuned, long long int aElongation) |
Take a set of meanders in aTuned and tunes their length to extend the original line length by aElongation. | |
int | compareWithTolerance (long long int aValue, long long int aExpected, long long int aTolerance=0) const |
Compare aValue against aExpected with given tolerance. | |
VECTOR2I | getSnappedStartPoint (LINKED_ITEM *aStartItem, VECTOR2I aStartPoint) |
long long int | lineLength (const ITEM_SET &aLine) const |
Calculate the total length of the line represented by an item set (tracks and vias) | |
Protected Attributes | |
NODE * | m_world |
Total length added by pad to die size. | |
int | m_padToDieLength |
Width of the meandered trace(s). | |
int | m_currentWidth |
Meander settings. | |
MEANDER_SETTINGS | m_settings |
The current end point. | |
VECTOR2I | m_currentEnd |
![]() | |
DEBUG_DECORATOR * | m_debugDecorator |
ROUTER * | m_router |
LOGGER * | m_logger |
Base class for Single trace & Differential pair meandering tools, as both of them share a lot of code.
|
virtual |
Increase/decreases the current meandering amplitude by one step.
aSign | direction (negative = decrease, positive = increase). |
|
inlinevirtual |
Checks if it's OK to place the shape aShape (i.e.
if it doesn't cause DRC violations or collide with other meanders).
aShape | the shape to check. |
Reimplemented in PNS::DP_MEANDER_PLACER, and PNS::MEANDER_PLACER.
|
virtual |
Return the clearance of the track(s) being length tuned.
|
protected |
Extract the part of a track to be meandered, depending on the starting point and the cursor position.
aOrigin | the original line. |
aTuneStart | point where we start meandering (start click coordinates). |
aCursorPos | current cursor position. |
aPre | part before the beginning of meanders. |
aTuned | part to be meandered. |
aPost | part after the end of meanders. |
|
protected |
Calculate the total length of the line represented by an item set (tracks and vias)
aLine |
|
virtual |
Return the current meandering configuration.
|
virtual |
Increase/decrease the current meandering spacing by one step.
aSign | direction (negative = decrease, positive = increase). |
|
pure virtual |
Return a string describing the status and length of the tuned traces.
Implemented in PNS::DP_MEANDER_PLACER, PNS::MEANDER_PLACER, and PNS::MEANDER_SKEW_PLACER.
|
pure virtual |
Return the tuning status (too short, too long, etc.) of the trace(s) being tuned.
Implemented in PNS::DP_MEANDER_PLACER, and PNS::MEANDER_PLACER.