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;
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;
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;
475 m_baselineOffset = aOffset;
510 std::vector<MEANDER_SHAPE*> m_meanders;
514 int m_baselineOffset;
519 #endif // __PNS_MEANDER_H
Class MEANDER_SETTINGS.
Definition: pns_meander.h:105
int m_cornerRadiusPercentage
rounding percentage (0 - 100)
Definition: pns_meander.h:88
int m_step
amplitude/spacing adjustment step
Definition: pns_meander.h:82
Class MEANDERED_LINE.
Definition: pns_meander.h:396
int MaxTunableLength() const
Function MaxTunableLength()
Definition: pns_meander.cpp:623
bool Side() const
Function Side()
Definition: pns_meander.h:221
bool Fit(MEANDER_TYPE aType, const SEG &aSeg, const VECTOR2I &aP, bool aSide)
Function Fit()
Definition: pns_meander.cpp:449
void SetBaselineOffset(int aOffset)
Function SetBaselineOffset()
Definition: pns_meander.h:473
const SHAPE_LINE_CHAIN & CLine(int aShape) const
Function CLine()
Definition: pns_meander.h:241
int m_lengthTolerance
allowable tuning error
Definition: pns_meander.h:90
void Clear()
Function Clear()
Definition: pns_meander.cpp:606
MEANDER_SHAPE(MEANDER_PLACER_BASE *aPlacer, int aWidth, bool aIsDual=false)
Constructor.
Definition: pns_meander.h:115
int m_spacing
meandering period/spacing (see dialog picture for explanation)
Definition: pns_meander.h:80
bool CheckSelfIntersections(MEANDER_SHAPE *aShape, int aClearance)
Function CheckSelfIntersections()
Definition: pns_meander.cpp:423
void Resize(int aAmpl)
Function Resize()
Definition: pns_meander.cpp:550
void SetType(MEANDER_TYPE aType)
Function SetType()
Definition: pns_meander.h:135
void SetWidth(int aWidth)
Function SetWidth()
Definition: pns_meander.h:457
void MeanderSegment(const SEG &aSeg, int aBaseIndex=0)
Function MeanderSegment()
Definition: pns_meander.cpp:46
Class VECTOR2 defines a general 2D-vector/point.
Definition: vector2d.h:76
std::vector< MEANDER_SHAPE * > & Meanders()
Function Meanders()
Definition: pns_meander.h:483
const MEANDER_SETTINGS & Settings() const
Function Settings()
Definition: pns_meander.cpp:34
void Recalculate()
Function Recalculate()
Definition: pns_meander.cpp:539
int Width() const
Function Width()
Definition: pns_meander.h:305
Class MEANDER_PLACER_BASE.
Definition: pns_meander_placer_base.h:49
int BaselineLength() const
Function BaselineLength()
Definition: pns_meander.cpp:617
void SetBaseIndex(int aIndex)
Function SetBaseIndex()
Definition: pns_meander.h:155
void AddCorner(const VECTOR2I &aA, const VECTOR2I &aB=VECTOR2I(0, 0))
Function AddCorner()
Definition: pns_meander.cpp:576
int m_maxAmplitude
maximum meandering amplitude
Definition: pns_meander.h:78
int m_minAmplitude
minimum meandering amplitude
Definition: pns_meander.h:76
void AddMeander(MEANDER_SHAPE *aShape)
Function AddMeander()
Definition: pns_meander.cpp:599
MEANDER_TYPE Type() const
Function Type()
Definition: pns_meander.h:145
const MEANDER_SETTINGS & Settings() const
Function Settings()
Definition: pns_meander.cpp:40
VECTOR2I End() const
Function End()
Definition: pns_meander.h:231
Class MEANDER_SETTINGS.
Definition: pns_meander.h:58
int m_cornerArcSegments
number of line segments for arc approximation
Definition: pns_meander.h:92
int Amplitude() const
Function Amplitude()
Definition: pns_meander.h:175
MEANDER_STYLE m_cornerStyle
type of corners for the meandered line
Definition: pns_meander.h:86
MEANDERED_LINE(MEANDER_PLACER_BASE *aPlacer, bool aIsDual=false)
Constructor.
Definition: pns_meander.h:413
void MakeEmpty()
Function MakeEmpty()
Definition: pns_meander.cpp:561
int m_targetSkew
target skew value for diff pair de-skewing
Definition: pns_meander.h:94
int m_targetLength
desired length of the tuned line/diff pair
Definition: pns_meander.h:84
Class SHAPE_LINE_CHAIN.
Definition: shape_line_chain.h:50
const SEG & BaseSegment() const
Function BaseSegment()
Definition: pns_meander.h:273
bool IsDual() const
Function IsDual()
Definition: pns_meander.h:211
void MakeCorner(VECTOR2I aP1, VECTOR2I aP2=VECTOR2I(0, 0))
Function MakeCorner()
Definition: pns_meander.cpp:587
int BaseIndex() const
Function BaseIndex()
Definition: pns_meander.h:165
void SetBaselineOffset(int aOffset)
Function SetBaselineOffset()
Definition: pns_meander.h:317