KiCad PCB EDA Suite
|
Public Member Functions | |
PNS_PCBNEW_RULE_RESOLVER (BOARD *aBoard, PNS::ROUTER_IFACE *aRouterIface) | |
virtual | ~PNS_PCBNEW_RULE_RESOLVER () |
int | Clearance (const PNS::ITEM *aA, const PNS::ITEM *aB, bool aUseClearanceEpsilon=true) override |
PNS::NET_HANDLE | DpCoupledNet (PNS::NET_HANDLE aNet) override |
int | DpNetPolarity (PNS::NET_HANDLE aNet) override |
bool | DpNetPair (const PNS::ITEM *aItem, PNS::NET_HANDLE &aNetP, PNS::NET_HANDLE &aNetN) override |
int | NetCode (PNS::NET_HANDLE aNet) override |
wxString | NetName (PNS::NET_HANDLE aNet) override |
bool | IsInNetTie (const PNS::ITEM *aA) override |
bool | IsNetTieExclusion (const PNS::ITEM *aItem, const VECTOR2I &aCollisionPos, const PNS::ITEM *aCollidingItem) override |
bool | IsDrilledHole (const PNS::ITEM *aItem) override |
bool | IsNonPlatedSlot (const PNS::ITEM *aItem) override |
bool | IsKeepout (const PNS::ITEM *aObstacle, const PNS::ITEM *aItem, bool *aEnforce) override |
bool | QueryConstraint (PNS::CONSTRAINT_TYPE aType, const PNS::ITEM *aItemA, const PNS::ITEM *aItemB, int aLayer, PNS::CONSTRAINT *aConstraint) override |
int | ClearanceEpsilon () const override |
void | ClearCacheForItems (std::vector< const PNS::ITEM * > &aItems) override |
void | ClearCaches () override |
void | ClearTemporaryCaches () override |
Private Member Functions | |
BOARD_ITEM * | getBoardItem (const PNS::ITEM *aItem, PCB_LAYER_ID aBoardLayer, int aIdx=0) |
Private Attributes | |
PNS::ROUTER_IFACE * | m_routerIface |
BOARD * | m_board |
PCB_TRACK | m_dummyTracks [2] |
PCB_ARC | m_dummyArcs [2] |
PCB_VIA | m_dummyVias [2] |
int | m_clearanceEpsilon |
std::unordered_map< CLEARANCE_CACHE_KEY, int > | m_clearanceCache |
std::unordered_map< CLEARANCE_CACHE_KEY, int > | m_tempClearanceCache |
Definition at line 110 of file pns_kicad_iface.cpp.
PNS_PCBNEW_RULE_RESOLVER::PNS_PCBNEW_RULE_RESOLVER | ( | BOARD * | aBoard, |
PNS::ROUTER_IFACE * | aRouterIface ) |
Definition at line 166 of file pns_kicad_iface.cpp.
References m_board, m_dummyTracks, and m_routerIface.
|
virtual |
Definition at line 190 of file pns_kicad_iface.cpp.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 503 of file pns_kicad_iface.cpp.
References PNS::CT_CLEARANCE, PNS::CT_EDGE_CLEARANCE, PNS::CT_HOLE_CLEARANCE, PNS::CT_HOLE_TO_HOLE, PNS::CT_PHYSICAL_CLEARANCE, PNS_LAYER_RANGE::End(), PNS_LAYER_RANGE::Intersection(), isCopper(), IsDrilledHole(), isEdge(), isHole(), IsNonPlatedSlot(), PNS::ITEM::Layers(), m_clearanceCache, m_clearanceEpsilon, m_tempClearanceCache, PNS::CONSTRAINT::m_Value, MINOPTMAX< T >::Min(), PNS::OWNABLE_ITEM::Owner(), PCB_LAYER_ID_COUNT, PCBNEW_LAYER_ID_START, QueryConstraint(), and PNS_LAYER_RANGE::Start().
|
inlineoverridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 144 of file pns_kicad_iface.cpp.
References m_clearanceEpsilon.
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 463 of file pns_kicad_iface.cpp.
References m_clearanceCache.
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 490 of file pns_kicad_iface.cpp.
References m_clearanceCache, and m_tempClearanceCache.
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 497 of file pns_kicad_iface.cpp.
References m_tempClearanceCache.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 884 of file pns_kicad_iface.cpp.
References m_board.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 915 of file pns_kicad_iface.cpp.
References NETINFO_ITEM::GetNetname(), m_board, and PNS::ITEM::Net().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 902 of file pns_kicad_iface.cpp.
References m_board.
|
private |
Definition at line 351 of file pns_kicad_iface.cpp.
References PNS::ITEM::Anchor(), PNS::ITEM::ARC_T, PNS::ITEM::HOLE_T, PNS::ITEM::Kind(), PNS::ITEM::LINE_T, m_dummyArcs, m_dummyTracks, m_dummyVias, PNS::ITEM::Net(), PNS::ITEM::SEGMENT_T, and PNS::ITEM::VIA_T.
Referenced by IsKeepout(), and QueryConstraint().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 310 of file pns_kicad_iface.cpp.
References BOARD_ITEM::HasDrilledHole(), isHole(), PNS::ITEM::Parent(), and PNS::ITEM::ParentPadVia().
Referenced by Clearance().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 195 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), BOARD_ITEM::GetParentFootprint(), and FOOTPRINT::IsNetTie().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 234 of file pns_kicad_iface.cpp.
References getBoardItem(), ZONE::GetDoNotAllowFootprints(), ZONE::GetDoNotAllowPads(), ZONE::GetDoNotAllowTracks(), ZONE::GetDoNotAllowVias(), ZONE::GetIsRuleArea(), BOARD_ITEM::GetParentFootprint(), ZONE::HasKeepoutParametersSet(), PNS::ITEM::Layer(), m_routerIface, PNS::ITEM::Parent(), PCB_PAD_T, PCB_VIA_T, PCB_ZONE_T, and EDA_ITEM::Type().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 203 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), BOARD_ITEM::GetParentFootprint(), FOOTPRINT::IsNetTie(), PNS::ITEM::Layer(), m_board, m_routerIface, PNS::ITEM::Net(), and NetCode().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 324 of file pns_kicad_iface.cpp.
References isHole(), NPTH, pad, PNS::ITEM::Parent(), PNS::ITEM::ParentPadVia(), PCB_PAD_T, and EDA_ITEM::Type().
Referenced by Clearance().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 890 of file pns_kicad_iface.cpp.
References m_routerIface.
Referenced by IsNetTieExclusion().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 896 of file pns_kicad_iface.cpp.
References m_routerIface.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 383 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), CLEARANCE_CONSTRAINT, PNS::CT_CLEARANCE, PNS::CT_DIFF_PAIR_GAP, PNS::CT_DIFF_PAIR_SKEW, PNS::CT_EDGE_CLEARANCE, PNS::CT_HOLE_CLEARANCE, PNS::CT_HOLE_TO_HOLE, PNS::CT_LENGTH, PNS::CT_MAX_UNCOUPLED, PNS::CT_PHYSICAL_CLEARANCE, PNS::CT_VIA_DIAMETER, PNS::CT_VIA_HOLE, PNS::CT_WIDTH, DIFF_PAIR_GAP_CONSTRAINT, EDGE_CLEARANCE_CONSTRAINT, getBoardItem(), DRC_CONSTRAINT::GetName(), DRC_CONSTRAINT::GetOption(), DRC_CONSTRAINT::GetSeverity(), DRC_CONSTRAINT::GetValue(), HOLE_CLEARANCE_CONSTRAINT, HOLE_SIZE_CONSTRAINT, HOLE_TO_HOLE_CONSTRAINT, DRC_CONSTRAINT::IsNull(), LENGTH_CONSTRAINT, m_board, PNS::CONSTRAINT::m_IsTimeDomain, m_routerIface, PNS::CONSTRAINT::m_RuleName, PNS::CONSTRAINT::m_Type, PNS::CONSTRAINT::m_Value, MAX_UNCOUPLED_CONSTRAINT, PHYSICAL_CLEARANCE_CONSTRAINT, RPT_SEVERITY_IGNORE, MINOPTMAX< T >::SetMin(), SKEW_CONSTRAINT, DRC_CONSTRAINT::TIME_DOMAIN, TRACK_WIDTH_CONSTRAINT, and VIA_DIAMETER_CONSTRAINT.
Referenced by Clearance().
|
private |
Definition at line 155 of file pns_kicad_iface.cpp.
Referenced by DpCoupledNet(), DpNetPair(), DpNetPolarity(), IsNetTieExclusion(), PNS_PCBNEW_RULE_RESOLVER(), and QueryConstraint().
|
private |
Definition at line 161 of file pns_kicad_iface.cpp.
Referenced by Clearance(), ClearCacheForItems(), and ClearCaches().
|
private |
Definition at line 159 of file pns_kicad_iface.cpp.
Referenced by Clearance(), and ClearanceEpsilon().
|
private |
Definition at line 157 of file pns_kicad_iface.cpp.
Referenced by getBoardItem().
|
private |
Definition at line 156 of file pns_kicad_iface.cpp.
Referenced by getBoardItem(), and PNS_PCBNEW_RULE_RESOLVER().
|
private |
Definition at line 158 of file pns_kicad_iface.cpp.
Referenced by getBoardItem().
|
private |
Definition at line 154 of file pns_kicad_iface.cpp.
Referenced by IsKeepout(), IsNetTieExclusion(), NetCode(), NetName(), PNS_PCBNEW_RULE_RESOLVER(), and QueryConstraint().
|
private |
Definition at line 162 of file pns_kicad_iface.cpp.
Referenced by Clearance(), ClearCaches(), and ClearTemporaryCaches().