Horizon
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PNS::MEANDER_PLACER_BASE Class Referenceabstract

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>

Inheritance diagram for PNS::MEANDER_PLACER_BASE:
PNS::PLACEMENT_ALGO PNS::ALGO_BASE PNS::DP_MEANDER_PLACER PNS::MEANDER_PLACER PNS::MEANDER_SKEW_PLACER

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_SETTINGSMeanderSettings () 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
 
- Public Member Functions inherited from PNS::PLACEMENT_ALGO
 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 VECTOR2ICurrentEnd () const =0
 Function CurrentEnd()
 
virtual const std::vector< int > CurrentNets () const =0
 Function CurrentNets()
 
virtual int CurrentLayer () const =0
 Function CurrentLayer()
 
virtual NODECurrentNode (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.
 
ROUTERRouter () const
 Return current router settings.
 
ROUTING_SETTINGSSettings () const
 Return the logger object, allowing to dump geometry to a file.
 
virtual LOGGERLogger ()
 
void SetLogger (LOGGER *aLogger)
 
void SetDebugDecorator (DEBUG_DECORATOR *aDecorator)
 Assign a debug decorator allowing this algo to draw extra graphics for visual debugging.
 
DEBUG_DECORATORDbg () const
 
const BOX2IVisibleViewArea () 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

NODEm_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
 
- Protected Attributes inherited from PNS::ALGO_BASE
DEBUG_DECORATORm_debugDecorator
 
ROUTERm_router
 
LOGGERm_logger
 

Detailed Description

Base class for Single trace & Differential pair meandering tools, as both of them share a lot of code.

Member Function Documentation

◆ AmplitudeStep()

void PNS::MEANDER_PLACER_BASE::AmplitudeStep ( int  aSign)
virtual

Increase/decreases the current meandering amplitude by one step.

Parameters
aSigndirection (negative = decrease, positive = increase).

◆ CheckFit()

virtual bool PNS::MEANDER_PLACER_BASE::CheckFit ( MEANDER_SHAPE aShape)
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).

Parameters
aShapethe shape to check.
Returns
true if the shape fits.

Reimplemented in PNS::DP_MEANDER_PLACER, and PNS::MEANDER_PLACER.

◆ Clearance()

int PNS::MEANDER_PLACER_BASE::Clearance ( )
virtual

Return the clearance of the track(s) being length tuned.

Returns
clearance value in internal units

◆ cutTunedLine()

void PNS::MEANDER_PLACER_BASE::cutTunedLine ( const SHAPE_LINE_CHAIN aOrigin,
const VECTOR2I aTuneStart,
const VECTOR2I aCursorPos,
SHAPE_LINE_CHAIN aPre,
SHAPE_LINE_CHAIN aTuned,
SHAPE_LINE_CHAIN aPost 
)
protected

Extract the part of a track to be meandered, depending on the starting point and the cursor position.

Parameters
aOriginthe original line.
aTuneStartpoint where we start meandering (start click coordinates).
aCursorPoscurrent cursor position.
aPrepart before the beginning of meanders.
aTunedpart to be meandered.
aPostpart after the end of meanders.

◆ lineLength()

long long int PNS::MEANDER_PLACER_BASE::lineLength ( const ITEM_SET aLine) const
protected

Calculate the total length of the line represented by an item set (tracks and vias)

Parameters
aLine
Returns
Pointer to world to search colliding items.

◆ MeanderSettings()

const MEANDER_SETTINGS & PNS::MEANDER_PLACER_BASE::MeanderSettings ( ) const
virtual

Return the current meandering configuration.

Returns
the settings

◆ SpacingStep()

void PNS::MEANDER_PLACER_BASE::SpacingStep ( int  aSign)
virtual

Increase/decrease the current meandering spacing by one step.

Parameters
aSigndirection (negative = decrease, positive = increase).

◆ TuningInfo()

virtual const wxString PNS::MEANDER_PLACER_BASE::TuningInfo ( EDA_UNITS  aUnits) const
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.

◆ TuningStatus()

virtual TUNING_STATUS PNS::MEANDER_PLACER_BASE::TuningStatus ( ) const
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.


The documentation for this class was generated from the following files: