KiCad PCB EDA Suite
Loading...
Searching...
No Matches
LENGTH_DELAY_CALCULATION_ITEM Class Reference

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 PADGetPad () 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_CHAINGetLine () 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_VIAGetVia () 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_IDGetLayers () 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 NETCLASSGetEffectiveNetClass () const
 Returns the effective net class for the item.
 

Protected Attributes

const PADm_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_VIAm_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 NETCLASSm_netClass { nullptr }
 The net class of the object.
 

Detailed Description

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.

Member Enumeration Documentation

◆ MERGE_STATUS

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.

◆ TYPE

The type of routing object this item proxies.

Enumerator
UNKNOWN 
PAD 
LINE 
VIA 

Definition at line 40 of file length_delay_calculation_item.h.

Member Function Documentation

◆ CalculateViaLayers()

◆ GetEffectiveNetClass()

const NETCLASS * LENGTH_DELAY_CALCULATION_ITEM::GetEffectiveNetClass ( ) const
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().

◆ GetEndLayer()

PCB_LAYER_ID LENGTH_DELAY_CALCULATION_ITEM::GetEndLayer ( ) const
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().

◆ GetLayers()

std::tuple< PCB_LAYER_ID, PCB_LAYER_ID > LENGTH_DELAY_CALCULATION_ITEM::GetLayers ( ) const
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.

◆ GetLine()

SHAPE_LINE_CHAIN & LENGTH_DELAY_CALCULATION_ITEM::GetLine ( ) const
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().

◆ GetMergeStatus()

MERGE_STATUS LENGTH_DELAY_CALCULATION_ITEM::GetMergeStatus ( ) const
inline

◆ GetPad()

const PAD * LENGTH_DELAY_CALCULATION_ITEM::GetPad ( ) const
inline

Gets the parent PAD associated with this item.

Definition at line 69 of file length_delay_calculation_item.h.

References m_pad, and PAD.

Referenced by TIME_DOMAIN_PARAMETERS_USER_DEFINED::getPropagationDelay(), and LENGTH_DELAY_CALCULATION::optimiseViaLayers().

◆ GetStartLayer()

◆ GetVia()

const PCB_VIA * LENGTH_DELAY_CALCULATION_ITEM::GetVia ( ) const
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().

◆ SetEffectiveNetClass()

void LENGTH_DELAY_CALCULATION_ITEM::SetEffectiveNetClass ( const NETCLASS * aNetClass)
inline

◆ SetLayers()

void LENGTH_DELAY_CALCULATION_ITEM::SetLayers ( const PCB_LAYER_ID aStart,
const PCB_LAYER_ID aEnd = PCB_LAYER_ID::UNDEFINED_LAYER )
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().

◆ SetLine()

void LENGTH_DELAY_CALCULATION_ITEM::SetLine ( const SHAPE_LINE_CHAIN & aLine)
inline

◆ SetMergeStatus()

void LENGTH_DELAY_CALCULATION_ITEM::SetMergeStatus ( const MERGE_STATUS aStatus)
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().

◆ SetPad()

void LENGTH_DELAY_CALCULATION_ITEM::SetPad ( const PAD * aPad)
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().

◆ SetVia()

void LENGTH_DELAY_CALCULATION_ITEM::SetVia ( const PCB_VIA * aVia)
inline

◆ Type()

Member Data Documentation

◆ m_layerEnd

PCB_LAYER_ID LENGTH_DELAY_CALCULATION_ITEM::m_layerEnd { PCB_LAYER_ID::UNDEFINED_LAYER }
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().

◆ m_layerStart

PCB_LAYER_ID LENGTH_DELAY_CALCULATION_ITEM::m_layerStart { PCB_LAYER_ID::UNDEFINED_LAYER }
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().

◆ m_line

SHAPE_LINE_CHAIN LENGTH_DELAY_CALCULATION_ITEM::m_line
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.

Referenced by GetLine(), and SetLine().

◆ m_mergeStatus

MERGE_STATUS LENGTH_DELAY_CALCULATION_ITEM::m_mergeStatus { MERGE_STATUS::UNMERGED }
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().

◆ m_netClass

const NETCLASS* LENGTH_DELAY_CALCULATION_ITEM::m_netClass { nullptr }
protected

The net class of the object.

Definition at line 155 of file length_delay_calculation_item.h.

Referenced by GetEffectiveNetClass(), and SetEffectiveNetClass().

◆ m_pad

const PAD* LENGTH_DELAY_CALCULATION_ITEM::m_pad { nullptr }
protected

A proxied PAD object. Set to nullptr if not proxying a PAD.

Definition at line 134 of file length_delay_calculation_item.h.

Referenced by GetPad(), and SetPad().

◆ m_type

TYPE LENGTH_DELAY_CALCULATION_ITEM::m_type { TYPE::UNKNOWN }
protected

The routing object type of the proxied parent.

Definition at line 152 of file length_delay_calculation_item.h.

Referenced by SetLine(), SetPad(), SetVia(), and Type().

◆ m_via

const PCB_VIA* LENGTH_DELAY_CALCULATION_ITEM::m_via { nullptr }
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().


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