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 ()
 
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_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
 

Detailed Description

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

◆ ~PNS_PCBNEW_RULE_RESOLVER()

PNS_PCBNEW_RULE_RESOLVER::~PNS_PCBNEW_RULE_RESOLVER ( )
virtual

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

References m_clearanceEpsilon.

Referenced by PNS_KICAD_IFACE_BASE::SyncWorld().

◆ ClearCacheForItem()

void PNS_PCBNEW_RULE_RESOLVER::ClearCacheForItem ( const PNS::ITEM aItem)
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 413 of file pns_kicad_iface.cpp.

References CLEARANCE_CACHE_KEY::Flag, and m_clearanceCache.

◆ ClearCaches()

void PNS_PCBNEW_RULE_RESOLVER::ClearCaches ( )
overridevirtual

Reimplemented from PNS::RULE_RESOLVER.

Definition at line 423 of file pns_kicad_iface.cpp.

References m_clearanceCache.

◆ DpCoupledNet()

int PNS_PCBNEW_RULE_RESOLVER::DpCoupledNet ( int  aNet)
overridevirtual

◆ DpNetPair()

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

◆ DpNetPolarity()

int PNS_PCBNEW_RULE_RESOLVER::DpNetPolarity ( int  aNet)
overridevirtual

◆ IsInNetTie()

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

◆ IsKeepout()

bool PNS_PCBNEW_RULE_RESOLVER::IsKeepout ( const PNS::ITEM aA,
const PNS::ITEM aB 
)
overridevirtual

◆ IsNetTieExclusion()

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

◆ matchDpSuffix()

int PNS_PCBNEW_RULE_RESOLVER::matchDpSuffix ( const wxString &  aNetName,
wxString &  aComplementNet 
)
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.

Parameters
aNetNameInput net name to check for DP naming
aComplementNetGenerated net name for the pair
Returns
-1 if found the negative pair, +1 if found the positive pair, 0 otherwise

Definition at line 741 of file pns_kicad_iface.cpp.

Referenced by DpCoupledNet(), DpNetPair(), and DpNetPolarity().

◆ NetName()

wxString PNS_PCBNEW_RULE_RESOLVER::NetName ( int  aNet)
overridevirtual

Implements PNS::RULE_RESOLVER.

Definition at line 809 of file pns_kicad_iface.cpp.

References BOARD::FindNet(), NETINFO_ITEM::GetNetname(), and m_board.

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

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

◆ m_clearanceEpsilon

int PNS_PCBNEW_RULE_RESOLVER::m_clearanceEpsilon
private

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

Referenced by QueryConstraint().

◆ m_dummyTracks

PCB_TRACK PNS_PCBNEW_RULE_RESOLVER::m_dummyTracks[2]
private

Definition at line 145 of file pns_kicad_iface.cpp.

Referenced by QueryConstraint().

◆ m_dummyVias

PCB_VIA PNS_PCBNEW_RULE_RESOLVER::m_dummyVias[2]
private

Definition at line 147 of file pns_kicad_iface.cpp.

Referenced by QueryConstraint().

◆ m_routerIface

PNS::ROUTER_IFACE* PNS_PCBNEW_RULE_RESOLVER::m_routerIface
private

Definition at line 143 of file pns_kicad_iface.cpp.


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