KiCad PCB EDA Suite
|
Lightweight class which holds a pad, via, or a routed trace outline. More...
#include <length_delay_calculation_item.h>
Public Types | |
enum class | TYPE { UNKNOWN , PAD , LINE , VIA } |
The type of routing object this item proxies. More... | |
enum class | MERGE_STATUS { UNMERGED , MERGED_IN_USE , MERGED_RETIRED } |
Whether this item is UNMERGED, it has been merged and should be used (MERGED_IN_USE), or it has been merged and has been retired from use (MERGED_RETIRED). More... | |
Public Member Functions | |
TYPE | Type () const |
Gets the routing item type. | |
void | SetPad (const PAD *aPad) |
Sets the parent PAD associated with this item. | |
const PAD * | GetPad () const |
Gets the parent PAD associated with this item. | |
void | SetLine (const SHAPE_LINE_CHAIN &aLine) |
Sets the source SHAPE_LINE_CHAIN of this item. | |
SHAPE_LINE_CHAIN & | GetLine () const |
Gets the SHAPE_LINE_CHAIN associated with this item. | |
void | SetVia (const PCB_VIA *aVia) |
Sets the VIA associated with this item. | |
const PCB_VIA * | GetVia () const |
Gets the VIA associated with this item. | |
void | SetLayers (const PCB_LAYER_ID aStart, const PCB_LAYER_ID aEnd=PCB_LAYER_ID::UNDEFINED_LAYER) |
Sets the first and last layers associated with this item. | |
void | SetMergeStatus (const MERGE_STATUS aStatus) |
Sets the MERGE_STATUS of this item. | |
MERGE_STATUS | GetMergeStatus () const |
Gets the MERGE_STATUS of this item. | |
std::tuple< PCB_LAYER_ID, PCB_LAYER_ID > | GetLayers () const |
Gets the upper and lower layers for the proxied item. | |
PCB_LAYER_ID | GetStartLayer () const |
Gets the start board layer for the proxied item. | |
PCB_LAYER_ID | GetEndLayer () const |
Gets the end board layer for the proxied item. | |
void | CalculateViaLayers (const BOARD *aBoard) |
Calculates active via payers for a proxied VIA object. | |
void | SetEffectiveNetClass (const NETCLASS *aNetClass) |
Sets the effective net class for the item. | |
const NETCLASS * | GetEffectiveNetClass () const |
Returns the effective net class for the item. | |
Protected Attributes | |
const PAD * | m_pad { nullptr } |
A proxied PAD object. Set to nullptr if not proxying a PAD. | |
SHAPE_LINE_CHAIN | m_line |
A proxied SHAPE_LINE_CHAIN object. Line is empty if not proxying a SHAPE_LINE_CHAIN. | |
const PCB_VIA * | m_via { nullptr } |
A proxied PCB_VIA object. Set to nullptr if not proxying a VIA. | |
PCB_LAYER_ID | m_layerStart { PCB_LAYER_ID::UNDEFINED_LAYER } |
The start board layer for the proxied object. | |
PCB_LAYER_ID | m_layerEnd { PCB_LAYER_ID::UNDEFINED_LAYER } |
The end board layer for the proxied object. | |
MERGE_STATUS | m_mergeStatus { MERGE_STATUS::UNMERGED } |
Flags whether this item has already been merged with another. | |
TYPE | m_type { TYPE::UNKNOWN } |
The routing object type of the proxied parent. | |
const NETCLASS * | m_netClass { nullptr } |
The net class of the object. | |
Lightweight class which holds a pad, via, or a routed trace outline.
Proxied objects passed by pointer are not owned by this container.
Definition at line 36 of file length_delay_calculation_item.h.
|
strong |
Whether this item is UNMERGED, it has been merged and should be used (MERGED_IN_USE), or it has been merged and has been retired from use (MERGED_RETIRED).
MERGED_RETIRED essentially means the object has been merged in to a MERGED_IN_USE item.
Enumerator | |
---|---|
UNMERGED | |
MERGED_IN_USE | |
MERGED_RETIRED |
Definition at line 51 of file length_delay_calculation_item.h.
|
strong |
The type of routing object this item proxies.
Enumerator | |
---|---|
UNKNOWN | |
PAD | |
LINE | |
VIA |
Definition at line 40 of file length_delay_calculation_item.h.
void LENGTH_DELAY_CALCULATION_ITEM::CalculateViaLayers | ( | const BOARD * | aBoard | ) |
Calculates active via payers for a proxied VIA object.
Definition at line 30 of file length_delay_calculation_item.cpp.
References LSET::copper_layers_begin(), LSET::copper_layers_end(), BOARD::GetConnectivity(), BOARD::GetDesignSettings(), BOARD_DESIGN_SETTINGS::GetEnabledLayers(), CONNECTIVITY_DATA::IsConnectedOnLayer(), m_via, PCB_ARC_T, PCB_PAD_T, PCB_TRACE_T, SetLayers(), and UNDEFINED_LAYER.
Referenced by LENGTH_DELAY_CALCULATION::GetLengthCalculationItem().
|
inline |
Returns the effective net class for the item.
Definition at line 130 of file length_delay_calculation_item.h.
References m_netClass.
Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::GetPropagationDelay().
|
inline |
Gets the end board layer for the proxied item.
Definition at line 121 of file length_delay_calculation_item.h.
References m_layerEnd.
Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay().
|
inline |
Gets the upper and lower layers for the proxied item.
Definition at line 115 of file length_delay_calculation_item.h.
References m_layerEnd, and m_layerStart.
|
inline |
Gets the SHAPE_LINE_CHAIN associated with this item.
Definition at line 79 of file length_delay_calculation_item.h.
References m_line.
Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay(), and LENGTH_DELAY_CALCULATION::mergeLines().
|
inline |
Gets the MERGE_STATUS of this item.
Definition at line 112 of file length_delay_calculation_item.h.
References m_mergeStatus.
Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::GetPropagationDelay(), and TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay().
|
inline |
Gets the parent PAD associated with this item.
Definition at line 69 of file length_delay_calculation_item.h.
Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay(), and LENGTH_DELAY_CALCULATION::optimiseViaLayers().
|
inline |
Gets the start board layer for the proxied item.
Definition at line 118 of file length_delay_calculation_item.h.
References m_layerStart.
Referenced by LENGTH_DELAY_CALCULATION::CalculateLengthDetails(), TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay(), LENGTH_DELAY_CALCULATION::inferViaInPad(), LENGTH_DELAY_CALCULATION::mergeLines(), and LENGTH_DELAY_CALCULATION::optimiseViaLayers().
|
inline |
Gets the VIA associated with this item.
Definition at line 89 of file length_delay_calculation_item.h.
References m_via.
Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay().
|
inline |
Sets the effective net class for the item.
Definition at line 127 of file length_delay_calculation_item.h.
References m_netClass.
Referenced by LENGTH_DELAY_CALCULATION::GetLengthCalculationItem(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), and PNS_VIEWER_IFACE::getLengthDelayCalculationItems().
|
inline |
Sets the first and last layers associated with this item.
Always stores in copper layer order (F_Cu to B_Cu)
Definition at line 93 of file length_delay_calculation_item.h.
References IsCopperLayerLowerThan(), m_layerEnd, m_layerStart, and UNDEFINED_LAYER.
Referenced by CalculateViaLayers(), LENGTH_DELAY_CALCULATION::GetLengthCalculationItem(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), and PNS_VIEWER_IFACE::getLengthDelayCalculationItems().
|
inline |
Sets the source SHAPE_LINE_CHAIN of this item.
Definition at line 72 of file length_delay_calculation_item.h.
References m_line, and m_type.
Referenced by LENGTH_DELAY_CALCULATION::GetLengthCalculationItem(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), and PNS_VIEWER_IFACE::getLengthDelayCalculationItems().
|
inline |
Sets the MERGE_STATUS of this item.
MERGED_RETIRED essentially means the object has been merged in to a MERGED_IN_USE item.
Definition at line 109 of file length_delay_calculation_item.h.
References m_mergeStatus.
Referenced by LENGTH_DELAY_CALCULATION::mergeLines().
|
inline |
Sets the parent PAD associated with this item.
Definition at line 62 of file length_delay_calculation_item.h.
References m_pad, m_type, and PAD.
Referenced by LENGTH_DELAY_CALCULATION::GetLengthCalculationItem().
|
inline |
Sets the VIA associated with this item.
Definition at line 82 of file length_delay_calculation_item.h.
Referenced by LENGTH_DELAY_CALCULATION::GetLengthCalculationItem(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), and PNS_VIEWER_IFACE::getLengthDelayCalculationItems().
|
inline |
Gets the routing item type.
Definition at line 59 of file length_delay_calculation_item.h.
References m_type.
Referenced by LENGTH_DELAY_CALCULATION::CalculateLengthDetails(), TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay(), BOARD::GetTrackLength(), LENGTH_DELAY_CALCULATION::inferViaInPad(), and DRC_TEST_PROVIDER_MATCHED_LENGTH::runInternal().
|
protected |
The end board layer for the proxied object.
Definition at line 146 of file length_delay_calculation_item.h.
Referenced by GetEndLayer(), GetLayers(), and SetLayers().
|
protected |
The start board layer for the proxied object.
Definition at line 143 of file length_delay_calculation_item.h.
Referenced by GetLayers(), GetStartLayer(), and SetLayers().
|
mutableprotected |
A proxied SHAPE_LINE_CHAIN object. Line is empty if not proxying a SHAPE_LINE_CHAIN.
Definition at line 137 of file length_delay_calculation_item.h.
|
protected |
Flags whether this item has already been merged with another.
Definition at line 149 of file length_delay_calculation_item.h.
Referenced by GetMergeStatus(), and SetMergeStatus().
|
protected |
The net class of the object.
Definition at line 155 of file length_delay_calculation_item.h.
Referenced by GetEffectiveNetClass(), and SetEffectiveNetClass().
|
protected |
|
protected |
|
protected |
A proxied PCB_VIA object. Set to nullptr if not proxying a VIA.
Definition at line 140 of file length_delay_calculation_item.h.
Referenced by CalculateViaLayers(), GetVia(), and SetVia().