|
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 TUNING_PROFILE_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 TUNING_PROFILE_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 TUNING_PROFILE_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 TUNING_PROFILE_PARAMETERS_USER_DEFINED::GetPropagationDelay(), and TUNING_PROFILE_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 TUNING_PROFILE_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(), TUNING_PROFILE_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 TUNING_PROFILE_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(), TUNING_PROFILE_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().