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