KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PNS::DP_PRIMITIVE_PAIR Class Reference

Store starting/ending primitives (pads, vias or segments) for a differential pair. More...

#include <pns_diff_pair.h>

Inheritance diagram for PNS::DP_PRIMITIVE_PAIR:
PNS::ITEM_OWNER

Public Member Functions

 DP_PRIMITIVE_PAIR ()
 
 DP_PRIMITIVE_PAIR (const DP_PRIMITIVE_PAIR &aOther)
 
 DP_PRIMITIVE_PAIR (ITEM *aPrimP, ITEM *aPrimN)
 
 DP_PRIMITIVE_PAIR (const VECTOR2I &aAnchorP, const VECTOR2I &aAnchorN)
 
 ~DP_PRIMITIVE_PAIR ()
 
void SetAnchors (const VECTOR2I &aAnchorP, const VECTOR2I &aAnchorN)
 
void SetPrimitives (ITEM *aPrimP, ITEM *aPrimN)
 
const VECTOR2IAnchorP () const
 
const VECTOR2IAnchorN () const
 
DP_PRIMITIVE_PAIRoperator= (const DP_PRIMITIVE_PAIR &aOther)
 
ITEMPrimP () const
 
ITEMPrimN () const
 
bool Directional () const
 
DIRECTION_45 DirP () const
 
DIRECTION_45 DirN () const
 
void CursorOrientation (const VECTOR2I &aCursorPos, VECTOR2I &aMidpoint, VECTOR2I &aDirection) const
 
void SetIsMidtrace (bool aMidtrace)
 
bool IsMidtrace () const
 
void Unlink ()
 
void SetName (const wxString &aName)
 
const wxString & GetName () const
 
bool HasDefinedGap () const
 
int GetGap () const
 
void SetGap (int aGap)
 
void SetFixedDirection (DIRECTION_45 aDir)
 
bool HasFixedDirection () const
 
DIRECTION_45 FixedDirection () const
 
int GetMinDimension () const
 

Static Public Attributes

static constexpr double DP_ASSUME_PRIMS_COLINEAR_FACTOR = 0.1
 

Private Member Functions

DIRECTION_45 anchorDirection (const ITEM *aItem, const VECTOR2I &aP) const
 

Private Attributes

ITEMm_primP
 
ITEMm_primN
 
VECTOR2I m_anchorP
 
VECTOR2I m_anchorN
 
bool m_isMidtrace
 
std::optional< DIRECTION_45m_fixedDirection
 
wxString m_name
 
std::optional< int > m_gap
 

Detailed Description

Store starting/ending primitives (pads, vias or segments) for a differential pair.

Definition at line 212 of file pns_diff_pair.h.

Constructor & Destructor Documentation

◆ DP_PRIMITIVE_PAIR() [1/4]

PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR ( )
inline

Definition at line 217 of file pns_diff_pair.h.

References m_primN, and m_primP.

Referenced by DP_PRIMITIVE_PAIR(), and operator=().

◆ DP_PRIMITIVE_PAIR() [2/4]

PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR ( const DP_PRIMITIVE_PAIR & aOther)

Definition at line 73 of file pns_diff_pair.cpp.

References DP_PRIMITIVE_PAIR(), m_anchorN, m_anchorP, m_isMidtrace, m_name, m_primN, and m_primP.

◆ DP_PRIMITIVE_PAIR() [3/4]

PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR ( ITEM * aPrimP,
ITEM * aPrimN )

Definition at line 42 of file pns_diff_pair.cpp.

References m_anchorN, m_anchorP, m_primN, and m_primP.

◆ DP_PRIMITIVE_PAIR() [4/4]

PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR ( const VECTOR2I & aAnchorP,
const VECTOR2I & aAnchorN )

Definition at line 65 of file pns_diff_pair.cpp.

References m_anchorN, m_anchorP, m_primN, and m_primP.

◆ ~DP_PRIMITIVE_PAIR()

PNS::DP_PRIMITIVE_PAIR::~DP_PRIMITIVE_PAIR ( )

Definition at line 108 of file pns_diff_pair.cpp.

Member Function Documentation

◆ anchorDirection()

DIRECTION_45 PNS::DP_PRIMITIVE_PAIR::anchorDirection ( const ITEM * aItem,
const VECTOR2I & aP ) const
private

Definition at line 122 of file pns_diff_pair.cpp.

References PNS::ITEM::Anchor(), PNS::ITEM::ARC_T, PNS::ITEM::OfKind(), and PNS::ITEM::SEGMENT_T.

Referenced by DirN(), and DirP().

◆ AnchorN()

◆ AnchorP()

◆ CursorOrientation()

void PNS::DP_PRIMITIVE_PAIR::CursorOrientation ( const VECTOR2I & aCursorPos,
VECTOR2I & aMidpoint,
VECTOR2I & aDirection ) const

◆ Directional()

bool PNS::DP_PRIMITIVE_PAIR::Directional ( ) const

Definition at line 113 of file pns_diff_pair.cpp.

References PNS::ITEM::ARC_T, m_primP, and PNS::ITEM::SEGMENT_T.

Referenced by PNS::DP_GATEWAYS::buildDpContinuation().

◆ DirN()

DIRECTION_45 PNS::DP_PRIMITIVE_PAIR::DirN ( ) const

◆ DirP()

DIRECTION_45 PNS::DP_PRIMITIVE_PAIR::DirP ( ) const

◆ FixedDirection()

DIRECTION_45 PNS::DP_PRIMITIVE_PAIR::FixedDirection ( ) const
inline

Definition at line 276 of file pns_diff_pair.h.

References m_fixedDirection.

◆ GetGap()

int PNS::DP_PRIMITIVE_PAIR::GetGap ( ) const
inline

Definition at line 264 of file pns_diff_pair.h.

References m_gap.

◆ GetMinDimension()

int PNS::DP_PRIMITIVE_PAIR::GetMinDimension ( ) const

◆ GetName()

const wxString & PNS::DP_PRIMITIVE_PAIR::GetName ( ) const
inline

Definition at line 261 of file pns_diff_pair.h.

References m_name.

◆ HasDefinedGap()

bool PNS::DP_PRIMITIVE_PAIR::HasDefinedGap ( ) const
inline

Definition at line 263 of file pns_diff_pair.h.

References m_gap.

◆ HasFixedDirection()

bool PNS::DP_PRIMITIVE_PAIR::HasFixedDirection ( ) const
inline

Definition at line 272 of file pns_diff_pair.h.

References m_fixedDirection.

◆ IsMidtrace()

bool PNS::DP_PRIMITIVE_PAIR::IsMidtrace ( ) const
inline

Definition at line 250 of file pns_diff_pair.h.

References m_isMidtrace.

◆ operator=()

DP_PRIMITIVE_PAIR & PNS::DP_PRIMITIVE_PAIR::operator= ( const DP_PRIMITIVE_PAIR & aOther)

Definition at line 86 of file pns_diff_pair.cpp.

References DP_PRIMITIVE_PAIR(), m_anchorN, m_anchorP, m_isMidtrace, m_name, m_primN, and m_primP.

◆ PrimN()

ITEM * PNS::DP_PRIMITIVE_PAIR::PrimN ( ) const
inline

◆ PrimP()

ITEM * PNS::DP_PRIMITIVE_PAIR::PrimP ( ) const
inline

◆ SetAnchors()

void PNS::DP_PRIMITIVE_PAIR::SetAnchors ( const VECTOR2I & aAnchorP,
const VECTOR2I & aAnchorN )

◆ SetFixedDirection()

void PNS::DP_PRIMITIVE_PAIR::SetFixedDirection ( DIRECTION_45 aDir)
inline

Definition at line 267 of file pns_diff_pair.h.

References m_fixedDirection.

◆ SetGap()

void PNS::DP_PRIMITIVE_PAIR::SetGap ( int aGap)
inline

Definition at line 265 of file pns_diff_pair.h.

References m_gap.

◆ SetIsMidtrace()

void PNS::DP_PRIMITIVE_PAIR::SetIsMidtrace ( bool aMidtrace)
inline

Definition at line 245 of file pns_diff_pair.h.

References m_isMidtrace.

Referenced by PNS::DIFF_PAIR_PLACER::findDpEndingPrimitives().

◆ SetName()

void PNS::DP_PRIMITIVE_PAIR::SetName ( const wxString & aName)
inline

Definition at line 260 of file pns_diff_pair.h.

References m_name.

◆ SetPrimitives()

void PNS::DP_PRIMITIVE_PAIR::SetPrimitives ( ITEM * aPrimP,
ITEM * aPrimN )

Definition at line 58 of file pns_diff_pair.cpp.

References m_primN, and m_primP.

Referenced by PNS::DIFF_PAIR::EndingPrimitives().

◆ Unlink()

void PNS::DP_PRIMITIVE_PAIR::Unlink ( )
inline

Definition at line 255 of file pns_diff_pair.h.

References m_primN, and m_primP.

Member Data Documentation

◆ DP_ASSUME_PRIMS_COLINEAR_FACTOR

double PNS::DP_PRIMITIVE_PAIR::DP_ASSUME_PRIMS_COLINEAR_FACTOR = 0.1
staticconstexpr

Definition at line 215 of file pns_diff_pair.h.

Referenced by PNS::DP_GATEWAYS::BuildFromPrimitivePair().

◆ m_anchorN

VECTOR2I PNS::DP_PRIMITIVE_PAIR::m_anchorN
private

◆ m_anchorP

VECTOR2I PNS::DP_PRIMITIVE_PAIR::m_anchorP
private

◆ m_fixedDirection

std::optional<DIRECTION_45> PNS::DP_PRIMITIVE_PAIR::m_fixedDirection
private

Definition at line 291 of file pns_diff_pair.h.

Referenced by FixedDirection(), HasFixedDirection(), and SetFixedDirection().

◆ m_gap

std::optional<int> PNS::DP_PRIMITIVE_PAIR::m_gap
private

Definition at line 293 of file pns_diff_pair.h.

Referenced by GetGap(), HasDefinedGap(), and SetGap().

◆ m_isMidtrace

bool PNS::DP_PRIMITIVE_PAIR::m_isMidtrace
private

Definition at line 290 of file pns_diff_pair.h.

Referenced by DP_PRIMITIVE_PAIR(), IsMidtrace(), operator=(), and SetIsMidtrace().

◆ m_name

wxString PNS::DP_PRIMITIVE_PAIR::m_name
private

Definition at line 292 of file pns_diff_pair.h.

Referenced by DP_PRIMITIVE_PAIR(), GetName(), operator=(), and SetName().

◆ m_primN

◆ m_primP


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