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
 

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
 

Detailed Description

Definition at line 105 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 161 of file pns_kicad_iface.cpp.

◆ ~PNS_PCBNEW_RULE_RESOLVER()

PNS_PCBNEW_RULE_RESOLVER::~PNS_PCBNEW_RULE_RESOLVER ( )
virtual

Definition at line 185 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 139 of file pns_kicad_iface.cpp.

References m_clearanceEpsilon.

Referenced by PNS_KICAD_IFACE_BASE::SyncWorld().

◆ ClearCacheForItems()

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

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 452 of file pns_kicad_iface.cpp.

References m_clearanceCache.

◆ ClearCaches()

void PNS_PCBNEW_RULE_RESOLVER::ClearCaches ( )
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 479 of file pns_kicad_iface.cpp.

References m_clearanceCache, and m_tempClearanceCache.

◆ ClearTemporaryCaches()

void PNS_PCBNEW_RULE_RESOLVER::ClearTemporaryCaches ( )
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 486 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 873 of file pns_kicad_iface.cpp.

References BOARD::DpCoupledNet(), and m_board.

Referenced by PNS_KICAD_IFACE_BASE::ImportSizes().

◆ DpNetPair()

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

◆ DpNetPolarity()

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

Implements PNS::RULE_RESOLVER.

Definition at line 891 of file pns_kicad_iface.cpp.

References m_board, and BOARD::MatchDpSuffix().

◆ getBoardItem()

◆ IsDrilledHole()

bool PNS_PCBNEW_RULE_RESOLVER::IsDrilledHole ( const PNS::ITEM aItem)
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().

◆ 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 879 of file pns_kicad_iface.cpp.

References PNS::ROUTER_IFACE::GetNetCode(), and m_routerIface.

Referenced by IsNetTieExclusion().

◆ NetName()

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

Implements PNS::RULE_RESOLVER.

Definition at line 885 of file pns_kicad_iface.cpp.

References PNS::ROUTER_IFACE::GetNetName(), and m_routerIface.

◆ QueryConstraint()

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 156 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 154 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 152 of file pns_kicad_iface.cpp.

Referenced by getBoardItem().

◆ m_dummyTracks

PCB_TRACK PNS_PCBNEW_RULE_RESOLVER::m_dummyTracks[2]
private

Definition at line 151 of file pns_kicad_iface.cpp.

Referenced by getBoardItem().

◆ m_dummyVias

PCB_VIA PNS_PCBNEW_RULE_RESOLVER::m_dummyVias[2]
private

Definition at line 153 of file pns_kicad_iface.cpp.

Referenced by getBoardItem().

◆ m_routerIface

PNS::ROUTER_IFACE* PNS_PCBNEW_RULE_RESOLVER::m_routerIface
private

Definition at line 149 of file pns_kicad_iface.cpp.

Referenced by IsKeepout(), IsNetTieExclusion(), NetCode(), NetName(), and QueryConstraint().

◆ m_tempClearanceCache

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

Definition at line 157 of file pns_kicad_iface.cpp.

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


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