![]() |
KiCad PCB EDA Suite
|
#include <pns_diff_pair.h>
Classes | |
struct | COUPLED_SEGMENTS |
Public Types | |
typedef std::vector< COUPLED_SEGMENTS > | COUPLED_SEGMENTS_VEC |
typedef std::vector< LINKED_ITEM * > | LINKS |
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 () | |
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. More... | |
virtual void | ClearLinks () override |
Return the number of segments that were assembled together to form this line. More... | |
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 |
LINE & | PLine () |
LINE & | NLine () |
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_CHAIN & | CP () const |
const SHAPE_LINE_CHAIN & | CN () 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 |
void | Link (LINKED_ITEM *aLink) |
Return the list of links from the owning node that constitute this line (or NULL if the line is not linked). More... | |
LINKS & | Links () |
const LINKS & | Links () const |
bool | IsLinked () const |
Check if the segment aLink is a part of the line. More... | |
bool | ContainsLink (const LINKED_ITEM *aItem) const |
LINKED_ITEM * | GetLink (int aIndex) const |
Erase the linking information. Used to detach the line from the owning node. More... | |
int | LinkCount () const |
void | ShowLinks () const |
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. More... | |
bool | OfKind (int aKindMask) const |
Return true if the item's type matches the mask aKindMask. More... | |
std::string | KindStr () const |
Returns the kind of the item, as string. More... | |
void | SetParent (BOARD_ITEM *aParent) |
BOARD_ITEM * | Parent () const |
void | SetNet (int aNet) |
int | Net () const |
const LAYER_RANGE & | Layers () 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. More... | |
NODE * | Owner () const |
Return the owner of this item, or NULL if there's none. More... | |
void | SetOwner (NODE *aOwner) |
Set the node that owns this item. More... | |
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. More... | |
virtual const SHAPE * | Shape () const |
Return the geometrical shape of the item. More... | |
virtual const SHAPE * | Hole () 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 |
Static Public Member Functions | |
static bool | ClassOf (const ITEM *aItem) |
static DIFF_PAIR * | AssembleDp (LINE *aLine) |
Static Public Attributes | |
static const int | UnusedNet = INT_MAX |
Supported item types. More... | |
Protected Member Functions | |
void | copyLinks (const LINK_HOLDER *aParent) |
< Copy m_links from the line aParent. More... | |
Protected Attributes | |
LINKS | m_links |
PnsKind | m_kind |
BOARD_ITEM * | m_parent |
NODE * | m_owner |
LAYER_RANGE | m_layers |
bool | m_movable |
int | m_net |
int | m_marker |
int | m_rank |
bool | m_routable |
Private Member Functions | |
void | updateLine (LINE &aLine, const SHAPE_LINE_CHAIN &aShape, int aNet, const VIA &aVia) |
Private Attributes | |
SHAPE_LINE_CHAIN | m_n |
SHAPE_LINE_CHAIN | m_p |
LINE | m_line_p |
LINE | m_line_n |
VIA | m_via_p |
VIA | m_via_n |
bool | m_hasVias |
int | m_net_p |
int | m_net_n |
int | m_width |
int | m_gap |
int | m_viaGap |
int | m_maxUncoupledLength |
int | m_chamferLimit |
RANGED_NUM< int > | m_gapConstraint |
Basic class for a differential pair. Stores two PNS_LINEs (for positive and negative nets, respectively), the gap and coupling constraints.
Definition at line 262 of file pns_diff_pair.h.
typedef std::vector<COUPLED_SEGMENTS> PNS::DIFF_PAIR::COUPLED_SEGMENTS_VEC |
Definition at line 285 of file pns_diff_pair.h.
|
inherited |
Definition at line 36 of file pns_link_holder.h.
|
inherited |
Enumerator | |
---|---|
SOLID_T | |
LINE_T | |
JOINT_T | |
SEGMENT_T | |
ARC_T | |
VIA_T | |
DIFF_PAIR_T | |
ANY_T |
Definition at line 61 of file pns_item.h.
|
inline |
Definition at line 287 of file pns_diff_pair.h.
References m_chamferLimit, m_gap, m_maxUncoupledLength, m_net_n, m_net_p, m_viaGap, and m_width.
|
inline |
Definition at line 301 of file pns_diff_pair.h.
References m_chamferLimit, m_gap, m_gapConstraint, m_maxUncoupledLength, m_net_n, m_net_p, m_viaGap, and m_width.
|
inline |
Definition at line 317 of file pns_diff_pair.h.
References m_chamferLimit, m_gap, m_gapConstraint, m_maxUncoupledLength, m_net_n, m_net_p, m_viaGap, and m_width.
Definition at line 335 of file pns_diff_pair.h.
References PNS::LINE::CLine(), m_chamferLimit, m_gap, m_gapConstraint, m_maxUncoupledLength, m_n, m_net_n, m_net_p, m_p, m_viaGap, m_width, and PNS::ITEM::Net().
|
inlinevirtualinherited |
Reimplemented in PNS::VIA, PNS::SEGMENT, PNS::SOLID, and PNS::ARC.
Definition at line 213 of file pns_item.h.
Referenced by PNS::DP_PRIMITIVE_PAIR::anchorDirection(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR(), PNS::NODE::followLine(), PNS::getDanglingAnchor(), PNS::ROUTER::isStartingPointRoutable(), PNS::TOOL_BASE::pickSingleItem(), and PNS::TOOL_BASE::snapToItem().
|
inlinevirtualinherited |
Reimplemented in PNS::VIA, PNS::SEGMENT, PNS::SOLID, and PNS::ARC.
Definition at line 218 of file pns_item.h.
|
inline |
Definition at line 487 of file pns_diff_pair.h.
References SHAPE_LINE_CHAIN::Append(), m_n, and m_p.
Definition at line 417 of file pns_diff_pair.h.
References m_hasVias, m_via_n, and m_via_p.
Referenced by PNS::DIFF_PAIR_PLACER::routeHead().
|
inlineinherited |
Definition at line 177 of file pns_item.h.
References PNS::ITEM::m_owner.
Referenced by PNS::NODE::doRemove().
bool PNS::DIFF_PAIR::BuildInitial | ( | const DP_GATEWAY & | aEntry, |
const DP_GATEWAY & | aTarget, | ||
bool | aPrefDiagonal | ||
) |
Definition at line 213 of file pns_diff_pair.cpp.
References PNS::DP_GATEWAY::AllowedAngles(), PNS::DP_GATEWAY::AnchorN(), PNS::DP_GATEWAY::AnchorP(), DIRECTION_45::ANG_OBTUSE, DIRECTION_45::ANG_STRAIGHT, SHAPE_LINE_CHAIN::Append(), DIRECTION_45::BuildInitialTrace(), CheckConnectionAngle(), PNS::checkGap(), CN(), CP(), PNS::DP_GATEWAY::Entry(), PNS::DP_GATEWAY::HasEntryLines(), SHAPE_LINE_CHAIN::Intersects(), m_gapConstraint, m_n, m_p, PNS::DP_GATEWAY::Reverse(), and SHAPE_LINE_CHAIN::SelfIntersecting().
Referenced by PNS::DP_GATEWAYS::FitGateways().
bool PNS::DIFF_PAIR::CheckConnectionAngle | ( | const DIFF_PAIR & | aOther, |
int | allowedAngles | ||
) | const |
Definition at line 273 of file pns_diff_pair.cpp.
References SHAPE_LINE_CHAIN::CSegment(), m_n, m_p, and SHAPE_LINE_CHAIN::SegmentCount().
Referenced by BuildInitial().
|
inlinestatic |
Definition at line 355 of file pns_diff_pair.h.
References PNS::ITEM::DIFF_PAIR_T, and PNS::ITEM::Kind().
|
inline |
Definition at line 481 of file pns_diff_pair.h.
References SHAPE_LINE_CHAIN::Clear(), m_n, and m_p.
|
inlineoverridevirtual |
Return the number of segments that were assembled together to form this line.
Reimplemented from PNS::LINK_HOLDER.
Definition at line 362 of file pns_diff_pair.h.
References PNS::LINK_HOLDER::ClearLinks(), m_line_n, m_line_p, and PNS::LINK_HOLDER::m_links.
|
inlineoverridevirtual |
|
inline |
Definition at line 499 of file pns_diff_pair.h.
References m_n.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), BuildInitial(), PNS::DP_GATEWAYS::FitGateways(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::DP_MEANDER_PLACER::HasPlacedAnything(), PNS::DIFF_PAIR_PLACER::HasPlacedAnything(), PNS::OPTIMIZER::mergeDpSegments(), PNS::OPTIMIZER::mergeDpStep(), PNS::DP_MEANDER_PLACER::Move(), and PNS::DIFF_PAIR_PLACER::routeHead().
|
inherited |
Check for a collision (clearance violation) with between us and item aOther.
Collision checking takes all PCB stuff into account (layers, nets, DRC rules). Optionally returns a minimum translation vector for force propagation algorithm.
aOther | is the item to check collision against. |
Definition at line 97 of file pns_item.cpp.
References PNS::ITEM::collideSimple(), PNS::LINE::EndsWithVia(), PNS::ITEM::LINE_T, PNS::ITEM::m_kind, and PNS::LINE::Via().
Referenced by PNS::SHOVE::onCollidingSolid(), PNS::OPTIMIZER::CACHE_VISITOR::operator()(), PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator()(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), and PNS::COMPONENT_DRAGGER::Start().
|
inlineinherited |
Definition at line 58 of file pns_link_holder.h.
References alg::contains(), and PNS::LINK_HOLDER::m_links.
|
inlineprotectedinherited |
< Copy m_links from the line aParent.
List of segments in the owning NODE (ITEM::m_owner) that constitute this line, or NULL if the line is not a part of any node.
Definition at line 98 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::LINE::LINE(), and PNS::LINE::operator=().
double PNS::DIFF_PAIR::CoupledLength | ( | ) | const |
Definition at line 874 of file pns_diff_pair.cpp.
References CoupledSegmentPairs().
Referenced by CoupledLengthFactor(), PNS::OPTIMIZER::mergeDpStep(), and PNS::DIFF_PAIR_PLACER::tryWalkDp().
Definition at line 908 of file pns_diff_pair.cpp.
References SEG::ApproxParallel(), PNS::commonParallelProjection(), SEG::Distance(), SEG::Length(), m_gapConstraint, m_width, and RANGED_NUM< T >::Matches().
int64_t PNS::DIFF_PAIR::CoupledLength | ( | const SHAPE_LINE_CHAIN & | aP, |
const SHAPE_LINE_CHAIN & | aN | ||
) | const |
Definition at line 849 of file pns_diff_pair.cpp.
References SEG::ApproxParallel(), PNS::commonParallelProjection(), SHAPE_LINE_CHAIN::CSegment(), SEG::Distance(), SEG::Length(), m_gapConstraint, m_width, RANGED_NUM< T >::Matches(), and SHAPE_LINE_CHAIN::SegmentCount().
double PNS::DIFF_PAIR::CoupledLengthFactor | ( | ) | const |
void PNS::DIFF_PAIR::CoupledSegmentPairs | ( | COUPLED_SEGMENTS_VEC & | aPairs | ) | const |
Definition at line 820 of file pns_diff_pair.cpp.
References SEG::ApproxParallel(), PNS::commonParallelProjection(), SEG::Distance(), m_gapConstraint, m_n, m_p, m_width, RANGED_NUM< T >::Matches(), SHAPE_LINE_CHAIN::Segment(), SHAPE_LINE_CHAIN::SegmentCount(), and SHAPE_LINE_CHAIN::Simplify().
Referenced by CoupledLength().
|
inline |
Definition at line 498 of file pns_diff_pair.h.
References m_p.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), BuildInitial(), PNS::DP_GATEWAYS::FitGateways(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::DP_MEANDER_PLACER::HasPlacedAnything(), PNS::DIFF_PAIR_PLACER::HasPlacedAnything(), PNS::OPTIMIZER::mergeDpSegments(), PNS::OPTIMIZER::mergeDpStep(), PNS::DP_MEANDER_PLACER::Move(), and PNS::DIFF_PAIR_PLACER::routeHead().
|
inline |
Definition at line 493 of file pns_diff_pair.h.
References m_n, m_p, and SHAPE_LINE_CHAIN::SegmentCount().
DP_PRIMITIVE_PAIR PNS::DIFF_PAIR::EndingPrimitives | ( | ) |
Definition at line 752 of file pns_diff_pair.cpp.
References PNS::LINE::CSegment(), m_hasVias, m_via_n, m_via_p, NLine(), and PLine().
Referenced by PNS::DIFF_PAIR_PLACER::FixRoute().
|
inline |
Definition at line 429 of file pns_diff_pair.h.
References m_hasVias.
Referenced by PNS::DIFF_PAIR_PLACER::FixRoute(), and PNS::DIFF_PAIR_PLACER::UpdateSizes().
|
inline |
Definition at line 412 of file pns_diff_pair.h.
References m_gap.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), and PNS::DP_MEANDER_PLACER::TuningInfo().
|
inline |
Definition at line 507 of file pns_diff_pair.h.
References m_gapConstraint.
Referenced by PNS::findCoupledVertices().
|
inlineinherited |
Erase the linking information. Used to detach the line from the owning node.
Definition at line 63 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::LINE_PLACER::removeLoops(), PNS::TOPOLOGY::SimplifyLine(), PNS::MEANDER_SKEW_PLACER::Start(), and PNS::DP_MEANDER_PLACER::Start().
|
inlinevirtualinherited |
Reimplemented in PNS::VIA, and PNS::SOLID.
Definition at line 201 of file pns_item.h.
Referenced by PNS::ITEM::collideSimple().
|
inlinevirtualinherited |
|
inlinevirtualinherited |
Reimplemented in PNS::VIA, PNS::SEGMENT, PNS::ARC, and PNS::SOLID.
Definition at line 111 of file pns_item.h.
|
inlineinherited |
Check if the segment aLink is a part of the line.
Definition at line 52 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::NODE::Add(), PNS::LINE::ClipVertexRange(), PNS::TOPOLOGY::followTrivialPath(), PNS::LINE::IsLinkedChecked(), NLine(), PLine(), PNS::LINE::Rank(), PNS::OPTIMIZER::removeCachedSegments(), and PNS::TOPOLOGY::SimplifyLine().
|
inlineinherited |
Definition at line 223 of file pns_item.h.
References PNS::ITEM::Marker(), and PNS::MK_LOCKED.
Referenced by ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::performDragging(), and PNS::SHOVE::pushOrShoveVia().
|
inlineinherited |
Definition at line 229 of file pns_item.h.
References PNS::ITEM::m_routable.
Referenced by PNS::NODE::addSolid(), and PNS::NODE::removeSolidIndex().
|
inlineinherited |
Return the type (kind) of the item.
Definition at line 126 of file pns_item.h.
References PNS::ITEM::m_kind.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS::NODE::AssembleLine(), PNS::OPTIMIZER::CacheRemove(), PNS::NODE::CheckColliding(), PNS::SEGMENT::ClassOf(), PNS::ARC::ClassOf(), PNS::SOLID::ClassOf(), PNS::VIA::ClassOf(), PNS::LINE::ClassOf(), ClassOf(), PNS::OPTIMIZER::computeBreakouts(), PNS::NODE::DEFAULT_OBSTACLE_VISITOR::DEFAULT_OBSTACLE_VISITOR(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::followLine(), PNS::getDanglingAnchor(), PNS::MEANDER_PLACER_BASE::getSnappedStartPoint(), PNS_PCBNEW_RULE_RESOLVER::holeRadius(), PNS_KICAD_IFACE_BASE::inheritTrackWidth(), PNS::OPTIMIZER::CACHE_VISITOR::operator()(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), PNS::NODE::Remove(), PNS::SHOVE::shoveIteration(), PNS::OPTIMIZER::smartPadsSingle(), PNS::TOOL_BASE::snapToItem(), PNS::DRAGGER::Start(), PNS::LINE_PLACER::Start(), ROUTER_PREVIEW_ITEM::Update(), and PNS_KICAD_IFACE::UpdateItem().
|
inherited |
Returns the kind of the item, as string.
Definition at line 126 of file pns_item.cpp.
References PNS::ITEM::ARC_T, PNS::ITEM::DIFF_PAIR_T, PNS::ITEM::JOINT_T, PNS::ITEM::LINE_T, PNS::ITEM::m_kind, PNS::ITEM::SEGMENT_T, PNS::ITEM::SOLID_T, and PNS::ITEM::VIA_T.
Referenced by PNS::TOOL_BASE::pickSingleItem(), and PNS::TOOL_BASE::updateEndItem().
|
inlinevirtualinherited |
Definition at line 154 of file pns_item.h.
References PNS::ITEM::Layers(), and LAYER_RANGE::Start().
Referenced by PNS_PCBNEW_RULE_RESOLVER::Clearance(), PNS::ITEM::collideSimple(), PNS::DRAGGER::CurrentLayer(), PNS::OPTIMIZER::fanoutCleanup(), PNS_PCBNEW_RULE_RESOLVER::HoleClearance(), PNS_PCBNEW_RULE_RESOLVER::HoleToHoleClearance(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::ROUTER::markViolations(), PNS::NODE::NearestObstacle(), PNS::OPTIMIZER::runSmartPads(), PNS::SHOVE::shoveLineFromLoneVia(), and PNS::SHOVE::ShoveObstacleLine().
|
inlineinherited |
Definition at line 150 of file pns_item.h.
References PNS::ITEM::m_layers.
Referenced by PNS::INDEX::Add(), PNS::NODE::Add(), PNS::NODE::addArc(), PNS_KICAD_IFACE::AddItem(), PNS::NODE::addSegment(), PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::ARC::ARC(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), PNS_PCBNEW_RULE_RESOLVER::Clearance(), PNS::VIA::Clone(), PNS::ITEM::collideSimple(), PNS::MEANDER_PLACER::CurrentLayer(), PNS::DP_MEANDER_PLACER::CurrentLayer(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::FindJoint(), PNS::NODE::FindLinesBetweenJoints(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantSegment(), ROUTER_TOOL::getStartLayer(), PNS_PCBNEW_RULE_RESOLVER::HoleClearance(), PNS_PCBNEW_RULE_RESOLVER::HoleToHoleClearance(), PNS_KICAD_IFACE::IsFlashedOnLayer(), PNS::ITEM::Layer(), PNS::ITEM::LayersOverlap(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), PNS::VIA::MakeHandle(), PNS::ROUTER::markViolations(), PNS::SHOVE::onCollidingSolid(), LENGTH_TUNER_TOOL::performTuning(), PNS::TOOL_BASE::pickSingleItem(), PNS::INDEX::Query(), PNS::INDEX::Remove(), PNS::NODE::removeArcIndex(), PNS::NODE::removeSegmentIndex(), PNS::NODE::removeSolidIndex(), PNS::NODE::removeViaIndex(), PNS_TEST_ENVIRONMENT::ReplayLog(), PNS::SEGMENT::SEGMENT(), PNS::LINE_PLACER::SetLayer(), ROUTER_PREVIEW_ITEM::Update(), PNS::TOOL_BASE::updateEndItem(), PNS_KICAD_IFACE::UpdateItem(), updateLine(), PNS::TOOL_BASE::updateStartItem(), and PNS::VIA::VIA().
|
inlineinherited |
Return true if the set of layers spanned by aOther overlaps our layers.
Definition at line 159 of file pns_item.h.
References PNS::ITEM::Layers(), and LAYER_RANGE::Overlaps().
Referenced by PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingSegment(), PNS::NODE::rebuildJoint(), and PNS::SHOVE::ShoveObstacleLine().
|
inlineinherited |
Return the list of links from the owning node that constitute this line (or NULL if the line is not linked).
Definition at line 42 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::NODE::Add(), and PNS::NODE::AssembleLine().
|
inlineinherited |
Definition at line 75 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::LINE::IsLinkedChecked(), and PNS::LINE_PLACER::removeLoops().
|
inlineinherited |
Definition at line 49 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::TOPOLOGY::followTrivialPath(), PNS::SHOVE::popLineStack(), PNS::NODE::Remove(), PNS::OPTIMIZER::removeCachedSegments(), PNS::SHOVE::ShoveObstacleLine(), and PNS::SHOVE::unwindLineStack().
|
inlineinherited |
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 206 of file pns_item.h.
References PNS::ITEM::m_marker.
Referenced by PNS::ITEM::collideSimple(), and PNS::SHOVE::ShoveDraggingVia().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 208 of file pns_item.h.
References PNS::ITEM::m_marker.
Referenced by PNS::ARC::ARC(), PNS::ITEM::collideSimple(), PNS::ITEM::IsLocked(), PNS::SHOVE::pushOrShoveVia(), and ROUTER_PREVIEW_ITEM::Update().
|
inlineinherited |
Definition at line 148 of file pns_item.h.
References PNS::ITEM::m_net.
Referenced by PNS::INDEX::Add(), PNS::NODE::Add(), PNS::NODE::addArc(), PNS_KICAD_IFACE::AddItem(), PNS::NODE::addSegment(), PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::ARC::ARC(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), PNS::VIA::Clone(), PNS::MEANDER_PLACER::CurrentNets(), PNS::DRAGGER::CurrentNets(), DIFF_PAIR(), PNS::OPTIMIZER::fanoutCleanup(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::FindJoint(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantSegment(), PNS::LINE_PLACER::FixRoute(), PNS_PCBNEW_RULE_RESOLVER::IsDiffPair(), PNS::ROUTER::isStartingPointRoutable(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), PNS::VIA::MakeHandle(), ROUTER_TOOL::performDragging(), LENGTH_TUNER_TOOL::performTuning(), ROUTER_TOOL::prepareInteractive(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), PNS::NODE::rebuildJoint(), PNS::INDEX::Remove(), PNS::NODE::removeArcIndex(), PNS::NODE::removeSegmentIndex(), PNS::NODE::removeSolidIndex(), PNS::NODE::removeViaIndex(), PNS::OPTIMIZER::runSmartPads(), PNS::SEGMENT::SEGMENT(), PNS::SHOVE::ShoveObstacleLine(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::DIFF_PAIR_PLACER::Start(), PNS::LINE_PLACER::Start(), PNS_KICAD_IFACE::UpdateItem(), and PNS::VIA::VIA().
|
inline |
Definition at line 451 of file pns_diff_pair.h.
References m_net_n.
Referenced by PNS::DP_MEANDER_PLACER::CurrentNets().
|
inline |
Definition at line 446 of file pns_diff_pair.h.
References m_net_p.
Referenced by PNS::DP_MEANDER_PLACER::CurrentNets().
|
inline |
Definition at line 464 of file pns_diff_pair.h.
References PNS::LINK_HOLDER::IsLinked(), m_line_n, m_n, m_net_n, m_via_n, and updateLine().
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::checkDpColliding(), PNS::DP_MEANDER_PLACER::CheckFit(), EndingPrimitives(), PNS::DP_MEANDER_PLACER::FixRoute(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::DIFF_PAIR_PLACER::rhMarkObstacles(), PNS::DIFF_PAIR_PLACER::rhShoveOnly(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), PNS::DP_MEANDER_PLACER::Traces(), PNS::DIFF_PAIR_PLACER::Traces(), PNS::DIFF_PAIR_PLACER::updateLeadingRatLine(), and PNS::verifyDpBypass().
|
inlineinherited |
Return true if the item's type matches the mask aKindMask.
Definition at line 134 of file pns_item.h.
References PNS::ITEM::m_kind.
Referenced by PNS::DP_PRIMITIVE_PAIR::anchorDirection(), ROUTER_TOOL::breakTrack(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), PNS::ChangedArea(), PNS::TOOL_BASE::checkSnap(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), PNS::DP_PRIMITIVE_PAIR::Directional(), PNS::OPTIMIZER::fanoutCleanup(), PNS::ROUTER::isStartingPointRoutable(), PNS::SHOVE::onCollidingVia(), PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator()(), PNS_KICAD_IFACE::RemoveItem(), PNS::LINE_PLACER::SetLayer(), PNS::SHOVE::shoveIteration(), PNS::LINE_PLACER::simplifyNewLine(), PNS::LINE_PLACER::SplitAdjacentSegments(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::MEANDER_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), PNS::SHOVE::unwindLineStack(), and ROUTER_PREVIEW_ITEM::Update().
|
inlineinherited |
Return the owner of this item, or NULL if there's none.
Definition at line 167 of file pns_item.h.
References PNS::ITEM::m_owner.
Referenced by PNS_KICAD_IFACE_BASE::inheritTrackWidth(), and PNS::LINE_PLACER::Move().
|
inlineinherited |
Definition at line 145 of file pns_item.h.
References PNS::ITEM::m_parent.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS_PCBNEW_RULE_RESOLVER::DpNetPair(), PNS_KICAD_IFACE::HideItem(), PNS_PCBNEW_RULE_RESOLVER::holeRadius(), isCopper(), isEdge(), PNS_KICAD_IFACE::IsFlashedOnLayer(), PNS_KICAD_IFACE::IsItemVisible(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), PNS_KICAD_IFACE::RemoveItem(), and PNS_KICAD_IFACE::UpdateItem().
|
inline |
Definition at line 456 of file pns_diff_pair.h.
References PNS::LINK_HOLDER::IsLinked(), m_line_p, m_net_p, m_p, m_via_p, and updateLine().
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::checkDpColliding(), PNS::DP_MEANDER_PLACER::CheckFit(), EndingPrimitives(), PNS::DP_MEANDER_PLACER::FixRoute(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::DIFF_PAIR_PLACER::rhMarkObstacles(), PNS::DIFF_PAIR_PLACER::rhShoveOnly(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), PNS::DP_MEANDER_PLACER::Traces(), PNS::DIFF_PAIR_PLACER::Traces(), PNS::DIFF_PAIR_PLACER::updateLeadingRatLine(), and PNS::verifyDpBypass().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 211 of file pns_item.h.
References PNS::ITEM::m_rank.
Referenced by PNS::ARC::ARC(), PNS::LINE::LINE(), PNS::SHOVE::onCollidingVia(), and PNS::SHOVE::shoveIteration().
|
inline |
|
inline |
Definition at line 406 of file pns_diff_pair.h.
References m_gap, and m_gapConstraint.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::DP_GATEWAYS::FitGateways(), PNS::DIFF_PAIR_PLACER::routeHead(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::DP_MEANDER_PLACER::Start(), and PNS::DIFF_PAIR_PLACER::UpdateSizes().
|
inlineinherited |
Definition at line 153 of file pns_item.h.
References PNS::ITEM::m_layers.
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PNS::DIFF_PAIR_PLACER::routeHead(), PNS::LINE_PLACER::SetLayer(), PNS::LINE_PLACER::UnfixRoute(), and updateLine().
|
inlineinherited |
Definition at line 151 of file pns_item.h.
References PNS::ITEM::m_layers.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::VIA::Clone(), and PNS::VIA::VIA().
|
inlineinherited |
Definition at line 147 of file pns_item.h.
References PNS::ITEM::m_net.
Referenced by PNS::LINE::AppendVia(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::VIA::Clone(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), PNS::DIFF_PAIR_PLACER::makeVia(), updateLine(), and PNS::VIA::VIA().
|
inline |
Definition at line 391 of file pns_diff_pair.h.
References m_net_n, and m_net_p.
Referenced by PNS::DIFF_PAIR_PLACER::routeHead().
|
inlineinherited |
Set the node that owns this item.
An item can belong to a single NODE or be unowned.
Definition at line 172 of file pns_item.h.
References PNS::ITEM::m_owner.
Referenced by PNS::NODE::AssembleLine(), PNS::NODE::doRemove(), and PNS::NODE::Remove().
|
inlineinherited |
Definition at line 144 of file pns_item.h.
References PNS::ITEM::m_parent.
Referenced by PNS_KICAD_IFACE::AddItem().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 210 of file pns_item.h.
References PNS::ITEM::m_rank.
Referenced by PNS::NODE::Commit(), and PNS::SHOVE::ShoveDraggingVia().
|
inlineinherited |
|
inline |
Definition at line 371 of file pns_diff_pair.h.
Referenced by PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::DP_GATEWAYS::FitGateways(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::OPTIMIZER::mergeDpStep(), and PNS::DIFF_PAIR_PLACER::tryWalkDp().
|
inline |
Definition at line 385 of file pns_diff_pair.h.
|
inline |
Definition at line 434 of file pns_diff_pair.h.
References m_via_n, m_via_p, and PNS::VIA::SetDiameter().
Referenced by PNS::DIFF_PAIR_PLACER::UpdateSizes().
|
inline |
Definition at line 440 of file pns_diff_pair.h.
References m_via_n, m_via_p, and PNS::VIA::SetDrill().
Referenced by PNS::DIFF_PAIR_PLACER::UpdateSizes().
|
inline |
Definition at line 397 of file pns_diff_pair.h.
References m_n, m_p, m_width, and SHAPE_LINE_CHAIN::SetWidth().
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::DIFF_PAIR_PLACER::routeHead(), and PNS::DIFF_PAIR_PLACER::UpdateSizes().
|
inlinevirtualinherited |
Return the geometrical shape of the item.
Used for collision detection and spatial indexing.
Reimplemented in PNS::LINE, PNS::VIA, PNS::SOLID, PNS::ARC, and PNS::SEGMENT.
Definition at line 196 of file pns_item.h.
Referenced by PNS::DP_GATEWAYS::BuildFromPrimitivePair(), PNS::ITEM::collideSimple(), PNS::OPTIMIZER::computeBreakouts(), PNS::OPTIMIZER::customBreakouts(), PNS::SHOVE::onCollidingVia(), PNS::HIT_VISITOR::operator()(), PNS::INDEX::Query(), and ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM().
|
inlineinherited |
Definition at line 80 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
double PNS::DIFF_PAIR::Skew | ( | ) | const |
Definition at line 814 of file pns_diff_pair.cpp.
References SHAPE_LINE_CHAIN::Length(), m_n, and m_p.
Referenced by PNS::DIFF_PAIR_PLACER::tryWalkDp().
double PNS::DIFF_PAIR::TotalLength | ( | ) | const |
Definition at line 899 of file pns_diff_pair.cpp.
References SHAPE_LINE_CHAIN::Length(), m_n, and m_p.
Referenced by CoupledLengthFactor().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 207 of file pns_item.h.
References PNS::ITEM::m_marker.
Referenced by PNS::NODE::Commit(), and PNS::DRAGGER::Start().
|
inlineprivate |
Definition at line 513 of file pns_diff_pair.h.
References PNS::LINE::AppendVia(), PNS::ITEM::Layers(), m_hasVias, m_width, PNS::ITEM::SetLayer(), PNS::ITEM::SetNet(), PNS::LINE::SetShape(), and PNS::LINE::SetWidth().
|
inline |
Definition at line 404 of file pns_diff_pair.h.
References m_width.
Referenced by PNS::findCoupledVertices(), and PNS::DP_MEANDER_PLACER::Start().
|
private |
Definition at line 534 of file pns_diff_pair.h.
Referenced by DIFF_PAIR().
|
private |
Definition at line 531 of file pns_diff_pair.h.
Referenced by DIFF_PAIR(), Gap(), and SetGap().
|
private |
Definition at line 535 of file pns_diff_pair.h.
Referenced by BuildInitial(), CoupledLength(), CoupledSegmentPairs(), DIFF_PAIR(), GapConstraint(), and SetGap().
|
private |
Definition at line 528 of file pns_diff_pair.h.
Referenced by AppendVias(), EndingPrimitives(), EndsWithVias(), RemoveVias(), and updateLine().
|
protectedinherited |
Definition at line 235 of file pns_item.h.
Referenced by PNS::ITEM::Collide(), PNS::ITEM::collideSimple(), PNS::ITEM::ITEM(), PNS::ITEM::Kind(), PNS::ITEM::KindStr(), and PNS::ITEM::OfKind().
|
protectedinherited |
Definition at line 239 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::SEGMENT::Clone(), PNS::ARC::Clone(), PNS::ITEM::collideSimple(), PNS::JOINT::Dump(), PNS::ITEM::ITEM(), PNS::JOINT::JOINT(), PNS::ITEM::Layers(), PNS::LINE::LINE(), PNS::JOINT::Merge(), PNS::LINE::operator=(), PNS::JOINT::Overlaps(), PNS::SEGMENT::SEGMENT(), PNS::ITEM::SetLayer(), and PNS::ITEM::SetLayers().
|
private |
Definition at line 525 of file pns_diff_pair.h.
Referenced by ClearLinks(), and NLine().
|
private |
Definition at line 525 of file pns_diff_pair.h.
Referenced by ClearLinks(), and PLine().
|
protectedinherited |
Definition at line 105 of file pns_link_holder.h.
Referenced by PNS::LINK_HOLDER::ClearLinks(), ClearLinks(), PNS::LINE::ClipVertexRange(), PNS::LINK_HOLDER::ContainsLink(), PNS::LINK_HOLDER::copyLinks(), PNS::LINK_HOLDER::GetLink(), PNS::LINE::HasLockedSegments(), PNS::LINK_HOLDER::IsLinked(), PNS::LINK_HOLDER::Link(), PNS::LINK_HOLDER::LinkCount(), PNS::LINK_HOLDER::Links(), PNS::LINE::Mark(), PNS::LINE::Marker(), PNS::LINE::Rank(), PNS::LINE::Reverse(), PNS::LINE::SetRank(), PNS::LINK_HOLDER::ShowLinks(), and PNS::LINE::Unmark().
|
mutableprotectedinherited |
Definition at line 243 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::SEGMENT::Clone(), PNS::ARC::Clone(), PNS::VIA::Clone(), PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::LINE::Mark(), PNS::ITEM::Mark(), PNS::LINE::Marker(), PNS::ITEM::Marker(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), PNS::LINE::Unmark(), PNS::ITEM::Unmark(), and PNS::VIA::VIA().
|
private |
Definition at line 533 of file pns_diff_pair.h.
Referenced by DIFF_PAIR().
|
protectedinherited |
Definition at line 241 of file pns_item.h.
Referenced by PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), and PNS::SOLID::SOLID().
|
private |
Definition at line 524 of file pns_diff_pair.h.
Referenced by Append(), BuildInitial(), CheckConnectionAngle(), Clear(), CN(), CoupledSegmentPairs(), DIFF_PAIR(), Empty(), NLine(), SetShape(), SetWidth(), Skew(), and TotalLength().
|
protectedinherited |
Definition at line 242 of file pns_item.h.
Referenced by PNS::LINE::AppendVia(), PNS::ARC::ARC(), PNS::SEGMENT::Clone(), PNS::ARC::Clone(), PNS::ITEM::collideSimple(), PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::ITEM::Net(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), and PNS::ITEM::SetNet().
|
private |
Definition at line 529 of file pns_diff_pair.h.
Referenced by DIFF_PAIR(), NetN(), NLine(), and SetNets().
|
private |
Definition at line 529 of file pns_diff_pair.h.
Referenced by DIFF_PAIR(), NetP(), PLine(), and SetNets().
|
protectedinherited |
Definition at line 238 of file pns_item.h.
Referenced by PNS::ITEM::BelongsTo(), PNS::ITEM::ITEM(), PNS::LINE::operator=(), PNS::ITEM::Owner(), and PNS::ITEM::SetOwner().
|
private |
Definition at line 524 of file pns_diff_pair.h.
Referenced by Append(), BuildInitial(), CheckConnectionAngle(), Clear(), CoupledSegmentPairs(), CP(), DIFF_PAIR(), Empty(), PLine(), SetShape(), SetWidth(), Skew(), and TotalLength().
|
protectedinherited |
Definition at line 237 of file pns_item.h.
Referenced by PNS::VIA::Clone(), PNS::ITEM::ITEM(), PNS::ITEM::Parent(), and PNS::ITEM::SetParent().
|
protectedinherited |
Definition at line 244 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::SEGMENT::Clone(), PNS::ARC::Clone(), PNS::VIA::Clone(), PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), PNS::ITEM::Rank(), PNS::LINE::Rank(), PNS::SEGMENT::SEGMENT(), PNS::ITEM::SetRank(), PNS::LINE::SetRank(), and PNS::VIA::VIA().
|
protectedinherited |
Definition at line 245 of file pns_item.h.
Referenced by PNS::ITEM::IsRoutable(), PNS::ITEM::ITEM(), and PNS::ITEM::SetRoutable().
|
private |
Definition at line 526 of file pns_diff_pair.h.
Referenced by AppendVias(), EndingPrimitives(), NLine(), SetViaDiameter(), and SetViaDrill().
|
private |
Definition at line 526 of file pns_diff_pair.h.
Referenced by AppendVias(), EndingPrimitives(), PLine(), SetViaDiameter(), and SetViaDrill().
|
private |
Definition at line 532 of file pns_diff_pair.h.
Referenced by DIFF_PAIR().
|
private |
Definition at line 530 of file pns_diff_pair.h.
Referenced by CoupledLength(), CoupledSegmentPairs(), DIFF_PAIR(), SetWidth(), updateLine(), and Width().
|
staticinherited |