KiCad PCB EDA Suite
|
Public Member Functions | |
PNS_PCBNEW_RULE_RESOLVER (BOARD *aBoard, PNS::ROUTER_IFACE *aRouterIface) | |
virtual | ~PNS_PCBNEW_RULE_RESOLVER () |
virtual int | Clearance (const PNS::ITEM *aA, const PNS::ITEM *aB, bool aUseClearanceEpsilon=true) override |
virtual int | DpCoupledNet (int aNet) override |
virtual int | DpNetPolarity (int aNet) override |
virtual bool | DpNetPair (const PNS::ITEM *aItem, int &aNetP, int &aNetN) override |
virtual bool | IsInNetTie (const PNS::ITEM *aA) override |
virtual bool | IsNetTieExclusion (const PNS::ITEM *aItem, const VECTOR2I &aCollisionPos, const PNS::ITEM *aCollidingItem) override |
virtual bool | IsKeepout (const PNS::ITEM *aA, const PNS::ITEM *aB) override |
virtual bool | QueryConstraint (PNS::CONSTRAINT_TYPE aType, const PNS::ITEM *aItemA, const PNS::ITEM *aItemB, int aLayer, PNS::CONSTRAINT *aConstraint) override |
virtual wxString | NetName (int aNet) override |
int | ClearanceEpsilon () const override |
void | ClearCacheForItem (const PNS::ITEM *aItem) override |
void | ClearCaches () override |
Private Member Functions | |
int | matchDpSuffix (const wxString &aNetName, wxString &aComplementNet) |
Checks for netnamed differential pairs. More... | |
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 |
Definition at line 101 of file pns_kicad_iface.cpp.
PNS_PCBNEW_RULE_RESOLVER::PNS_PCBNEW_RULE_RESOLVER | ( | BOARD * | aBoard, |
PNS::ROUTER_IFACE * | aRouterIface | ||
) |
Definition at line 154 of file pns_kicad_iface.cpp.
|
virtual |
Definition at line 169 of file pns_kicad_iface.cpp.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 429 of file pns_kicad_iface.cpp.
References PNS::CT_CLEARANCE, PNS::CT_EDGE_CLEARANCE, PNS::CT_HOLE_CLEARANCE, PNS::CT_HOLE_TO_HOLE, LAYER_RANGE::End(), LAYER_RANGE::Intersection(), isCopper(), isDrilledHole(), isEdge(), isHole(), isNonPlatedSlot(), PNS::ITEM::Layers(), m_clearanceCache, m_clearanceEpsilon, PNS::CONSTRAINT::m_Value, MINOPTMAX< T >::Min(), PCB_LAYER_ID_COUNT, PCBNEW_LAYER_ID_START, QueryConstraint(), and LAYER_RANGE::Start().
|
inlineoverridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 125 of file pns_kicad_iface.cpp.
References m_clearanceEpsilon.
Referenced by PNS_KICAD_IFACE_BASE::SyncWorld().
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 413 of file pns_kicad_iface.cpp.
References CLEARANCE_CACHE_KEY::Flag, and m_clearanceCache.
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 423 of file pns_kicad_iface.cpp.
References m_clearanceCache.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 790 of file pns_kicad_iface.cpp.
References BOARD::FindNet(), NETINFO_ITEM::GetNetCode(), NETINFO_ITEM::GetNetname(), m_board, and matchDpSuffix().
Referenced by PNS_KICAD_IFACE_BASE::ImportSizes().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 824 of file pns_kicad_iface.cpp.
References BOARD::FindNet(), BOARD_CONNECTED_ITEM::GetNet(), NETINFO_ITEM::GetNetCode(), NETINFO_ITEM::GetNetname(), BOARD_ITEM::IsConnected(), m_board, matchDpSuffix(), PNS::ITEM::Net(), and PNS::ITEM::Parent().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 815 of file pns_kicad_iface.cpp.
References BOARD::FindNet(), NETINFO_ITEM::GetNetname(), m_board, and matchDpSuffix().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 174 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), BOARD_ITEM::GetParentFootprint(), and FOOTPRINT::IsNetTie().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 211 of file pns_kicad_iface.cpp.
References ZONE::GetDoNotAllowFootprints(), ZONE::GetDoNotAllowPads(), ZONE::GetDoNotAllowTracks(), ZONE::GetDoNotAllowVias(), BOARD_ITEM::GetParentFootprint(), PNS::ITEM::Parent(), PCB_ARC_T, PCB_PAD_T, PCB_TRACE_T, and PCB_VIA_T.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 182 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), BOARD::GetDesignSettings(), BOARD_ITEM::GetParentFootprint(), FOOTPRINT::IsNetTie(), PNS::ITEM::Layer(), m_board, BOARD_DESIGN_SETTINGS::m_DRCEngine, PNS::ITEM::Net(), and ToLAYER_ID().
|
private |
Checks for netnamed differential pairs.
This accepts nets named suffixed by 'P', 'N', '+', '-', as well as additional numbers and underscores following the suffix. So NET_P_123 is a valid positive net name matched to NET_N_123.
aNetName | Input net name to check for DP naming |
aComplementNet | Generated net name for the pair |
Definition at line 741 of file pns_kicad_iface.cpp.
Referenced by DpCoupledNet(), DpNetPair(), and DpNetPolarity().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 809 of file pns_kicad_iface.cpp.
References BOARD::FindNet(), NETINFO_ITEM::GetNetname(), and m_board.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 310 of file pns_kicad_iface.cpp.
References PNS::ITEM::ARC_T, PNS::ITEM::BoardItem(), CLEARANCE_CONSTRAINT, PNS::CT_CLEARANCE, PNS::CT_DIFF_PAIR_GAP, PNS::CT_EDGE_CLEARANCE, PNS::CT_HOLE_CLEARANCE, PNS::CT_HOLE_TO_HOLE, PNS::CT_LENGTH, PNS::CT_VIA_DIAMETER, PNS::CT_VIA_HOLE, PNS::CT_WIDTH, DIFF_PAIR_GAP_CONSTRAINT, EDGE_CLEARANCE_CONSTRAINT, BOARD::GetDesignSettings(), DRC_CONSTRAINT::GetName(), DRC_CONSTRAINT::GetSeverity(), DRC_CONSTRAINT::GetValue(), HOLE_CLEARANCE_CONSTRAINT, HOLE_SIZE_CONSTRAINT, PNS::ITEM::HOLE_T, HOLE_TO_HOLE_CONSTRAINT, DRC_CONSTRAINT::IsNull(), PNS::ITEM::Kind(), LENGTH_CONSTRAINT, PNS::ITEM::LINE_T, m_board, BOARD_DESIGN_SETTINGS::m_DRCEngine, m_dummyArcs, m_dummyTracks, m_dummyVias, PNS::CONSTRAINT::m_RuleName, PNS::CONSTRAINT::m_Type, PNS::CONSTRAINT::m_Value, PNS::ITEM::Net(), RPT_SEVERITY_IGNORE, PNS::ITEM::SEGMENT_T, BOARD_ITEM::SetLayer(), MINOPTMAX< T >::SetMin(), ToLAYER_ID(), TRACK_WIDTH_CONSTRAINT, VIA_DIAMETER_CONSTRAINT, and PNS::ITEM::VIA_T.
Referenced by Clearance(), and PNS_KICAD_IFACE_BASE::ImportSizes().
|
private |
Definition at line 144 of file pns_kicad_iface.cpp.
Referenced by DpCoupledNet(), DpNetPair(), DpNetPolarity(), IsNetTieExclusion(), NetName(), and QueryConstraint().
|
private |
Definition at line 150 of file pns_kicad_iface.cpp.
Referenced by Clearance(), ClearCacheForItem(), and ClearCaches().
|
private |
Definition at line 148 of file pns_kicad_iface.cpp.
Referenced by Clearance(), and ClearanceEpsilon().
|
private |
Definition at line 146 of file pns_kicad_iface.cpp.
Referenced by QueryConstraint().
|
private |
Definition at line 145 of file pns_kicad_iface.cpp.
Referenced by QueryConstraint().
|
private |
Definition at line 147 of file pns_kicad_iface.cpp.
Referenced by QueryConstraint().
|
private |
Definition at line 143 of file pns_kicad_iface.cpp.