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 105 of file pns_kicad_iface.cpp.
PNS_PCBNEW_RULE_RESOLVER::PNS_PCBNEW_RULE_RESOLVER | ( | BOARD * | aBoard, |
PNS::ROUTER_IFACE * | aRouterIface | ||
) |
Definition at line 161 of file pns_kicad_iface.cpp.
|
virtual |
Definition at line 185 of file pns_kicad_iface.cpp.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 492 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 139 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 452 of file pns_kicad_iface.cpp.
References m_clearanceCache.
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 479 of file pns_kicad_iface.cpp.
References m_clearanceCache, and m_tempClearanceCache.
|
overridevirtual |
Reimplemented from PNS::RULE_RESOLVER.
Definition at line 486 of file pns_kicad_iface.cpp.
References m_tempClearanceCache.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 873 of file pns_kicad_iface.cpp.
References BOARD::DpCoupledNet(), and m_board.
Referenced by PNS_KICAD_IFACE_BASE::ImportSizes().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 904 of file pns_kicad_iface.cpp.
References BOARD::FindNet(), m_board, BOARD::MatchDpSuffix(), and PNS::ITEM::Net().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 891 of file pns_kicad_iface.cpp.
References m_board, and BOARD::MatchDpSuffix().
|
private |
Definition at line 341 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, PCB_TRACK::SetEnd(), BOARD_ITEM::SetLayer(), PCB_VIA::SetLayer(), BOARD_CONNECTED_ITEM::SetNet(), PCB_TRACK::SetStart(), and PNS::ITEM::VIA_T.
Referenced by IsKeepout(), and QueryConstraint().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 305 of file pns_kicad_iface.cpp.
References BOARD_ITEM::HasDrilledHole(), isHole(), and PNS::ITEM::Parent().
Referenced by Clearance().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 190 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), BOARD_ITEM::GetParentFootprint(), and FOOTPRINT::IsNetTie().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 229 of file pns_kicad_iface.cpp.
References getBoardItem(), PNS::ROUTER_IFACE::GetBoardLayerFromPNSLayer(), ZONE::GetDoNotAllowFootprints(), ZONE::GetDoNotAllowPads(), ZONE::GetDoNotAllowTracks(), ZONE::GetDoNotAllowVias(), ZONE::GetIsRuleArea(), BOARD_ITEM::GetParentFootprint(), ZONE::HasKeepoutParametersSet(), PNS::ITEM::Layer(), m_routerIface, PNS::ITEM::Parent(), PCB_ARC_T, PCB_PAD_T, PCB_TRACE_T, PCB_VIA_T, PCB_ZONE_T, and EDA_ITEM::Type().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 198 of file pns_kicad_iface.cpp.
References PNS::ITEM::BoardItem(), PNS::ROUTER_IFACE::GetBoardLayerFromPNSLayer(), BOARD::GetDesignSettings(), BOARD_ITEM::GetParentFootprint(), FOOTPRINT::IsNetTie(), PNS::ITEM::Layer(), m_board, BOARD_DESIGN_SETTINGS::m_DRCEngine, m_routerIface, PNS::ITEM::Net(), and NetCode().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 314 of file pns_kicad_iface.cpp.
References isHole(), 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 879 of file pns_kicad_iface.cpp.
References PNS::ROUTER_IFACE::GetNetCode(), and m_routerIface.
Referenced by IsNetTieExclusion().
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 885 of file pns_kicad_iface.cpp.
References PNS::ROUTER_IFACE::GetNetName(), and m_routerIface.
|
overridevirtual |
Implements PNS::RULE_RESOLVER.
Definition at line 373 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(), PNS::ROUTER_IFACE::GetBoardLayerFromPNSLayer(), BOARD::GetDesignSettings(), DRC_CONSTRAINT::GetName(), DRC_CONSTRAINT::GetSeverity(), DRC_CONSTRAINT::GetValue(), HOLE_CLEARANCE_CONSTRAINT, HOLE_SIZE_CONSTRAINT, HOLE_TO_HOLE_CONSTRAINT, DRC_CONSTRAINT::IsNull(), LENGTH_CONSTRAINT, m_board, BOARD_DESIGN_SETTINGS::m_DRCEngine, 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, TRACK_WIDTH_CONSTRAINT, and VIA_DIAMETER_CONSTRAINT.
Referenced by Clearance(), and PNS_KICAD_IFACE_BASE::ImportSizes().
|
private |
Definition at line 150 of file pns_kicad_iface.cpp.
Referenced by DpCoupledNet(), DpNetPair(), DpNetPolarity(), IsNetTieExclusion(), and QueryConstraint().
|
private |
Definition at line 156 of file pns_kicad_iface.cpp.
Referenced by Clearance(), ClearCacheForItems(), and ClearCaches().
|
private |
Definition at line 154 of file pns_kicad_iface.cpp.
Referenced by Clearance(), and ClearanceEpsilon().
|
private |
Definition at line 152 of file pns_kicad_iface.cpp.
Referenced by getBoardItem().
|
private |
Definition at line 151 of file pns_kicad_iface.cpp.
Referenced by getBoardItem().
|
private |
Definition at line 153 of file pns_kicad_iface.cpp.
Referenced by getBoardItem().
|
private |
Definition at line 149 of file pns_kicad_iface.cpp.
Referenced by IsKeepout(), IsNetTieExclusion(), NetCode(), NetName(), and QueryConstraint().
|
private |
Definition at line 157 of file pns_kicad_iface.cpp.
Referenced by Clearance(), ClearCaches(), and ClearTemporaryCaches().