Horizon
Loading...
Searching...
No Matches
PNS::DIFF_PAIR Class Reference

Basic class for a differential pair. More...

#include <pns_diff_pair.h>

Inheritance diagram for PNS::DIFF_PAIR:
PNS::LINK_HOLDER PNS::ITEM

Classes

struct  COUPLED_SEGMENTS

Public Types

typedef std::vector< COUPLED_SEGMENTSCOUPLED_SEGMENTS_VEC
Public Types inherited from PNS::ITEM
enum  PnsKind {
  SOLID_T = 1 , LINE_T = 2 , JOINT_T = 4 , SEGMENT_T = 8 ,
  ARC_T = 16 , VIA_T = 32 , DIFF_PAIR_T = 64 , ANY_T = 0xff
}

Public Member Functions

 DIFF_PAIR (int aGap)
 DIFF_PAIR (const SHAPE_LINE_CHAIN &aP, const SHAPE_LINE_CHAIN &aN, int aGap=0)
 DIFF_PAIR (const LINE &aLineP, const LINE &aLineN, int aGap=0)
DIFF_PAIR * Clone () const override
 Return a deep copy of the item.
virtual void ClearLinks () override
 Return the number of segments that were assembled together to form this line.
void SetShape (const SHAPE_LINE_CHAIN &aP, const SHAPE_LINE_CHAIN &aN, bool aSwapLanes=false)
void SetShape (const DIFF_PAIR &aPair)
void SetNets (int aP, int aN)
void SetWidth (int aWidth)
int Width () const
void SetGap (int aGap)
int Gap () const
void AppendVias (const VIA &aViaP, const VIA &aViaN)
void RemoveVias ()
bool EndsWithVias () const
void SetViaDiameter (int aDiameter)
void SetViaDrill (int aDrill)
int NetP () const
int NetN () const
LINEPLine ()
LINENLine ()
DP_PRIMITIVE_PAIR EndingPrimitives ()
double CoupledLength () const
double TotalLength () const
double CoupledLengthFactor () const
double Skew () const
void CoupledSegmentPairs (COUPLED_SEGMENTS_VEC &aPairs) const
void Clear ()
void Append (const DIFF_PAIR &aOther)
bool Empty () const
const SHAPE_LINE_CHAINCP () const
const SHAPE_LINE_CHAINCN () const
bool BuildInitial (const DP_GATEWAY &aEntry, const DP_GATEWAY &aTarget, bool aPrefDiagonal)
bool CheckConnectionAngle (const DIFF_PAIR &aOther, int allowedAngles) const
int CoupledLength (const SEG &aP, const SEG &aN) const
int64_t CoupledLength (const SHAPE_LINE_CHAIN &aP, const SHAPE_LINE_CHAIN &aN) const
const RANGED_NUM< int > GapConstraint () const
Public Member Functions inherited from PNS::ITEM
 ITEM (PnsKind aKind)
 ITEM (const ITEM &aOther)
virtual const SHAPE_LINE_CHAIN Hull (int aClearance=0, int aWalkaroundThickness=0, int aLayer=-1) const
virtual const SHAPE_LINE_CHAIN HoleHull (int aClearance, int aWalkaroundThickness, int aLayer) const
PnsKind Kind () const
 Return the type (kind) of the item.
bool OfKind (int aKindMask) const
 Return true if the item's type matches the mask aKindMask.
std::string KindStr () const
 Returns the kind of the item, as string.
void SetParent (const PNS_HORIZON_PARENT_ITEM *aParent)
const PNS_HORIZON_PARENT_ITEMParent () const
void SetNet (int aNet)
int Net () const
const LAYER_RANGELayers () const
void SetLayers (const LAYER_RANGE &aLayers)
void SetLayer (int aLayer)
virtual int Layer () const
bool LayersOverlap (const ITEM *aOther) const
 Return true if the set of layers spanned by aOther overlaps our layers.
NODEOwner () const
 Return the owner of this item, or NULL if there's none.
void SetOwner (NODE *aOwner)
 Set the node that owns this item.
bool BelongsTo (NODE *aNode) const
bool Collide (const ITEM *aOther, const NODE *aNode, bool aDifferentNetsOnly=true) const
 Check for a collision (clearance violation) with between us and item aOther.
virtual const SHAPEShape () const
 Return the geometrical shape of the item.
virtual const SHAPEHole () const
virtual void Mark (int aMarker) const
virtual void Unmark (int aMarker=-1) const
virtual int Marker () const
virtual void SetRank (int aRank)
virtual int Rank () const
virtual VECTOR2I Anchor (int n) const
virtual int AnchorCount () const
bool IsLocked () const
void SetRoutable (bool aRoutable)
bool IsRoutable () const
bool IsVirtual () const
void SetIsCompoundShapePrimitive ()
bool IsCompoundShapePrimitive () const

Static Public Member Functions

static bool ClassOf (const ITEM *aItem)
static DIFF_PAIR * AssembleDp (LINE *aLine)

Additional Inherited Members

Static Public Attributes inherited from PNS::ITEM
static const int UnusedNet = INT_MAX
 Supported item types.
Protected Attributes inherited from PNS::ITEM
PnsKind m_kind
const PNS_HORIZON_PARENT_ITEMm_parent
NODEm_owner
LAYER_RANGE m_layers
bool m_movable
int m_net
int m_marker
int m_rank
bool m_routable
bool m_isVirtual
bool m_isCompoundShapePrimitive

Detailed Description

Basic class for a differential pair.

Stores two PNS_LINEs (for positive and negative nets, respectively), the gap and coupling constraints.

Member Function Documentation

◆ ClearLinks()

virtual void PNS::DIFF_PAIR::ClearLinks ( )
inlineoverridevirtual

Return the number of segments that were assembled together to form this line.

Reimplemented from PNS::LINK_HOLDER.

◆ Clone()

DIFF_PAIR * PNS::DIFF_PAIR::Clone ( ) const
inlineoverridevirtual

Return a deep copy of the item.

Implements PNS::ITEM.


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