KiCad PCB EDA Suite
|
#include <connectivity_items.h>
Public Member Functions | |
CN_ZONE_LAYER (ZONE *aParent, PCB_LAYER_ID aLayer, int aSubpolyIndex) | |
void | BuildRTree () |
int | SubpolyIndex () const |
PCB_LAYER_ID | GetLayer () const |
bool | ContainsPoint (const VECTOR2I &p) const |
PCB_LAYER_ID | GetLayer () |
virtual int | AnchorCount () const override |
virtual const VECTOR2I | GetAnchor (int n) const override |
const SHAPE_LINE_CHAIN & | GetOutline () const |
bool | Collide (SHAPE *aRefShape) const |
bool | HasSingleConnection () |
void | Dump () |
std::shared_ptr< CN_ANCHOR > | AddAnchor (const VECTOR2I &aPos) |
std::vector< std::shared_ptr< CN_ANCHOR > > & | Anchors () |
void | SetValid (bool aValid) |
bool | Valid () const |
void | SetDirty (bool aDirty) |
bool | Dirty () const |
void | SetLayers (int aStartLayer, int aEndLayer) |
Set the layers spanned by the item to aStartLayer and aEndLayer. | |
void | SetLayer (int aLayer) |
Set the layers spanned by the item to a single layer aLayer. | |
int | StartLayer () const |
Return the contiguous set of layers spanned by the item. | |
int | EndLayer () const |
virtual int | Layer () const |
Return the item's layer, for single-layered items only. | |
PCB_LAYER_ID | GetBoardLayer () const |
When using CN_ITEM layers to compare against board items, use this function which correctly remaps the B_Cu layer. | |
const BOX2I & | BBox () |
BOARD_CONNECTED_ITEM * | Parent () const |
const std::vector< CN_ITEM * > & | ConnectedItems () const |
void | ClearConnections () |
void | SetVisited (bool aVisited) |
bool | Visited () const |
bool | CanChangeNet () const |
void | Connect (CN_ITEM *b) |
void | RemoveInvalidRefs () |
int | Net () const |
Protected Attributes | |
bool | m_dirty |
used to identify recently added item not yet scanned into the connectivity search | |
int | m_start_layer |
start layer of the item N.B. B_Cu is set to INT_MAX | |
int | m_end_layer |
end layer of the item N.B. B_Cu is set to INT_MAX | |
BOX2I | m_bbox |
bounding box for the item | |
Private Attributes | |
ZONE * | m_zone |
int | m_subpolyIndex |
PCB_LAYER_ID | m_layer |
std::shared_ptr< SHAPE_POLY_SET > | m_fillPoly |
RTree< const SHAPE *, int, 2, double > | m_rTree |
BOARD_CONNECTED_ITEM * | m_parent |
std::vector< CN_ITEM * > | m_connected |
list of physically touching items | |
std::vector< std::shared_ptr< CN_ANCHOR > > | m_anchors |
bool | m_canChangeNet |
can the net propagator modify the netcode? | |
bool | m_visited |
visited flag for the BFS scan | |
bool | m_valid |
used to identify garbage items (we use lazy removal) | |
std::mutex | m_listLock |
mutex protecting this item's connected_items set to | |
Definition at line 288 of file connectivity_items.h.
|
inline |
Definition at line 291 of file connectivity_items.h.
References ZONE::GetFilledPolysList(), m_fillPoly, and CN_ITEM::SetLayers().
Definition at line 156 of file connectivity_items.h.
References CN_ITEM::m_anchors.
Referenced by CN_LIST::Add().
|
overridevirtual |
Reimplemented from CN_ITEM.
Definition at line 97 of file connectivity_items.cpp.
References ZONE::GetFilledPolysList(), m_layer, m_subpolyIndex, CN_ITEM::Parent(), and CN_ITEM::Valid().
|
inlineinherited |
Definition at line 162 of file connectivity_items.h.
References CN_ITEM::m_anchors.
Referenced by TRACKS_CLEANER::testTrackEndpointIsNode().
|
inlineinherited |
Definition at line 222 of file connectivity_items.h.
References EDA_ITEM::GetBoundingBox(), CN_ITEM::m_bbox, CN_ITEM::m_dirty, CN_ITEM::m_parent, and CN_ITEM::m_valid.
Referenced by CN_VISITOR::checkZoneZoneConnection(), and CN_LIST::FindNearby().
|
inline |
Definition at line 301 of file connectivity_items.h.
References BOX2< Vec >::GetBottom(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), ZONE::IsTeardropArea(), m_fillPoly, m_rTree, m_subpolyIndex, and m_zone.
Referenced by CN_LIST::Add().
|
inlineinherited |
Definition at line 238 of file connectivity_items.h.
References CN_ITEM::m_canChangeNet.
Referenced by CN_VISITOR::operator()().
|
inlineinherited |
Definition at line 233 of file connectivity_items.h.
References CN_ITEM::m_connected.
|
inline |
Definition at line 364 of file connectivity_items.h.
References SHAPE::BBox(), SHAPE::Collide(), BOX2< Vec >::GetBottom(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), ZONE::IsTeardropArea(), m_fillPoly, m_rTree, and m_zone.
Referenced by CN_VISITOR::checkZoneItemConnection().
|
inlineinherited |
Definition at line 240 of file connectivity_items.h.
References CN_ITEM::m_connected, and CN_ITEM::m_listLock.
Referenced by CN_VISITOR::checkZoneItemConnection(), CN_VISITOR::checkZoneZoneConnection(), and CN_VISITOR::operator()().
|
inlineinherited |
Definition at line 232 of file connectivity_items.h.
References CN_ITEM::m_connected.
Referenced by CN_ANCHOR::ConnectedItemsCount(), CONNECTIVITY_DATA::GetConnectedItemsAtAnchor(), CONNECTIVITY_DATA::GetConnectedPads(), CONNECTIVITY_DATA::GetConnectedPadsAndVias(), CONNECTIVITY_DATA::GetConnectedTracks(), HasSingleConnection(), CONNECTIVITY_DATA::IsConnectedOnLayer(), CN_ANCHOR::IsDangling(), RN_NET::OptimizeRNEdges(), CN_CONNECTIVITY_ALGO::SearchClusters(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), and uniquePathBetweenNodes().
|
inline |
Definition at line 328 of file connectivity_items.h.
References ZONE::IsTeardropArea(), m_fillPoly, m_rTree, m_subpolyIndex, m_zone, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by CN_VISITOR::checkZoneItemConnection(), and CN_VISITOR::checkZoneZoneConnection().
|
inlineinherited |
Definition at line 168 of file connectivity_items.h.
References CN_ITEM::m_dirty.
Referenced by CN_ANCHOR::Dirty(), and CN_VISITOR::operator()().
|
inherited |
Definition at line 85 of file connectivity_items.cpp.
References CN_ITEM::m_connected, EDA_ITEM::Type(), and CN_ITEM::Valid().
|
inlineinherited |
Definition at line 196 of file connectivity_items.h.
References CN_ITEM::m_end_layer.
Referenced by CN_LIST::FindNearby().
|
overridevirtual |
Reimplemented from CN_ITEM.
Definition at line 108 of file connectivity_items.cpp.
References ZONE::GetFilledPolysList(), m_layer, m_subpolyIndex, CN_ITEM::Parent(), and CN_ITEM::Valid().
|
inlineinherited |
When using CN_ITEM layers to compare against board items, use this function which correctly remaps the B_Cu layer.
Definition at line 212 of file connectivity_items.h.
References B_Cu, CN_ITEM::Layer(), and ToLAYER_ID().
Referenced by RN_NET::OptimizeRNEdges().
|
inline |
Definition at line 354 of file connectivity_items.h.
References m_layer.
|
inline |
Definition at line 326 of file connectivity_items.h.
References m_layer.
Referenced by CN_VISITOR::checkZoneItemConnection(), and CN_VISITOR::checkZoneZoneConnection().
|
inline |
Definition at line 359 of file connectivity_items.h.
References m_fillPoly, and m_subpolyIndex.
Referenced by RN_NET::OptimizeRNEdges().
bool CN_ZONE_LAYER::HasSingleConnection | ( | ) |
Definition at line 119 of file connectivity_items.cpp.
References CN_ITEM::ConnectedItems().
Referenced by CN_CONNECTIVITY_ALGO::FillIsolatedIslandsMap().
|
inlinevirtualinherited |
Return the item's layer, for single-layered items only.
N.B. This should only be used inside connectivity as B_Cu is mapped to a large int
Definition at line 203 of file connectivity_items.h.
References CN_ITEM::StartLayer().
Referenced by CN_ITEM::GetBoardLayer().
|
inlineinherited |
Definition at line 257 of file connectivity_items.h.
References BOARD_CONNECTED_ITEM::GetNetCode(), CN_ITEM::m_parent, and CN_ITEM::m_valid.
Referenced by CN_CLUSTER::Add(), CONNECTIVITY_DATA::GetNetItems(), CN_VISITOR::operator()(), NETCODE_CMP_LESS::operator()(), and CN_CONNECTIVITY_ALGO::SearchClusters().
|
inlineinherited |
Definition at line 230 of file connectivity_items.h.
References CN_ITEM::m_parent.
Referenced by CN_CLUSTER::Add(), AnchorCount(), CN_VISITOR::checkZoneItemConnection(), CN_VISITOR::checkZoneZoneConnection(), GetAnchor(), CONNECTIVITY_DATA::GetNetItems(), CONNECTIVITY_DATA::IsConnectedOnLayer(), CN_VISITOR::operator()(), CN_CLUSTER::OriginNetName(), and CN_ANCHOR::Parent().
|
inherited |
Definition at line 136 of file connectivity_items.cpp.
References CN_ITEM::m_connected.
|
inlineinherited |
Definition at line 167 of file connectivity_items.h.
References CN_ITEM::m_dirty.
|
inlineinherited |
Set the layers spanned by the item to a single layer aLayer.
Definition at line 190 of file connectivity_items.h.
References CN_ITEM::SetLayers().
Referenced by CN_LIST::Add().
|
inlineinherited |
Set the layers spanned by the item to aStartLayer and aEndLayer.
Definition at line 173 of file connectivity_items.h.
References B_Cu, CN_ITEM::m_end_layer, and CN_ITEM::m_start_layer.
Referenced by CN_LIST::Add(), CN_ZONE_LAYER(), and CN_ITEM::SetLayer().
|
inlineinherited |
Definition at line 164 of file connectivity_items.h.
References CN_ITEM::m_valid.
|
inlineinherited |
Definition at line 235 of file connectivity_items.h.
References CN_ITEM::m_visited.
Referenced by CN_CONNECTIVITY_ALGO::SearchClusters().
|
inlineinherited |
Return the contiguous set of layers spanned by the item.
Definition at line 195 of file connectivity_items.h.
References CN_ITEM::m_start_layer.
Referenced by CN_LIST::FindNearby(), and CN_ITEM::Layer().
|
inline |
Definition at line 324 of file connectivity_items.h.
References m_subpolyIndex.
Referenced by CN_VISITOR::checkZoneZoneConnection(), CN_CONNECTIVITY_ALGO::FillIsolatedIslandsMap(), and CONNECTIVITY_DATA::IsConnectedOnLayer().
|
inlineinherited |
Definition at line 165 of file connectivity_items.h.
References CN_ITEM::m_valid.
Referenced by AnchorCount(), CN_ITEM::Dump(), GetAnchor(), CONNECTIVITY_DATA::GetNetItems(), CN_VISITOR::operator()(), CN_CLUSTER::OriginNetName(), CN_ANCHOR::Parent(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), TRACKS_CLEANER::testTrackEndpointIsNode(), and CN_ANCHOR::Valid().
|
inlineinherited |
Definition at line 236 of file connectivity_items.h.
References CN_ITEM::m_visited.
|
privateinherited |
Definition at line 273 of file connectivity_items.h.
Referenced by CN_ITEM::AddAnchor(), CN_ITEM::AnchorCount(), CN_ITEM::Anchors(), CN_ITEM::CN_ITEM(), CN_ITEM::GetAnchor(), and CN_ITEM::~CN_ITEM().
|
protectedinherited |
bounding box for the item
Definition at line 267 of file connectivity_items.h.
Referenced by CN_ITEM::BBox().
|
privateinherited |
can the net propagator modify the netcode?
Definition at line 275 of file connectivity_items.h.
Referenced by CN_ITEM::CanChangeNet(), and CN_ITEM::CN_ITEM().
|
privateinherited |
list of physically touching items
Definition at line 272 of file connectivity_items.h.
Referenced by CN_ITEM::ClearConnections(), CN_ITEM::CN_ITEM(), CN_ITEM::Connect(), CN_ITEM::ConnectedItems(), CN_ITEM::Dump(), and CN_ITEM::RemoveInvalidRefs().
|
protectedinherited |
used to identify recently added item not yet scanned into the connectivity search
Definition at line 263 of file connectivity_items.h.
Referenced by CN_ITEM::BBox(), CN_ITEM::CN_ITEM(), CN_ITEM::Dirty(), and CN_ITEM::SetDirty().
|
protectedinherited |
end layer of the item N.B. B_Cu is set to INT_MAX
Definition at line 266 of file connectivity_items.h.
Referenced by CN_ITEM::CN_ITEM(), CN_ITEM::EndLayer(), and CN_ITEM::SetLayers().
|
private |
Definition at line 397 of file connectivity_items.h.
Referenced by BuildRTree(), CN_ZONE_LAYER(), Collide(), ContainsPoint(), and GetOutline().
|
private |
Definition at line 396 of file connectivity_items.h.
Referenced by AnchorCount(), GetAnchor(), and GetLayer().
|
privateinherited |
mutex protecting this item's connected_items set to
Definition at line 280 of file connectivity_items.h.
Referenced by CN_ITEM::Connect().
|
privateinherited |
Definition at line 270 of file connectivity_items.h.
Referenced by CN_ITEM::AnchorCount(), CN_ITEM::BBox(), CN_ITEM::CN_ITEM(), CN_ITEM::GetAnchor(), CN_ITEM::Net(), and CN_ITEM::Parent().
|
private |
Definition at line 398 of file connectivity_items.h.
Referenced by BuildRTree(), Collide(), and ContainsPoint().
|
protectedinherited |
start layer of the item N.B. B_Cu is set to INT_MAX
Definition at line 265 of file connectivity_items.h.
Referenced by CN_ITEM::CN_ITEM(), CN_ITEM::SetLayers(), and CN_ITEM::StartLayer().
|
private |
Definition at line 395 of file connectivity_items.h.
Referenced by AnchorCount(), BuildRTree(), ContainsPoint(), GetAnchor(), GetOutline(), and SubpolyIndex().
|
privateinherited |
used to identify garbage items (we use lazy removal)
Definition at line 278 of file connectivity_items.h.
Referenced by CN_ITEM::AnchorCount(), CN_ITEM::BBox(), CN_ITEM::CN_ITEM(), CN_ITEM::GetAnchor(), CN_ITEM::Net(), CN_ITEM::SetValid(), and CN_ITEM::Valid().
|
privateinherited |
visited flag for the BFS scan
Definition at line 277 of file connectivity_items.h.
Referenced by CN_ITEM::CN_ITEM(), CN_ITEM::SetVisited(), and CN_ITEM::Visited().
|
private |
Definition at line 394 of file connectivity_items.h.
Referenced by BuildRTree(), Collide(), and ContainsPoint().