22 #ifndef __PNS_MEANDER_H 23 #define __PNS_MEANDER_H 25 #include <math/vector2d.h> 27 #include <geometry/shape.h> 28 #include <geometry/shape_line_chain.h> 32 class MEANDER_PLACER_BASE;
48 MEANDER_STYLE_ROUND = 1,
119 m_baselineOffset( 0 )
126 m_currentTarget = NULL;
127 m_meanCornerRadius = 0;
157 m_baseIndex = aIndex;
197 void Resize(
int aAmpl );
233 return m_clippedBaseSeg.B;
243 return m_shapes[aShape];
265 bool Fit( MEANDER_TYPE aType,
const SEG& aSeg,
const VECTOR2I& aP,
bool aSide );
275 return m_clippedBaseSeg;
284 int BaselineLength()
const;
291 int MaxTunableLength()
const;
319 m_baselineOffset = aOffset;
328 void forward(
int aLength );
330 void turn(
int aAngle );
332 void miter(
int aRadius,
bool aSide );
334 void uShape(
int aSides,
int aCorner,
int aTop );
347 void updateBaseSegment();
350 int cornerRadius()
const;
366 int m_baselineOffset;
368 int m_meanCornerRadius;
374 SEG m_clippedBaseSeg;
404 m_baselineOffset = 0;
419 m_baselineOffset = 0;
470 void MeanderSegment(
const SEG& aSeg,
int aBaseIndex = 0 );
475 m_baselineOffset = aOffset;
497 bool CheckSelfIntersections(
MEANDER_SHAPE* aShape,
int aClearance );
510 std::vector<MEANDER_SHAPE*> m_meanders;
514 int m_baselineOffset;
519 #endif // __PNS_MEANDER_H bool IsDual() const
Function IsDual()
Definition: pns_meander.h:211
Class MEANDER_PLACER_BASE.
Definition: pns_meander_placer_base.h:48
int m_minAmplitude
minimum meandering amplitude
Definition: pns_meander.h:76
void SetBaselineOffset(int aOffset)
Function SetBaselineOffset()
Definition: pns_meander.h:317
Class MEANDER_SETTINGS.
Definition: pns_meander.h:104
VECTOR2I End() const
Function End()
Definition: pns_meander.h:231
int m_targetSkew
target skew value for diff pair de-skewing
Definition: pns_meander.h:94
int Width() const
Function Width()
Definition: pns_meander.h:305
MEANDER_TYPE Type() const
Function Type()
Definition: pns_meander.h:145
Class MEANDER_SETTINGS.
Definition: pns_meander.h:57
MEANDER_STYLE m_cornerStyle
type of corners for the meandered line
Definition: pns_meander.h:86
void SetWidth(int aWidth)
Function SetWidth()
Definition: pns_meander.h:457
int m_step
amplitude/spacing adjustment step
Definition: pns_meander.h:82
int BaseIndex() const
Function BaseIndex()
Definition: pns_meander.h:165
std::vector< MEANDER_SHAPE * > & Meanders()
Function Meanders()
Definition: pns_meander.h:483
const SHAPE_LINE_CHAIN & CLine(int aShape) const
Function CLine()
Definition: pns_meander.h:241
int m_cornerRadiusPercentage
rounding percentage (0 - 100)
Definition: pns_meander.h:88
const SEG & BaseSegment() const
Function BaseSegment()
Definition: pns_meander.h:273
Class MEANDERED_LINE.
Definition: pns_meander.h:395
bool Side() const
Function Side()
Definition: pns_meander.h:221
int m_cornerArcSegments
number of line segments for arc approximation
Definition: pns_meander.h:92
void SetBaseIndex(int aIndex)
Function SetBaseIndex()
Definition: pns_meander.h:155
int m_lengthTolerance
allowable tuning error
Definition: pns_meander.h:90
Class SHAPE_LINE_CHAIN.
Definition: shape_line_chain.h:47
MEANDERED_LINE(MEANDER_PLACER_BASE *aPlacer, bool aIsDual=false)
Constructor.
Definition: pns_meander.h:413
int m_targetLength
desired length of the tuned line/diff pair
Definition: pns_meander.h:84
int m_spacing
meandering period/spacing (see dialog picture for explanation)
Definition: pns_meander.h:80
MEANDER_SHAPE(MEANDER_PLACER_BASE *aPlacer, int aWidth, bool aIsDual=false)
Constructor.
Definition: pns_meander.h:115
Definition: pns_algo_base.cpp:26
void SetBaselineOffset(int aOffset)
Function SetBaselineOffset()
Definition: pns_meander.h:473
void SetType(MEANDER_TYPE aType)
Function SetType()
Definition: pns_meander.h:135
int Amplitude() const
Function Amplitude()
Definition: pns_meander.h:175
int m_maxAmplitude
maximum meandering amplitude
Definition: pns_meander.h:78