![]() |
KiCad PCB EDA Suite
|
#include <pns_diff_pair.h>
Classes | |
struct | DP_CANDIDATE |
Public Member Functions | |
DP_GATEWAYS (int aGap) | |
void | Clear () |
void | SetFitVias (bool aEnable, int aDiameter=0, int aViaGap=-1) |
void | BuildForCursor (const VECTOR2I &aCursorPos) |
void | BuildOrthoProjections (DP_GATEWAYS &aEntries, const VECTOR2I &aCursorPos, int aOrthoScore) |
void | BuildGeneric (const VECTOR2I &p0_p, const VECTOR2I &p0_n, bool aBuildEntries=false, bool aViaMode=false) |
void | BuildFromPrimitivePair (const DP_PRIMITIVE_PAIR &aPair, bool aPreferDiagonal) |
bool | FitGateways (DP_GATEWAYS &aEntry, DP_GATEWAYS &aTarget, bool aPrefDiagonal, DIFF_PAIR &aDp) |
std::vector< DP_GATEWAY > & | Gateways () |
const std::vector< DP_GATEWAY > & | CGateways () const |
void | FilterByOrientation (int aAngleMask, DIRECTION_45 aRefOrientation) |
Private Member Functions | |
bool | checkDiagonalAlignment (const VECTOR2I &a, const VECTOR2I &b) const |
void | buildDpContinuation (const DP_PRIMITIVE_PAIR &aPair, bool aIsDiagonal) |
void | buildEntries (const VECTOR2I &p0_p, const VECTOR2I &p0_n) |
Private Attributes | |
int | m_gap |
int | m_viaGap |
int | m_viaDiameter |
bool | m_fitVias |
std::vector< DP_GATEWAY > | m_gateways |
A set of gateways calculated for the cursor or starting/ending primitive pair.
Definition at line 187 of file pns_diff_pair.h.
|
inline |
|
private |
Definition at line 590 of file pns_diff_pair.cpp.
References PNS::DP_PRIMITIVE_PAIR::AnchorN(), PNS::DP_PRIMITIVE_PAIR::AnchorP(), DIRECTION_45::BuildInitialTrace(), PNS::DP_PRIMITIVE_PAIR::Directional(), PNS::DP_PRIMITIVE_PAIR::DirN(), PNS::DP_PRIMITIVE_PAIR::DirP(), EuclideanNorm(), DIRECTION_45::Left(), m_gateways, PNS::makeGapVector(), PNS::DP_PRIMITIVE_PAIR::PrimP(), DIRECTION_45::Right(), PNS::SEGMENT::Seg(), PNS::DP_GATEWAY::SetPriority(), SEG::Side(), and DIRECTION_45::ToVector().
Referenced by BuildFromPrimitivePair().
Definition at line 576 of file pns_diff_pair.cpp.
References DIRECTION_45::BuildInitialTrace(), and m_gateways.
Referenced by BuildGeneric().
void PNS::DP_GATEWAYS::BuildForCursor | ( | const VECTOR2I & | aCursorPos | ) |
Definition at line 537 of file pns_diff_pair.cpp.
References BuildGeneric(), m_fitVias, m_gap, m_gateways, m_viaDiameter, m_viaGap, PNS::makeGapVector(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by BuildOrthoProjections(), and PNS::DIFF_PAIR_PLACER::routeHead().
void PNS::DP_GATEWAYS::BuildFromPrimitivePair | ( | const DP_PRIMITIVE_PAIR & | aPair, |
bool | aPreferDiagonal | ||
) |
Definition at line 426 of file pns_diff_pair.cpp.
References SEG::A, PNS::DP_PRIMITIVE_PAIR::AnchorN(), PNS::DP_PRIMITIVE_PAIR::AnchorP(), SEG::B, buildDpContinuation(), BuildGeneric(), checkDiagonalAlignment(), EuclideanNorm(), m_gap, m_gateways, PNS::makeGapVector(), NULL, PNS::ITEM::OfKind(), PNS::DP_PRIMITIVE_PAIR::PrimN(), PNS::DP_PRIMITIVE_PAIR::PrimP(), PNS::ITEM::SEGMENT_T, SH_RECT, SH_SEGMENT, PNS::ITEM::Shape(), sign(), PNS::ITEM::SOLID_T, SHAPE_BASE::Type(), and PNS::ITEM::VIA_T.
Referenced by PNS::DIFF_PAIR_PLACER::routeHead().
void PNS::DP_GATEWAYS::BuildGeneric | ( | const VECTOR2I & | p0_p, |
const VECTOR2I & | p0_n, | ||
bool | aBuildEntries = false , |
||
bool | aViaMode = false |
||
) |
Definition at line 641 of file pns_diff_pair.cpp.
References DIRECTION_45::ANG_ACUTE, DIRECTION_45::ANG_OBTUSE, DIRECTION_45::ANG_RIGHT, PNS::angle(), buildEntries(), SEG::Collinear(), EuclideanNorm(), SEG::IntersectLines(), m_gap, m_gateways, PNS::makeGapVector(), and VECTOR2< T >::Perpendicular().
Referenced by BuildForCursor(), and BuildFromPrimitivePair().
void PNS::DP_GATEWAYS::BuildOrthoProjections | ( | DP_GATEWAYS & | aEntries, |
const VECTOR2I & | aCursorPos, | ||
int | aOrthoScore | ||
) |
Definition at line 307 of file pns_diff_pair.cpp.
References BuildForCursor(), EuclideanNorm(), Gateways(), SEG::LineProject(), m_fitVias, m_gap, m_gateways, m_viaDiameter, and m_viaGap.
|
inline |
|
private |
Definition at line 391 of file pns_diff_pair.cpp.
References VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by BuildFromPrimitivePair().
|
inline |
void PNS::DP_GATEWAYS::FilterByOrientation | ( | int | aAngleMask, |
DIRECTION_45 | aRefOrientation | ||
) |
Definition at line 399 of file pns_diff_pair.cpp.
References m_gateways.
Referenced by PNS::DIFF_PAIR_PLACER::routeHead().
bool PNS::DP_GATEWAYS::FitGateways | ( | DP_GATEWAYS & | aEntry, |
DP_GATEWAYS & | aTarget, | ||
bool | aPrefDiagonal, | ||
DIFF_PAIR & | aDp | ||
) |
Definition at line 342 of file pns_diff_pair.cpp.
References PNS::DIFF_PAIR::BuildInitial(), PNS::DIFF_PAIR::CN(), PNS::DIFF_PAIR::CP(), Gateways(), m_gap, PNS::DP_GATEWAYS::DP_CANDIDATE::n, PNS::DP_GATEWAYS::DP_CANDIDATE::p, PNS::DIFF_PAIR::SetGap(), and PNS::DIFF_PAIR::SetShape().
Referenced by PNS::DIFF_PAIR_PLACER::routeHead().
|
inline |
Definition at line 223 of file pns_diff_pair.h.
References m_gateways.
Referenced by BuildOrthoProjections(), and FitGateways().
|
inline |
Definition at line 204 of file pns_diff_pair.h.
References m_fitVias, m_gap, m_viaDiameter, and m_viaGap.
Referenced by PNS::DIFF_PAIR_PLACER::routeHead().
|
private |
Definition at line 250 of file pns_diff_pair.h.
Referenced by BuildForCursor(), BuildOrthoProjections(), DP_GATEWAYS(), and SetFitVias().
|
private |
Definition at line 247 of file pns_diff_pair.h.
Referenced by BuildForCursor(), BuildFromPrimitivePair(), BuildGeneric(), BuildOrthoProjections(), FitGateways(), and SetFitVias().
|
private |
Definition at line 252 of file pns_diff_pair.h.
Referenced by buildDpContinuation(), buildEntries(), BuildForCursor(), BuildFromPrimitivePair(), BuildGeneric(), BuildOrthoProjections(), CGateways(), Clear(), FilterByOrientation(), and Gateways().
|
private |
Definition at line 249 of file pns_diff_pair.h.
Referenced by BuildForCursor(), BuildOrthoProjections(), DP_GATEWAYS(), and SetFitVias().
|
private |
Definition at line 248 of file pns_diff_pair.h.
Referenced by BuildForCursor(), BuildOrthoProjections(), and SetFitVias().