130        const int64_t desiredDelayMin = 
m_settings.m_targetLengthDelay.Min();
 
  131        const int64_t desiredDelayOpt = 
m_settings.m_targetLengthDelay.Opt();
 
  132        const int64_t desiredDelayMax = 
m_settings.m_targetLengthDelay.Max();
 
  134        const int64_t delayDifferenceOpt = desiredDelayOpt - curDelay;
 
  137        const int64_t lengthDiffMin = 
m_router->GetInterface()->CalculateLengthForDelay(
 
  140        int64_t lengthDiffOpt = 
m_router->GetInterface()->CalculateLengthForDelay(
 
  143        const int64_t lengthDiffMax = 
m_router->GetInterface()->CalculateLengthForDelay(
 
  147        lengthDiffOpt = delayDifferenceOpt > 0 ? lengthDiffOpt : -lengthDiffOpt;
 
  149        m_settings.m_targetLength.SetMin( curLength + lengthDiffOpt - lengthDiffMin );
 
  150        m_settings.m_targetLength.SetOpt( curLength + lengthDiffOpt );
 
  151        m_settings.m_targetLength.SetMax( curLength + lengthDiffOpt + lengthDiffMax );
 
 
  166                             long long int aTargetMin, 
long long int aTargetMax )
 
  188            ssize_t arcIndex = tuned.
ArcIndex( i );
 
  203            side = s.
Side( aP ) < 0;
 
  219    if( lineLen > 
m_settings.m_targetLength.Max() )
 
  230                          - 
m_router->GetInterface()->CalculateDelayForShapeLineChain(
 
  244            m_router->GetInterface()->DisplayPathLine( l->CLine(), 1 );
 
  256                tuned.
Append ( m->CLine( 0 ) );
 
 
  344    int w = aShape->
Width();
 
 
A base class derived from BOARD_ITEM for items that can be connected and have a net,...
 
virtual NETCLASS * GetEffectiveNetClass() const
Return the NETCLASS for this item.
 
ROUTER * Router() const
Return current router settings.
 
DEBUG_DECORATOR * Dbg() const
 
Base class for PNS router board items.
 
BOARD_ITEM * GetSourceItem() const
 
bool OfKind(int aKindMask) const
 
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
 
Represent a set of meanders fitted over a single or two lines.
 
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 aElonga...
 
TUNING_STATUS
< Result of the length tuning operation
 
int m_currentWidth
Meander settings.
 
MEANDER_PLACER_BASE(ROUTER *aRouter)
 
MEANDER_SETTINGS m_settings
The current end point.
 
int64_t lineDelay(const ITEM_SET &aLine, const SOLID *aStartPad, const SOLID *aEndPad) const
Calculate the total delay of the line represented by an item set (tracks and vias)
 
NODE * m_world
Width of the meandered trace(s).
 
VECTOR2I getSnappedStartPoint(LINKED_ITEM *aStartItem, VECTOR2I aStartPoint)
 
long long int lineLength(const ITEM_SET &aLine, const SOLID *aStartPad, const SOLID *aEndPad) const
Calculate the total length of the line represented by an item set (tracks and vias)
 
virtual bool FixRoute(const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false) override
Function FixRoute()
 
bool doMove(const VECTOR2I &aP, ITEM *aEndItem, long long int aTargetLength, long long int aTargetMin, long long int aTargetMax)
 
TUNING_STATUS m_lastStatus
 
virtual bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()
 
virtual long long int origPathLength() const
 
int CurrentLayer() const override
Function CurrentLayer()
 
virtual void calculateTimeDomainTargets()
current routing start point (end of tail, beginning of head)
 
int m_padToDieDelay
The netclass for the placed segments.
 
const VECTOR2I & CurrentEnd() const override
Function CurrentEnd()
 
const VECTOR2I & CurrentStart() const override
Function CurrentStart()
 
long long int TuningLengthResult() const override
Return the resultant length or skew of the tuned traces.
 
bool AbortPlacement() override
 
int64_t TuningDelayResult() const override
Return the resultant delay or skew of the tuned traces.
 
bool HasPlacedAnything() const override
 
NODE * CurrentNode(bool aLoopsRemoved=false) const override
Function CurrentNode()
 
LINKED_ITEM * m_initialSegment
Total length added by pad to die size.
 
virtual ~MEANDER_PLACER()
 
SHAPE_LINE_CHAIN m_finalShape
 
const ITEM_SET TunedPath() override
 
const ITEM_SET Traces() override
Function Traces()
 
MEANDER_PLACER(ROUTER *aRouter)
 
virtual int64_t origPathDelay() const
 
bool CheckFit(MEANDER_SHAPE *aShape) override
Checks if it's OK to place the shape aShape (i.e.
 
VECTOR2I m_currentStart
Current world state.
 
TUNING_STATUS TuningStatus() const override
Return the tuning status (too short, too long, etc.) of the trace(s) being tuned.
 
virtual bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
 
int m_padToDieLength
Total length added by pad to die size.
 
bool CommitPlacement() override
 
long long int m_lastLength
 
The geometry of a single meander.
 
const SHAPE_LINE_CHAIN & CLine(int aShape) const
 
Keep the router "world" - i.e.
 
NODE * Branch()
Create a lightweight copy (called branch) of self that tracks the changes (added/removed items) wrs t...
 
void SetFailureReason(const wxString &aReason)
 
const ITEM_SET AssembleTuningPath(ROUTER_IFACE *aRouterIface, ITEM *aStart, SOLID **aStartPad=nullptr, SOLID **aEndPad=nullptr)
Like AssembleTrivialPath, but follows the track length algorithm, which discards segments that are fu...
 
int Side(const VECTOR2I &aP) const
Determine on which side of directed line passing via segment ends point aP lies.
 
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
 
const SHAPE_ARC & Arc(size_t aArc) const
 
ssize_t ArcIndex(size_t aSegment) const
Return the arc index for the given segment index.
 
void Clear()
Remove all points from the line chain.
 
void Simplify(int aTolerance=0)
Simplify the line chain by removing colinear adjacent segments and duplicate vertices.
 
int NextShape(int aPointIndex) const
Return the vertex index of the next shape in the chain, or -1 if aPointIndex is the last shape.
 
void Append(int aX, int aY, bool aAllowDuplication=false)
Append a new point at the end of the line chain.
 
int SegmentCount() const
Return the number of segments in this line chain.
 
const SEG CSegment(int aIndex) const
Return a constant copy of the aIndex segment in the line chain.
 
bool IsArcSegment(size_t aSegment) const
 
long long int Length() const
Return length of the line chain in Euclidean metric.
 
Push and Shove diff pair dimensions (gap) settings dialog.
 
EDA_ANGLE abs(const EDA_ANGLE &aAngle)
 
#define PNS_DBG(dbg, method,...)
 
Casted dyn_cast(From aObject)
A lightweight dynamic downcast.
 
VECTOR2< int32_t > VECTOR2I