Horizon
Classes | Public Types | Public Member Functions | List of all members
PNS::JOINT Class Reference

Class JOINT. More...

#include <pns_joint.h>

Inheritance diagram for PNS::JOINT:
PNS::ITEM

Classes

struct  HASH_TAG
 

Joints are hashed by their position, layers and net.

More...
 
struct  JOINT_TAG_HASH
 

Public Types

typedef ITEM_SET::ENTRIES LINKED_ITEMS
 
typedef ITEM_SET::ENTRIES LINKED_ITEMS
 
- Public Types inherited from PNS::ITEM
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
}
 

Supported item types


 
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
}
 

Supported item types


 

Public Member Functions

 JOINT (const VECTOR2I &aPos, const LAYER_RANGE &aLayers, int aNet=-1)
 
 JOINT (const JOINT &aB)
 
ITEMClone () const override
 Function Clone() More...
 
bool IsLineCorner () const
 

Returns true if the joint is a trivial line corner, connecting two

segments of the same net, on the same layer.

 
bool IsNonFanoutVia () const
 
bool IsStitchingVia () const
 
bool IsTraceWidthChange () const
 
void Link (ITEM *aItem)
 

Links the joint to a given board item (when it's added to the NODE)


 
bool Unlink (ITEM *aItem)
 

Unlinks a given board item from the joint (upon its removal from a NODE) Returns true if the joint became dangling after unlinking.

More...
 
SEGMENTNextSegment (SEGMENT *aCurrent) const
 

For trivial joints, returns the segment adjacent to (aCurrent).

More...
 
VIAVia ()
 
const HASH_TAGTag () const
 trivial accessors
 
const VECTOR2IPos () const
 
int Net () const
 
const LINKED_ITEMS & LinkList () const
 
const ITEM_SETCLinks () const
 
ITEM_SETLinks ()
 
int LinkCount (int aMask=-1) const
 
void Dump () const
 
bool operator== (const JOINT &rhs) const
 
void Merge (const JOINT &aJoint)
 
bool Overlaps (const JOINT &rhs) const
 
void Lock (bool aLock=true)
 
bool IsLocked () const
 
 JOINT (const VECTOR2I &aPos, const LAYER_RANGE &aLayers, int aNet=-1)
 
 JOINT (const JOINT &aB)
 
ITEMClone () const override
 Function Clone() More...
 
bool IsLineCorner () const
 

Returns true if the joint is a trivial line corner, connecting two

segments of the same net, on the same layer.

 
bool IsNonFanoutVia () const
 
bool IsStitchingVia () const
 
bool IsTraceWidthChange () const
 
void Link (ITEM *aItem)
 

Links the joint to a given board item (when it's added to the NODE)


 
bool Unlink (ITEM *aItem)
 

Unlinks a given board item from the joint (upon its removal from a NODE) Returns true if the joint became dangling after unlinking.

More...
 
SEGMENTNextSegment (SEGMENT *aCurrent) const
 

For trivial joints, returns the segment adjacent to (aCurrent).

More...
 
VIAVia ()
 
const HASH_TAGTag () const
 trivial accessors
 
const VECTOR2IPos () const
 
int Net () const
 
const LINKED_ITEMS & LinkList () const
 
const ITEM_SETCLinks () const
 
ITEM_SETLinks ()
 
int LinkCount (int aMask=-1) const
 
void Dump () const
 
bool operator== (const JOINT &rhs) const
 
void Merge (const JOINT &aJoint)
 
bool Overlaps (const JOINT &rhs) const
 
void Lock (bool aLock=true)
 
bool IsLocked () const
 
- Public Member Functions inherited from PNS::ITEM
 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_RANGELayers () 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...
 
NODEOwner () 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 const SHAPEShape () const
 Function Shape() More...
 
virtual void Mark (int aMarker)
 
virtual void Unmark (int aMarker=-1)
 
virtual int Marker () const
 
virtual void SetRank (int aRank)
 
virtual int Rank () const
 
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_RANGELayers () 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...
 
NODEOwner () 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 const SHAPEShape () const
 Function Shape() More...
 
virtual void Mark (int aMarker)
 
virtual void Unmark (int aMarker=-1)
 
virtual int Marker () const
 
virtual void SetRank (int aRank)
 
virtual int Rank () const
 
virtual VECTOR2I Anchor (int n) const
 
virtual int AnchorCount () const
 
bool IsLocked () const
 
void SetRoutable (bool aRoutable)
 
bool IsRoutable () const
 

Additional Inherited Members

- Static Public Attributes inherited from PNS::ITEM
static const int UnusedNet = INT_MAX
 
- Protected Attributes inherited from PNS::ITEM
PnsKind m_kind
 
const PNS_HORIZON_PARENT_ITEMm_parent
 
NODEm_owner
 
LAYER_RANGE m_layers
 
bool m_movable
 
int m_net
 
int m_marker
 
int m_rank
 
bool m_routable
 

Detailed Description

Class JOINT.

Represents a 2D point on a given set of layers and belonging to a certain net, that links together a number of board items. A hash table of joints is used by the router to follow connectivity between the items.

Member Function Documentation

◆ Clone() [1/2]

ITEM* PNS::JOINT::Clone ( ) const
inlineoverridevirtual

Function Clone()

Returns a deep copy of the item

Implements PNS::ITEM.

◆ Clone() [2/2]

ITEM* PNS::JOINT::Clone ( ) const
inlineoverridevirtual

Function Clone()

Returns a deep copy of the item

Implements PNS::ITEM.

◆ NextSegment() [1/2]

SEGMENT* PNS::JOINT::NextSegment ( SEGMENT aCurrent) const
inline

For trivial joints, returns the segment adjacent to (aCurrent).

For non-trival ones, returns NULL, indicating the end of line.

◆ NextSegment() [2/2]

SEGMENT* PNS::JOINT::NextSegment ( SEGMENT aCurrent) const
inline

For trivial joints, returns the segment adjacent to (aCurrent).

For non-trival ones, returns NULL, indicating the end of line.

◆ Unlink() [1/2]

bool PNS::JOINT::Unlink ( ITEM aItem)
inline

Unlinks a given board item from the joint (upon its removal from a NODE) Returns true if the joint became dangling after unlinking.

◆ Unlink() [2/2]

bool PNS::JOINT::Unlink ( ITEM aItem)
inline

Unlinks a given board item from the joint (upon its removal from a NODE) Returns true if the joint became dangling after unlinking.


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