20#ifndef PCBNEW_TUNING_PROFILE_PARAMETERS_IFACE_H
21#define PCBNEW_TUNING_PROFILE_PARAMETERS_IFACE_H
85 virtual std::vector<int64_t>
GetPropagationDelays(
const std::vector<LENGTH_DELAY_CALCULATION_ITEM>& aItems,
Information pertinent to a Pcbnew printed circuit board.
Lightweight class which holds a pad, via, or a routed trace outline.
Class which calculates lengths (and associated routing statistics) in a BOARD context.
A collection of nets and the parameters used to route or test these nets.
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
virtual int64_t GetPropagationDelay(const LENGTH_DELAY_CALCULATION_ITEM &aItem, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
Gets the propagation delay (in internal units) for the given item in the given geometry context.
virtual int64_t GetTrackLengthForPropagationDelay(int64_t aDelay, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
Gets the track length (in internal distance units) required for the given propagation delay (in inter...
virtual bool CanCalculateLengthForDelay(const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext) const =0
Returns true if a track length can be derived from a propagation delay in the given geometry context.
virtual void OnStackupChanged()
Event called by the length and time calculation architecture if the board stackup has changed.
virtual ~TUNING_PROFILE_PARAMETERS_IFACE()=default
virtual std::vector< int64_t > GetPropagationDelays(const std::vector< LENGTH_DELAY_CALCULATION_ITEM > &aItems, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
Gets the propagation delays (in internal units) for the given items in the given geometry context.
virtual int64_t CalculatePropagationDelayForShapeLineChain(const SHAPE_LINE_CHAIN &aShape, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext)=0
Gets the propagation delay for the given shape line chain.
virtual int64_t GetViaPropagationDelay(const PCB_LAYER_ID aSignalStartLayer, const PCB_LAYER_ID aSignalEndLayer, const PCB_LAYER_ID aViaStartLayer, const PCB_LAYER_ID aViaEndLayer, const TUNING_PROFILE_GEOMETRY_CONTEXT &aContext) const =0
Gets the via propagation delay for the given via layer geometry.
BOARD * m_board
The board all calculations are for.
LENGTH_DELAY_CALCULATION * m_lengthCalculation
The parent length / delay calculation object.
TUNING_PROFILE_PARAMETERS_IFACE(BOARD *aBoard, LENGTH_DELAY_CALCULATION *aCalculation)
virtual void OnSettingsChanged()
Event called by the length and time calculation architecture if netclass definitions have changed.
PCB_LAYER_ID
A quick note on layer IDs:
A data structure to contain basic geometry data which can affect signal propagation calculations.
int64_t DiffPairCouplingGap
The gap between coupled tracks.
const NETCLASS * NetClass
The net class this track belongs to.
int64_t Width
The width (in internal units) of the track.
bool IsDiffPairCoupled
Whether this track or via is a member of a coupled differential pair.
PCB_LAYER_ID Layer
The layer this track is on.