KiCad PCB EDA Suite
|
#include <pns_via.h>
Public Types | |
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 | |
VIA () | |
VIA (const VECTOR2I &aPos, const LAYER_RANGE &aLayers, int aDiameter, int aDrill, int aNet=-1, VIATYPE aViaType=VIATYPE::THROUGH) | |
VIA (const VIA &aB) | |
const VECTOR2I & | Pos () const |
void | SetPos (const VECTOR2I &aPos) |
VIATYPE | ViaType () const |
void | SetViaType (VIATYPE aViaType) |
int | Diameter () const |
void | SetDiameter (int aDiameter) |
int | Drill () const |
void | SetDrill (int aDrill) |
bool | IsFree () const |
void | SetIsFree (bool aIsFree) |
bool | PushoutForce (NODE *aNode, const VECTOR2I &aDirection, VECTOR2I &aForce, int aCollisionMask=ITEM::ANY_T, int aMaxIterations=10) |
bool | PushoutForce (NODE *aNode, const ITEM *aOther, VECTOR2I &aForce) |
const SHAPE * | Shape () const override |
Return the geometrical shape of the item. More... | |
const SHAPE_CIRCLE * | Hole () const override |
void | SetHole (const SHAPE_CIRCLE &aHole) |
VIA * | Clone () const override |
Return a deep copy of the item. More... | |
const SHAPE_LINE_CHAIN | Hull (int aClearance=0, int aWalkaroundThickness=0, int aLayer=-1) const override |
const SHAPE_LINE_CHAIN | HoleHull (int aClearance=0, int aWalkaroundThickness=0, int aLayer=-1) const override |
virtual VECTOR2I | Anchor (int n) const override |
virtual int | AnchorCount () const override |
OPT_BOX2I | ChangedArea (const VIA *aOther) const |
const VIA_HANDLE | MakeHandle () const |
virtual const std::string | Format () const override |
virtual void | SetWidth (int aWidth) |
virtual int | Width () 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, int aOverrideClearance=-1) const |
Check for a collision (clearance violation) with between us and item aOther. More... | |
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 |
bool | IsLocked () const |
void | SetRoutable (bool aRoutable) |
bool | IsRoutable () const |
void | SetIsFreePad (bool aIsFreePad=true) |
bool | IsFreePad () const |
bool | IsVirtual () const |
void | SetIsCompoundShapePrimitive () |
bool | IsCompoundShapePrimitive () const |
Static Public Member Functions | |
static bool | ClassOf (const ITEM *aItem) |
Static Public Attributes | |
static const int | UnusedNet = INT_MAX |
Supported item types. More... | |
Protected Attributes | |
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 |
bool | m_isVirtual |
bool | m_isFreePad |
bool | m_isCompoundShapePrimitive |
Private Member Functions | |
bool | collideSimple (const ITEM *aOther, const NODE *aNode, bool aDifferentNetsOnly, int aOverrideClearance) const |
Private Attributes | |
int | m_diameter |
int | m_drill |
VECTOR2I | m_pos |
SHAPE_CIRCLE | m_shape |
SHAPE_CIRCLE | m_hole |
VIATYPE | m_viaType |
bool | m_isFree |
|
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 52 of file pns_via.h.
References m_diameter, m_drill, m_isFree, PNS::ITEM::m_isVirtual, m_viaType, and THROUGH.
Referenced by Clone().
|
inline |
Definition at line 62 of file pns_via.h.
References m_diameter, m_drill, m_hole, m_isFree, PNS::ITEM::m_isVirtual, m_pos, m_shape, m_viaType, PNS::ITEM::SetLayers(), and PNS::ITEM::SetNet().
|
inline |
Definition at line 78 of file pns_via.h.
References PNS::ITEM::Layers(), m_diameter, m_drill, m_hole, m_isFree, PNS::ITEM::m_isVirtual, PNS::ITEM::m_marker, m_pos, PNS::ITEM::m_rank, m_shape, m_viaType, PNS::ITEM::Net(), PNS::ITEM::SetLayers(), and PNS::ITEM::SetNet().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineinherited |
Definition at line 183 of file pns_item.h.
References PNS::ITEM::m_owner.
Referenced by PNS::NODE::doRemove().
Definition at line 200 of file pns_via.cpp.
References SHAPE::BBox(), BOX2< Vec >::Merge(), Pos(), and Shape().
Referenced by PNS::ChangedArea().
|
inlinestatic |
Definition at line 95 of file pns_via.h.
References PNS::ITEM::Kind(), and PNS::ITEM::VIA_T.
|
overridevirtual |
Return a deep copy of the item.
Implements PNS::ITEM.
Definition at line 178 of file pns_via.cpp.
References PNS::ITEM::Layers(), m_diameter, m_drill, m_hole, m_isFree, PNS::ITEM::m_isVirtual, PNS::ITEM::m_marker, PNS::ITEM::m_parent, m_pos, PNS::ITEM::m_rank, m_shape, m_viaType, PNS::ITEM::Net(), PNS::ITEM::SetLayers(), PNS::ITEM::SetNet(), and VIA().
|
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 169 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::fixupViaCollisions(), PNS::SHOVE::onCollidingSolid(), PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator()(), PNS::OPTIMIZER::CACHE_VISITOR::operator()(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), PNS::COMPONENT_DRAGGER::Start(), and PNS::verifyDpBypass().
|
privateinherited |
Definition at line 32 of file pns_item.cpp.
References SHAPE::Collide(), PNS::NODE::CQS_ALL_RULES, Edge_Cuts, PNS::NODE::GetClearance(), PNS::NODE::GetCollisionQueryScope(), ZONE::GetDoNotAllowFootprints(), ZONE::GetDoNotAllowPads(), ZONE::GetDoNotAllowTracks(), ZONE::GetDoNotAllowVias(), PNS::NODE::GetHoleClearance(), PNS::NODE::GetHoleToHoleClearance(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), BOARD_ITEM::GetLayer(), BOARD_ITEM::GetParentFootprint(), PNS::NODE::GetRuleResolver(), PNS::ITEM::Hole(), PNS::ROUTER_IFACE::IsFlashedOnLayer(), PNS::ITEM::IsFreePad(), PNS::RULE_RESOLVER::IsInNetTie(), LAYER_RANGE::IsMultilayer(), PNS::RULE_RESOLVER::IsNetTieExclusion(), PNS::ITEM::Layer(), PNS::ITEM::Layers(), PNS::ITEM::LINE_T, PNS::ITEM::m_kind, PNS::ITEM::m_layers, PNS::ITEM::m_net, PNS::ITEM::m_parent, PNS::ITEM::Mark(), PNS::ITEM::Marker(), PNS::MK_HOLE, LAYER_RANGE::Overlaps(), PNS::ITEM::Parent(), PCB_ARC_T, PCB_PAD_T, PCB_TRACE_T, PCB_VIA_T, PNS::NODE::QueryEdgeExclusions(), and PNS::ITEM::Shape().
Referenced by PNS::ITEM::Collide().
|
inline |
Definition at line 112 of file pns_via.h.
References m_diameter.
Referenced by PNS::SHOVE::fixupViaCollisions(), PNS::LINE::LINE(), PNS::SHOVE::onCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), and PushoutForce().
|
inline |
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 224 of file pns_via.cpp.
References PNS::ITEM::Format(), SHAPE_CIRCLE::Format(), m_drill, and m_shape.
|
inlineoverridevirtual |
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 167 of file pns_via.cpp.
References SHAPE_CIRCLE::GetRadius(), m_hole, m_pos, and PNS::OctagonalHull().
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 152 of file pns_via.cpp.
References PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), SHAPE_CIRCLE::GetRadius(), PNS::ROUTER_IFACE::IsFlashedOnLayer(), m_diameter, m_hole, m_pos, and PNS::OctagonalHull().
Referenced by PNS::SHOVE::shoveLineFromLoneVia(), and PNS::SHOVE::ShoveObstacleLine().
|
inlineinherited |
|
inline |
|
inlineinherited |
Definition at line 238 of file pns_item.h.
References PNS::ITEM::m_isFreePad.
Referenced by PNS::ITEM::collideSimple().
|
inlineinherited |
Definition at line 229 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 235 of file pns_item.h.
References PNS::ITEM::m_routable.
Referenced by PNS::NODE::addSolid(), and PNS::NODE::removeSolidIndex().
|
inlineinherited |
Definition at line 240 of file pns_item.h.
References PNS::ITEM::m_isVirtual.
Referenced by PNS_KICAD_IFACE::DisplayItem(), PNS::NODE::GetClearance(), PNS::NODE::GetHoleClearance(), PNS::NODE::GetHoleToHoleClearance(), and PNS::NODE::QueryColliding().
|
inlineinherited |
Return the type (kind) of the item.
Definition at line 132 of file pns_item.h.
References PNS::ITEM::m_kind.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS::NODE::AssembleLine(), PNS::TOPOLOGY::AssembleTrivialPath(), PNS::OPTIMIZER::CacheRemove(), PNS::NODE::CheckColliding(), PNS::ARC::ClassOf(), PNS::DIFF_PAIR::ClassOf(), PNS::LINE::ClassOf(), PNS::SEGMENT::ClassOf(), PNS::SOLID::ClassOf(), ClassOf(), comparePnsItems(), PNS::OPTIMIZER::computeBreakouts(), 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()(), ROUTER_TOOL::performDragging(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), PNS::NODE::Remove(), PNS::SHOVE::shoveIteration(), PNS::OPTIMIZER::smartPadsSingle(), PNS::TOOL_BASE::snapToItem(), PNS::LINE_PLACER::Start(), PNS::DRAGGER::Start(), ROUTER_PREVIEW_ITEM::Update(), PNS_KICAD_IFACE::UpdateItem(), and PNS::LINE_PLACER::UpdateSizes().
|
inherited |
Returns the kind of the item, as string.
Definition at line 198 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::ITEM::Format(), PNS::TOOL_BASE::pickSingleItem(), and PNS::TOOL_BASE::updateEndItem().
|
inlinevirtualinherited |
Definition at line 160 of file pns_item.h.
References PNS::ITEM::Layers(), and LAYER_RANGE::Start().
Referenced by PNS::TOPOLOGY::AssembleTuningPath(), 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_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::MEANDER_PLACER_BASE::lineLength(), PNS::ROUTER::markViolations(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingSegment(), LENGTH_TUNER_TOOL::performTuning(), PNS::OPTIMIZER::runSmartPads(), PNS::SHOVE::shoveLineFromLoneVia(), and PNS::SHOVE::ShoveObstacleLine().
|
inlineinherited |
Definition at line 156 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(), Clone(), PNS::ITEM::collideSimple(), comparePnsItems(), PNS::DP_MEANDER_PLACER::CurrentLayer(), PNS::MEANDER_PLACER::CurrentLayer(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::FindJoint(), PNS::NODE::FindLinesBetweenJoints(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantSegment(), PNS::NODE::FixupVirtualVias(), PNS::ROUTER::getNearestRatnestAnchor(), ROUTER_TOOL::getStartLayer(), PNS_PCBNEW_RULE_RESOLVER::HoleClearance(), PNS_PCBNEW_RULE_RESOLVER::HoleToHoleClearance(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS::ITEM::Layer(), PNS::ITEM::LayersOverlap(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), MakeHandle(), PNS::ROUTER::markViolations(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), 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_LOG_PLAYER::ReplayLog(), PNS::SEGMENT::SEGMENT(), PNS::LINE_PLACER::SetLayer(), PNS::COMPONENT_DRAGGER::Start(), ROUTER_PREVIEW_ITEM::Update(), PNS::TOOL_BASE::updateEndItem(), PNS::DIFF_PAIR::updateLine(), PNS::TOOL_BASE::updateStartItem(), and VIA().
|
inlineinherited |
Return true if the set of layers spanned by aOther overlaps our layers.
Definition at line 165 of file pns_item.h.
References PNS::ITEM::Layers(), and LAYER_RANGE::Overlaps().
Referenced by PNS::MEANDER_PLACER_BASE::lineLength(), PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingSegment(), PNS::NODE::rebuildJoint(), and PNS::SHOVE::ShoveObstacleLine().
const VIA_HANDLE PNS::VIA::MakeHandle | ( | ) | const |
Definition at line 213 of file pns_via.cpp.
References PNS::ITEM::Layers(), PNS::VIA_HANDLE::layers, PNS::ITEM::Net(), PNS::VIA_HANDLE::net, PNS::VIA_HANDLE::pos, Pos(), and PNS::VIA_HANDLE::valid.
Referenced by PNS::SHOVE::pushSpringback(), PNS::SHOVE::ShoveDraggingVia(), and PNS::DRAGGER::startDragVia().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 212 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 214 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 154 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::AssembleCluster(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), Clone(), comparePnsItems(), PNS::DRAGGER::CurrentNets(), PNS::MEANDER_PLACER::CurrentNets(), PNS::DIFF_PAIR::DIFF_PAIR(), PNS::OPTIMIZER::fanoutCleanup(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::FindJoint(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantSegment(), PNS::LINE_PLACER::FixRoute(), ROUTER_TOOL::InlineDrag(), PNS_PCBNEW_RULE_RESOLVER::IsDiffPair(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::ROUTER::isStartingPointRoutable(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), MakeHandle(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::origPathLength(), 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::DIFF_PAIR_PLACER::Start(), PNS::LINE_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), and VIA().
|
inlineinherited |
Return true if the item's type matches the mask aKindMask.
Definition at line 140 of file pns_item.h.
References PNS::ITEM::m_kind.
Referenced by PNS::DP_PRIMITIVE_PAIR::anchorDirection(), PNS::TOPOLOGY::AssembleCluster(), PNS::TOPOLOGY::AssembleTrivialPath(), ROUTER_TOOL::breakTrack(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), PNS::ChangedArea(), PNS::TOOL_BASE::checkSnap(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), PNS::DP_PRIMITIVE_PAIR::Directional(), PNS_KICAD_IFACE::DisplayItem(), PNS::OPTIMIZER::fanoutCleanup(), PNS::SHOVE::fixupViaCollisions(), PNS::MEANDER_PLACER_BASE::lineLength(), 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::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), and PNS::SHOVE::unwindLineStack().
|
inlineinherited |
Return the owner of this item, or NULL if there's none.
Definition at line 173 of file pns_item.h.
References PNS::ITEM::m_owner.
Referenced by PNS_KICAD_IFACE_BASE::inheritTrackWidth(), PNS::LINE_PLACER::Move(), and PNS::LINE_PLACER::rhShoveOnly().
|
inlineinherited |
Definition at line 151 of file pns_item.h.
References PNS::ITEM::m_parent.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS::ITEM::collideSimple(), PNS_PCBNEW_RULE_RESOLVER::DpNetPair(), PNS_KICAD_IFACE::HideItem(), PNS_PCBNEW_RULE_RESOLVER::holeRadius(), isCopper(), isEdge(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_PCBNEW_RULE_RESOLVER::IsInNetTie(), PNS_KICAD_IFACE::IsItemVisible(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::LOGGER::Log(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), PNS_KICAD_IFACE::RemoveItem(), PNS::LINE_PLACER::Start(), and PNS_KICAD_IFACE::UpdateItem().
|
inline |
Definition at line 100 of file pns_via.h.
References m_pos.
Referenced by PNS::NODE::addVia(), PNS::LINE::AppendVia(), PNS::LINE_PLACER::buildInitialLine(), ChangedArea(), PNS::SHOVE::fixupViaCollisions(), MakeHandle(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onReverseCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PNS::SHOVE::pushOrShoveVia(), PushoutForce(), PNS::NODE::removeViaIndex(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::ShoveDraggingVia(), and PNS::VVIA::VVIA().
Definition at line 33 of file pns_via.cpp.
References SHAPE::Collide(), PNS::NODE::CQS_ALL_RULES, PNS::NODE::GetClearance(), PNS::NODE::GetCollisionQueryScope(), PNS::NODE::GetHoleClearance(), PNS::NODE::GetHoleToHoleClearance(), PNS::ITEM::Hole(), Hole(), PNS::ITEM::Shape(), Shape(), and VECTOR2< T >::SquaredEuclideanNorm().
bool PNS::VIA::PushoutForce | ( | NODE * | aNode, |
const VECTOR2I & | aDirection, | ||
VECTOR2I & | aForce, | ||
int | aCollisionMask = ITEM::ANY_T , |
||
int | aMaxIterations = 10 |
||
) |
Definition at line 66 of file pns_via.cpp.
References SHAPE_LINE_CHAIN::Append(), PNS::NODE::CheckColliding(), Diameter(), VECTOR2< T >::EuclideanNorm(), Format(), PNS::ROUTER_IFACE::GetDebugDecorator(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), PNS_DBG, Pos(), PushoutForce(), VECTOR2< T >::Resize(), SetPos(), WHITE, and YELLOW.
Referenced by PNS::LINE_PLACER::buildInitialLine(), and PushoutForce().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 217 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 |
Definition at line 114 of file pns_via.h.
References m_diameter, m_shape, and SHAPE_CIRCLE::SetRadius().
Referenced by PNS::SHOVE::fixupViaCollisions(), PNS::SHOVE::onCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PNS::DIFF_PAIR::SetViaDiameter(), and PNS::LINE::SetViaDiameter().
|
inline |
Definition at line 122 of file pns_via.h.
References m_drill, m_hole, and SHAPE_CIRCLE::SetRadius().
Referenced by PNS::DIFF_PAIR::SetViaDrill(), and PNS::LINE::SetViaDrill().
|
inline |
Definition at line 139 of file pns_via.h.
References m_hole.
Referenced by PNS::VVIA::VVIA().
|
inlineinherited |
|
inline |
|
inlineinherited |
Definition at line 237 of file pns_item.h.
References PNS::ITEM::m_isFreePad.
|
inlineinherited |
Definition at line 159 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 PNS::DIFF_PAIR::updateLine().
|
inlineinherited |
Definition at line 157 of file pns_item.h.
References PNS::ITEM::m_layers.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), Clone(), parseCommonPnsProps(), and VIA().
|
inlineinherited |
Definition at line 153 of file pns_item.h.
References PNS::ITEM::m_net.
Referenced by PNS::LINE::AppendVia(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), Clone(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), PNS::DIFF_PAIR_PLACER::makeVia(), parseCommonPnsProps(), PNS::DIFF_PAIR::updateLine(), and VIA().
|
inlineinherited |
Set the node that owns this item.
An item can belong to a single NODE or be unowned.
Definition at line 178 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 150 of file pns_item.h.
References PNS::ITEM::m_parent.
Referenced by PNS_KICAD_IFACE::AddItem().
|
inline |
Definition at line 102 of file pns_via.h.
References m_hole, m_pos, m_shape, and SHAPE_CIRCLE::SetCenter().
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PushoutForce(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE::SetShape(), PNS::SHOVE::ShoveDraggingVia(), and PNS::SHOVE::ShoveLines().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 216 of file pns_item.h.
References PNS::ITEM::m_rank.
Referenced by PNS::NODE::Commit(), and PNS::SHOVE::ShoveDraggingVia().
|
inlineinherited |
Definition at line 234 of file pns_item.h.
References PNS::ITEM::m_routable.
|
inline |
|
inlinevirtualinherited |
Reimplemented in PNS::ARC, and PNS::SEGMENT.
Definition at line 36 of file pns_linked_item.h.
|
inlineoverridevirtual |
Return the geometrical shape of the item.
Used for collision detection and spatial indexing.
Reimplemented from PNS::ITEM.
Definition at line 136 of file pns_via.h.
References m_shape.
Referenced by ChangedArea(), PNS::SHOVE::onCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), and PushoutForce().
|
inlinevirtualinherited |
Reimplemented in PNS::LINE.
Definition at line 213 of file pns_item.h.
References PNS::ITEM::m_marker.
Referenced by PNS::NODE::Commit(), and PNS::DRAGGER::Start().
|
inline |
|
inlinevirtualinherited |
Reimplemented in PNS::ARC, and PNS::SEGMENT.
Definition at line 39 of file pns_linked_item.h.
Referenced by PNS::NODE::AssembleLine(), PNS::JOINT::IsLineCorner(), and PNS::TOOL_BASE::snapToItem().
|
private |
Definition at line 166 of file pns_via.h.
Referenced by Clone(), Diameter(), Hull(), SetDiameter(), and VIA().
|
private |
|
private |
Definition at line 170 of file pns_via.h.
Referenced by Clone(), Hole(), HoleHull(), Hull(), SetDrill(), SetHole(), SetPos(), and VIA().
|
protectedinherited |
Definition at line 267 of file pns_item.h.
Referenced by PNS::ITEM::IsCompoundShapePrimitive(), PNS::ITEM::ITEM(), and PNS::ITEM::SetIsCompoundShapePrimitive().
|
private |
|
protectedinherited |
Definition at line 266 of file pns_item.h.
Referenced by PNS::ITEM::IsFreePad(), PNS::ITEM::ITEM(), and PNS::ITEM::SetIsFreePad().
|
protectedinherited |
Definition at line 265 of file pns_item.h.
Referenced by Clone(), PNS::ITEM::IsVirtual(), PNS::ITEM::ITEM(), VIA(), and PNS::VVIA::VVIA().
|
protectedinherited |
Definition at line 254 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 258 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), PNS::ITEM::collideSimple(), PNS::JOINT::Dump(), PNS::ITEM::Format(), 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().
|
mutableprotectedinherited |
Definition at line 262 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), Clone(), PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::ITEM::Mark(), PNS::LINE::Mark(), PNS::ITEM::Marker(), PNS::LINE::Marker(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), PNS::ITEM::Unmark(), PNS::LINE::Unmark(), and VIA().
|
protectedinherited |
Definition at line 260 of file pns_item.h.
Referenced by PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), and PNS::SOLID::SOLID().
|
protectedinherited |
Definition at line 261 of file pns_item.h.
Referenced by PNS::LINE::AppendVia(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), PNS::ITEM::collideSimple(), PNS::ITEM::Format(), PNS::ITEM::ITEM(), PNS::LINE::LINE(), PNS::ITEM::Net(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), and PNS::ITEM::SetNet().
|
protectedinherited |
Definition at line 257 of file pns_item.h.
Referenced by PNS::ITEM::BelongsTo(), PNS::ITEM::ITEM(), PNS::LINE::operator=(), PNS::ITEM::Owner(), and PNS::ITEM::SetOwner().
|
protectedinherited |
Definition at line 256 of file pns_item.h.
Referenced by Clone(), PNS::ITEM::collideSimple(), PNS::ITEM::ITEM(), PNS::ITEM::Parent(), and PNS::ITEM::SetParent().
|
private |
|
protectedinherited |
Definition at line 263 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), 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 VIA().
|
protectedinherited |
Definition at line 264 of file pns_item.h.
Referenced by PNS::ITEM::IsRoutable(), PNS::ITEM::ITEM(), and PNS::ITEM::SetRoutable().
|
private |
|
private |
|
staticinherited |