Horizon
|
Public Types | |
typedef std::vector< SEGMENT * > | SEGMENT_REFS |
typedef std::vector< SEGMENT * > | SEGMENT_REFS |
![]() | |
enum | PnsKind { SOLID_T = 1, LINE_T = 2, JOINT_T = 4, SEGMENT_T = 8, VIA_T = 16, DIFF_PAIR_T = 32, ANY_T = 0xff, SOLID_T = 1, LINE_T = 2, JOINT_T = 4, SEGMENT_T = 8, VIA_T = 16, DIFF_PAIR_T = 32, ANY_T = 0xff } |
| |
enum | PnsKind { SOLID_T = 1, LINE_T = 2, JOINT_T = 4, SEGMENT_T = 8, VIA_T = 16, DIFF_PAIR_T = 32, ANY_T = 0xff, SOLID_T = 1, LINE_T = 2, JOINT_T = 4, SEGMENT_T = 8, VIA_T = 16, DIFF_PAIR_T = 32, ANY_T = 0xff } |
| |
Public Member Functions | |
LINE () | |
Constructor Makes an empty line. | |
LINE (const LINE &aOther) | |
LINE (const LINE &aBase, const SHAPE_LINE_CHAIN &aLine) | |
Constructor Copies properties (net, layers, etc.) from a base line and replaces the shape by another. | |
virtual LINE * | Clone () const override |
Function Clone() More... | |
LINE & | operator= (const LINE &aOther) |
void | SetShape (const SHAPE_LINE_CHAIN &aLine) |
| |
const SHAPE * | Shape () const override |
| |
SHAPE_LINE_CHAIN & | Line () |
| |
const SHAPE_LINE_CHAIN & | CLine () const |
| |
int | SegmentCount () const |
| |
int | PointCount () const |
| |
const VECTOR2I & | CPoint (int aIdx) const |
| |
const SEG | CSegment (int aIdx) const |
| |
void | SetWidth (int aWidth) |
| |
int | Width () const |
| |
bool | CompareGeometry (const LINE &aOther) |
| |
void | Reverse () |
| |
void | LinkSegment (SEGMENT *aSeg) |
| |
SEGMENT_REFS & | LinkedSegments () |
| |
bool | IsLinked () const |
bool | IsLinkedChecked () const |
bool | ContainsSegment (SEGMENT *aSeg) const |
| |
SEGMENT * | GetLink (int aIndex) const |
void | ClearSegmentLinks () |
| |
int | LinkCount () const |
| |
const LINE | ClipToNearestObstacle (NODE *aNode) const |
More... | |
void | ClipVertexRange (int aStart, int aEnd) |
| |
int | CountCorners (int aAngles) const |
| |
bool | Walkaround (SHAPE_LINE_CHAIN aObstacle, SHAPE_LINE_CHAIN &aPre, SHAPE_LINE_CHAIN &aWalk, SHAPE_LINE_CHAIN &aPost, bool aCw) const |
More... | |
bool | Walkaround (const SHAPE_LINE_CHAIN &aObstacle, SHAPE_LINE_CHAIN &aPath, bool aCw) const |
bool | Is45Degree () const |
void | ShowLinks () const |
| |
bool | EndsWithVia () const |
void | AppendVia (const VIA &aVia) |
void | RemoveVia () |
const VIA & | Via () const |
virtual void | Mark (int aMarker) override |
virtual void | Unmark (int aMarker=-1) override |
virtual int | Marker () const override |
void | DragSegment (const VECTOR2I &aP, int aIndex, int aSnappingThreshold=0, bool aFreeAngle=false) |
void | DragCorner (const VECTOR2I &aP, int aIndex, int aSnappingThreshold=0, bool aFreeAngle=false) |
void | SetRank (int aRank) override |
int | Rank () const override |
bool | HasLoops () const |
bool | HasLockedSegments () const |
OPT_BOX2I | ChangedArea (const LINE *aOther) const |
LINE () | |
Constructor Makes an empty line. | |
LINE (const LINE &aOther) | |
LINE (const LINE &aBase, const SHAPE_LINE_CHAIN &aLine) | |
Constructor Copies properties (net, layers, etc.) from a base line and replaces the shape by another. | |
virtual LINE * | Clone () const override |
Function Clone() More... | |
LINE & | operator= (const LINE &aOther) |
void | SetShape (const SHAPE_LINE_CHAIN &aLine) |
| |
const SHAPE * | Shape () const override |
| |
SHAPE_LINE_CHAIN & | Line () |
| |
const SHAPE_LINE_CHAIN & | CLine () const |
| |
int | SegmentCount () const |
| |
int | PointCount () const |
| |
const VECTOR2I & | CPoint (int aIdx) const |
| |
const SEG | CSegment (int aIdx) const |
| |
void | SetWidth (int aWidth) |
| |
int | Width () const |
| |
bool | CompareGeometry (const LINE &aOther) |
| |
void | Reverse () |
| |
void | LinkSegment (SEGMENT *aSeg) |
| |
SEGMENT_REFS & | LinkedSegments () |
| |
bool | IsLinked () const |
bool | IsLinkedChecked () const |
bool | ContainsSegment (SEGMENT *aSeg) const |
| |
SEGMENT * | GetLink (int aIndex) const |
void | ClearSegmentLinks () |
| |
int | LinkCount () const |
| |
const LINE | ClipToNearestObstacle (NODE *aNode) const |
More... | |
void | ClipVertexRange (int aStart, int aEnd) |
| |
int | CountCorners (int aAngles) const |
| |
bool | Walkaround (SHAPE_LINE_CHAIN aObstacle, SHAPE_LINE_CHAIN &aPre, SHAPE_LINE_CHAIN &aWalk, SHAPE_LINE_CHAIN &aPost, bool aCw) const |
More... | |
bool | Walkaround (const SHAPE_LINE_CHAIN &aObstacle, SHAPE_LINE_CHAIN &aPath, bool aCw) const |
bool | Is45Degree () const |
void | ShowLinks () const |
| |
bool | EndsWithVia () const |
void | AppendVia (const VIA &aVia) |
void | RemoveVia () |
const VIA & | Via () const |
virtual void | Mark (int aMarker) override |
virtual void | Unmark (int aMarker=-1) override |
virtual int | Marker () const override |
void | DragSegment (const VECTOR2I &aP, int aIndex, int aSnappingThreshold=0, bool aFreeAngle=false) |
void | DragCorner (const VECTOR2I &aP, int aIndex, int aSnappingThreshold=0, bool aFreeAngle=false) |
void | SetRank (int aRank) override |
int | Rank () const override |
bool | HasLoops () const |
bool | HasLockedSegments () const |
OPT_BOX2I | ChangedArea (const LINE *aOther) const |
![]() | |
ITEM (PnsKind aKind) | |
ITEM (const ITEM &aOther) | |
virtual const SHAPE_LINE_CHAIN | Hull (int aClearance=0, int aWalkaroundThickness=0) const |
PnsKind | Kind () const |
Function Kind() More... | |
bool | OfKind (int aKindMask) const |
Function OfKind() More... | |
const std::string | KindStr () const |
Function KindStr() More... | |
void | SetParent (const PNS_HORIZON_PARENT_ITEM *aParent) |
Function SetParent() More... | |
auto | Parent () const |
Function Parent() More... | |
void | SetNet (int aNet) |
Function SetNet() More... | |
int | Net () const |
Function Net() More... | |
bool | InAnyNet () const |
void | SetLayers (const LAYER_RANGE &aLayers) |
Function SetLayers() More... | |
void | SetLayer (int aLayer) |
Function SetLayer() More... | |
const LAYER_RANGE & | Layers () const |
Function Layers() More... | |
virtual int | Layer () const |
Function Layer() More... | |
bool | LayersOverlap (const ITEM *aOther) const |
Function LayersOverlap() More... | |
void | SetOwner (NODE *aOwner) |
Functon SetOwner() More... | |
bool | BelongsTo (NODE *aNode) const |
Function BelongsTo() More... | |
NODE * | Owner () const |
Function Owner() More... | |
virtual bool | Collide (const ITEM *aOther, int aClearance, bool aNeedMTV, VECTOR2I &aMTV, bool aDifferentNetsOnly=true) const |
Function Collide() More... | |
bool | Collide (const ITEM *aOther, int aClearance, bool aDifferentNetsOnly=true) const |
Function Collide() More... | |
virtual VECTOR2I | Anchor (int n) const |
virtual int | AnchorCount () const |
bool | IsLocked () const |
void | SetRoutable (bool aRoutable) |
bool | IsRoutable () const |
ITEM (PnsKind aKind) | |
ITEM (const ITEM &aOther) | |
virtual const SHAPE_LINE_CHAIN | Hull (int aClearance=0, int aWalkaroundThickness=0) const |
PnsKind | Kind () const |
Function Kind() More... | |
bool | OfKind (int aKindMask) const |
Function OfKind() More... | |
const std::string | KindStr () const |
Function KindStr() More... | |
void | SetParent (const PNS_HORIZON_PARENT_ITEM *aParent) |
Function SetParent() More... | |
auto | Parent () const |
Function Parent() More... | |
void | SetNet (int aNet) |
Function SetNet() More... | |
int | Net () const |
Function Net() More... | |
bool | InAnyNet () const |
void | SetLayers (const LAYER_RANGE &aLayers) |
Function SetLayers() More... | |
void | SetLayer (int aLayer) |
Function SetLayer() More... | |
const LAYER_RANGE & | Layers () const |
Function Layers() More... | |
virtual int | Layer () const |
Function Layer() More... | |
bool | LayersOverlap (const ITEM *aOther) const |
Function LayersOverlap() More... | |
void | SetOwner (NODE *aOwner) |
Functon SetOwner() More... | |
bool | BelongsTo (NODE *aNode) const |
Function BelongsTo() More... | |
NODE * | Owner () const |
Function Owner() More... | |
virtual bool | Collide (const ITEM *aOther, int aClearance, bool aNeedMTV, VECTOR2I &aMTV, bool aDifferentNetsOnly=true) const |
Function Collide() More... | |
bool | Collide (const ITEM *aOther, int aClearance, bool aDifferentNetsOnly=true) const |
Function Collide() More... | |
virtual VECTOR2I | Anchor (int n) const |
virtual int | AnchorCount () const |
bool | IsLocked () const |
void | SetRoutable (bool aRoutable) |
bool | IsRoutable () const |
Static Public Member Functions | |
static bool | ClassOf (const ITEM *aItem) |
static bool | ClassOf (const ITEM *aItem) |
Additional Inherited Members | |
![]() | |
static const int | UnusedNet = INT_MAX |
![]() | |
PnsKind | m_kind |
const PNS_HORIZON_PARENT_ITEM * | m_parent |
NODE * | m_owner |
LAYER_RANGE | m_layers |
bool | m_movable |
int | m_net |
int | m_marker |
int | m_rank |
bool | m_routable |
Clips the line to the nearest obstacle, traversing from the line's start vertex (0).
Returns the clipped line.
Clips the line to the nearest obstacle, traversing from the line's start vertex (0).
Returns the clipped line.
|
overridevirtual |
|
overridevirtual |
bool PNS::LINE::Walkaround | ( | SHAPE_LINE_CHAIN | aObstacle, |
SHAPE_LINE_CHAIN & | aPre, | ||
SHAPE_LINE_CHAIN & | aWalk, | ||
SHAPE_LINE_CHAIN & | aPost, | ||
bool | aCw | ||
) | const |
Calculates a line thightly wrapping a convex hull of an obstacle object (aObstacle).
aPrePath = path from origin to the obstacle aWalkaroundPath = path around the obstacle aPostPath = past from obstacle till the end aCW = whether to walk around in clockwise or counter-clockwise direction.
bool PNS::LINE::Walkaround | ( | SHAPE_LINE_CHAIN | aObstacle, |
SHAPE_LINE_CHAIN & | aPre, | ||
SHAPE_LINE_CHAIN & | aWalk, | ||
SHAPE_LINE_CHAIN & | aPost, | ||
bool | aCw | ||
) | const |
Calculates a line thightly wrapping a convex hull of an obstacle object (aObstacle).
aPrePath = path from origin to the obstacle aWalkaroundPath = path around the obstacle aPostPath = past from obstacle till the end aCW = whether to walk around in clockwise or counter-clockwise direction.