63 return ( (hash<int>()( aP.
pos.
x )
64 ^ (hash<int>()( aP.
pos.
y ) << 1) ) >> 1 )
65 ^ (hash<int>()( aP.
net ) << 1);
109 return seg1->Width() == seg2->Width();
171 if( item->OfKind(
VIA_T ) )
172 return static_cast<VIA*>( item );
272 #endif // __PNS_JOINT_H Base class for PNS router board items.
int Count(int aKindMask=-1) const
bool IsTraceWidthChange() const
Link the joint to a given board item (when it's added to the NODE).
bool Contains(ITEM *aItem) const
bool Unlink(ITEM *aItem)
For trivial joints, return the segment adjacent to (aCurrent).
int Width() const override
LINKED_ITEM * NextSegment(ITEM *aCurrent) const
bool Overlaps(const LAYER_RANGE &aOther) const
ITEM_SET m_linkedItems
locked (non-movable) flag
void Lock(bool aLock=true)
std::vector< ENTRY > ENTRIES
void Add(const LINE &aLine)
JOINT(const VECTOR2I &aPos, const LAYER_RANGE &aLayers, int aNet=-1)
Represents a 2D point on a given set of layers and belonging to a certain net, that links together a ...
bool IsLineCorner() const
void Merge(const LAYER_RANGE &aOther)
Shortcut for comparisons/overlap tests.
const HASH_TAG & Tag() const
trivial accessors
ITEM_SET::ENTRIES LINKED_ITEMS
Joints are hashed by their position, layers and net.
const LINKED_ITEMS & LinkList() const
const ITEM_SET & CLinks() const
bool operator==(JOINT::HASH_TAG const &aP1, JOINT::HASH_TAG const &aP2)
bool operator==(const JOINT &rhs) const
std::size_t operator()(const JOINT::HASH_TAG &aP) const
HASH_TAG m_tag
< hash tag for unordered_multimap
bool Overlaps(const JOINT &rhs) const
const ENTRIES & CItems() const
void Merge(const JOINT &aJoint)
bool IsStitchingVia() const
ITEM * Clone() const override
Return true if the joint is a trivial line corner, connecting two segments of the same net,...
int LinkCount(int aMask=-1) const
const VECTOR2I & Pos() const
void Link(ITEM *aItem)
Unlink a given board item from the joint (upon its removal from a NODE)
Push and Shove diff pair dimensions (gap) settings dialog.
bool IsNonFanoutVia() const
Represent a contiguous set of PCB layers.