KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PNS_PCBNEW_RULE_RESOLVER Class Reference
Inheritance diagram for PNS_PCBNEW_RULE_RESOLVER:
PNS::RULE_RESOLVER

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
 
const SHAPE_LINE_CHAINHullCache (const PNS::ITEM *aItem, int aClearance, int aWalkaroundThickness, int aLayer) override
 

Private Member Functions

BOARD_ITEMgetBoardItem (const PNS::ITEM *aItem, PCB_LAYER_ID aBoardLayer, int aIdx=0)
 

Private Attributes

PNS::ROUTER_IFACEm_routerIface
 
BOARDm_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
 
std::unordered_map< HULL_CACHE_KEY, SHAPE_LINE_CHAINm_hullCache
 

Detailed Description

Definition at line 154 of file pns_kicad_iface.cpp.

Constructor & Destructor Documentation

◆ PNS_PCBNEW_RULE_RESOLVER()

PNS_PCBNEW_RULE_RESOLVER::PNS_PCBNEW_RULE_RESOLVER ( BOARD * aBoard,
PNS::ROUTER_IFACE * aRouterIface )

Definition at line 214 of file pns_kicad_iface.cpp.

References m_board, m_dummyTracks, and m_routerIface.

◆ ~PNS_PCBNEW_RULE_RESOLVER()

PNS_PCBNEW_RULE_RESOLVER::~PNS_PCBNEW_RULE_RESOLVER ( )
virtual

Definition at line 238 of file pns_kicad_iface.cpp.

Member Function Documentation

◆ Clearance()

◆ ClearanceEpsilon()

int PNS_PCBNEW_RULE_RESOLVER::ClearanceEpsilon ( ) const
inlineoverridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 188 of file pns_kicad_iface.cpp.

References m_clearanceEpsilon.

◆ ClearCacheForItems()

void PNS_PCBNEW_RULE_RESOLVER::ClearCacheForItems ( std::vector< const PNS::ITEM * > & aItems)
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 678 of file pns_kicad_iface.cpp.

References m_clearanceCache, and m_hullCache.

◆ ClearCaches()

void PNS_PCBNEW_RULE_RESOLVER::ClearCaches ( )
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 702 of file pns_kicad_iface.cpp.

References m_clearanceCache, m_hullCache, and m_tempClearanceCache.

◆ ClearTemporaryCaches()

void PNS_PCBNEW_RULE_RESOLVER::ClearTemporaryCaches ( )
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 710 of file pns_kicad_iface.cpp.

References m_tempClearanceCache.

◆ DpCoupledNet()

PNS::NET_HANDLE PNS_PCBNEW_RULE_RESOLVER::DpCoupledNet ( PNS::NET_HANDLE aNet)
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 1116 of file pns_kicad_iface.cpp.

References m_board.

◆ DpNetPair()

bool PNS_PCBNEW_RULE_RESOLVER::DpNetPair ( const PNS::ITEM * aItem,
PNS::NET_HANDLE & aNetP,
PNS::NET_HANDLE & aNetN )
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 1147 of file pns_kicad_iface.cpp.

References NETINFO_ITEM::GetNetname(), m_board, and PNS::ITEM::Net().

◆ DpNetPolarity()

int PNS_PCBNEW_RULE_RESOLVER::DpNetPolarity ( PNS::NET_HANDLE aNet)
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 1134 of file pns_kicad_iface.cpp.

References m_board.

◆ getBoardItem()

BOARD_ITEM * PNS_PCBNEW_RULE_RESOLVER::getBoardItem ( const PNS::ITEM * aItem,
PCB_LAYER_ID aBoardLayer,
int aIdx = 0 )
private

◆ HullCache()

const SHAPE_LINE_CHAIN & PNS_PCBNEW_RULE_RESOLVER::HullCache ( const PNS::ITEM * aItem,
int aClearance,
int aWalkaroundThickness,
int aLayer )
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 716 of file pns_kicad_iface.cpp.

References PNS::ITEM::Hull(), m_hullCache, and result.

◆ IsDrilledHole()

bool PNS_PCBNEW_RULE_RESOLVER::IsDrilledHole ( const PNS::ITEM * aItem)
overridevirtual

◆ IsInNetTie()

bool PNS_PCBNEW_RULE_RESOLVER::IsInNetTie ( const PNS::ITEM * aA)
overridevirtual

◆ IsKeepout()

bool PNS_PCBNEW_RULE_RESOLVER::IsKeepout ( const PNS::ITEM * aObstacle,
const PNS::ITEM * aItem,
bool * aEnforce )
overridevirtual

◆ IsNetTieExclusion()

bool PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion ( const PNS::ITEM * aItem,
const VECTOR2I & aCollisionPos,
const PNS::ITEM * aCollidingItem )
overridevirtual

◆ IsNonPlatedSlot()

bool PNS_PCBNEW_RULE_RESOLVER::IsNonPlatedSlot ( const PNS::ITEM * aItem)
overridevirtual

◆ NetCode()

int PNS_PCBNEW_RULE_RESOLVER::NetCode ( PNS::NET_HANDLE aNet)
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 1122 of file pns_kicad_iface.cpp.

References m_routerIface.

Referenced by IsNetTieExclusion().

◆ NetName()

wxString PNS_PCBNEW_RULE_RESOLVER::NetName ( PNS::NET_HANDLE aNet)
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 1128 of file pns_kicad_iface.cpp.

References m_routerIface.

◆ QueryConstraint()

bool PNS_PCBNEW_RULE_RESOLVER::QueryConstraint ( PNS::CONSTRAINT_TYPE aType,
const PNS::ITEM * aItemA,
const PNS::ITEM * aItemB,
int aLayer,
PNS::CONSTRAINT * aConstraint )
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 431 of file pns_kicad_iface.cpp.

References PNS::ITEM::BoardItem(), chain, CLEARANCE_CONSTRAINT, PNS::LINE::CLine(), SHAPE_LINE_CHAIN::CPoint(), 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_RULE::GetImplicitSource(), DRC_CONSTRAINT::GetName(), DRC_CONSTRAINT::GetOption(), DRC_CONSTRAINT::GetParentRule(), DRC_CONSTRAINT::GetSeverity(), DRC_CONSTRAINT::GetValue(), MINOPTMAX< T >::HasMin(), HOLE_CLEARANCE_CONSTRAINT, HOLE_SIZE_CONSTRAINT, HOLE_TO_HOLE_CONSTRAINT, BOX2< Vec >::Inflate(), BOX2< Vec >::Intersects(), DRC_RULE::IsImplicit(), DRC_CONSTRAINT::IsNull(), PNS::ITEM::Kind(), LENGTH_CONSTRAINT, PNS::ITEM::LINE_T, m_board, m_dummyTracks, PNS::CONSTRAINT::m_IsTimeDomain, m_routerIface, PNS::CONSTRAINT::m_RuleName, PNS::CONSTRAINT::m_Type, DRC_CONSTRAINT::m_Value, PNS::CONSTRAINT::m_Value, MAX_UNCOUPLED_CONSTRAINT, MINOPTMAX< T >::Min(), PNS::ITEM::Net(), BOX2< Vec >::Normalize(), PHYSICAL_CLEARANCE_CONSTRAINT, RPT_SEVERITY_IGNORE, SHAPE_LINE_CHAIN::SegmentCount(), BOX2< Vec >::SetEnd(), PCB_TRACK::SetEnd(), BOARD_CONNECTED_ITEM::SetLayer(), MINOPTMAX< T >::SetMin(), BOARD_CONNECTED_ITEM::SetNet(), BOX2< Vec >::SetOrigin(), PCB_TRACK::SetStart(), PCB_TRACK::SetWidth(), SKEW_CONSTRAINT, DRC_CONSTRAINT::TIME_DOMAIN, TRACK_WIDTH_CONSTRAINT, TUNING_PROFILE, and VIA_DIAMETER_CONSTRAINT.

Referenced by Clearance().

Member Data Documentation

◆ m_board

BOARD* PNS_PCBNEW_RULE_RESOLVER::m_board
private

◆ m_clearanceCache

std::unordered_map<CLEARANCE_CACHE_KEY, int> PNS_PCBNEW_RULE_RESOLVER::m_clearanceCache
private

Definition at line 208 of file pns_kicad_iface.cpp.

Referenced by Clearance(), ClearCacheForItems(), and ClearCaches().

◆ m_clearanceEpsilon

int PNS_PCBNEW_RULE_RESOLVER::m_clearanceEpsilon
private

Definition at line 206 of file pns_kicad_iface.cpp.

Referenced by Clearance(), and ClearanceEpsilon().

◆ m_dummyArcs

PCB_ARC PNS_PCBNEW_RULE_RESOLVER::m_dummyArcs[2]
private

Definition at line 204 of file pns_kicad_iface.cpp.

Referenced by getBoardItem().

◆ m_dummyTracks

PCB_TRACK PNS_PCBNEW_RULE_RESOLVER::m_dummyTracks[2]
private

Definition at line 203 of file pns_kicad_iface.cpp.

Referenced by getBoardItem(), PNS_PCBNEW_RULE_RESOLVER(), and QueryConstraint().

◆ m_dummyVias

PCB_VIA PNS_PCBNEW_RULE_RESOLVER::m_dummyVias[2]
private

Definition at line 205 of file pns_kicad_iface.cpp.

Referenced by getBoardItem().

◆ m_hullCache

std::unordered_map<HULL_CACHE_KEY, SHAPE_LINE_CHAIN> PNS_PCBNEW_RULE_RESOLVER::m_hullCache
private

Definition at line 210 of file pns_kicad_iface.cpp.

Referenced by ClearCacheForItems(), ClearCaches(), and HullCache().

◆ m_routerIface

PNS::ROUTER_IFACE* PNS_PCBNEW_RULE_RESOLVER::m_routerIface
private

◆ m_tempClearanceCache

std::unordered_map<CLEARANCE_CACHE_KEY, int> PNS_PCBNEW_RULE_RESOLVER::m_tempClearanceCache
private

Definition at line 209 of file pns_kicad_iface.cpp.

Referenced by Clearance(), ClearCaches(), and ClearTemporaryCaches().


The documentation for this class was generated from the following file: