| 
    KiCad PCB EDA Suite
    
   | 
 
#include <pns_via.h>
  
Public Types | |
| enum class | STACK_MODE { NORMAL , FRONT_INNER_BACK , CUSTOM } | 
| typedef uint64_t | UNIQ_ID | 
| enum | PnsKind {  INVALID_T = 0 , SOLID_T = 1 , LINE_T = 2 , JOINT_T = 4 , SEGMENT_T = 8 , ARC_T = 16 , VIA_T = 32 , DIFF_PAIR_T = 64 , HOLE_T = 128 , ANY_T = 0xffff , LINKED_ITEM_MASK_T = SOLID_T | SEGMENT_T | ARC_T | VIA_T | HOLE_T }  | 
| < Supported item types  More... | |
Public Member Functions | |
| VVIA (const VECTOR2I &aPos, int aLayer, int aDiameter, NET_HANDLE aNet) | |
| bool | HasHole () const override | 
| STACK_MODE | StackMode () const | 
| void | SetStackMode (STACK_MODE aStackMode) | 
| int | EffectiveLayer (int aLayer) const | 
| std::vector< int > | UniqueShapeLayers () const override | 
| Return a list of layers that have unique (potentially different) shapes.   | |
| bool | HasUniqueShapeLayers () const override | 
| const VECTOR2I & | Pos () const | 
| void | SetPos (const VECTOR2I &aPos) | 
| VIATYPE | ViaType () const | 
| void | SetViaType (VIATYPE aViaType) | 
| PADSTACK::UNCONNECTED_LAYER_MODE | UnconnectedLayerMode () const | 
| void | SetUnconnectedLayerMode (PADSTACK::UNCONNECTED_LAYER_MODE aMode) | 
| bool | ConnectsLayer (int aLayer) const | 
| int | Diameter (int aLayer) const | 
| void | SetDiameter (int aLayer, int aDiameter) | 
| bool | PadstackMatches (const VIA &aOther) const | 
| 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 (int aLayer) const override | 
| Return the geometrical shape of the item.   | |
| VIA * | Clone () const override | 
| Return a deep copy of the item.   | |
| const SHAPE_LINE_CHAIN | Hull (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 void | SetHole (HOLE *aHole) override | 
| virtual HOLE * | Hole () const override | 
| virtual const std::string | Format () const override | 
| void | ResetUid () | 
| UNIQ_ID | Uid () const | 
| virtual void | SetWidth (int aWidth) | 
| virtual int | Width () const | 
| PnsKind | Kind () const | 
| Return the type (kind) of the item.   | |
| bool | OfKind (int aKindMask) const | 
| std::string | KindStr () const | 
| void | SetParent (BOARD_ITEM *aParent) | 
| BOARD_ITEM * | Parent () const | 
| void | SetSourceItem (BOARD_ITEM *aSourceItem) | 
| BOARD_ITEM * | GetSourceItem () const | 
| virtual BOARD_ITEM * | BoardItem () const | 
| void | SetNet (NET_HANDLE aNet) | 
| virtual NET_HANDLE | Net () const | 
| const PNS_LAYER_RANGE & | Layers () const | 
| void | SetLayers (const PNS_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.   | |
| bool | Collide (const ITEM *aHead, const NODE *aNode, int aLayer, COLLISION_SEARCH_CONTEXT *aCtx=nullptr) const | 
| Check for a collision (clearance violation) with between us and item aOther.   | |
| std::set< int > | RelevantShapeLayers (const ITEM *aOther) const | 
| Returns the set of layers on which either this or the other item can have a unique shape.   | |
| 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 | 
| virtual ITEM * | ParentPadVia () const | 
| bool | IsVirtual () const | 
| void | SetIsCompoundShapePrimitive () | 
| bool | IsCompoundShapePrimitive () const | 
| virtual const NODE * | OwningNode () const | 
| const ITEM_OWNER * | Owner () const | 
| Return the owner of this item, or NULL if there's none.   | |
| void | SetOwner (const ITEM_OWNER *aOwner) | 
| Set the node that owns this item.   | |
| bool | BelongsTo (const ITEM_OWNER *aNode) const | 
Static Public Member Functions | |
| static bool | ClassOf (const ITEM *aItem) | 
Static Public Attributes | |
| static constexpr int | ALL_LAYERS = 0 | 
| static constexpr int | INNER_LAYERS = 1 | 
Protected Attributes | |
| UNIQ_ID | m_uid | 
| PnsKind | m_kind | 
| BOARD_ITEM * | m_parent | 
| BOARD_ITEM * | m_sourceItem | 
| PNS_LAYER_RANGE | m_layers | 
| bool | m_movable | 
| NET_HANDLE | m_net | 
| int | m_marker | 
| int | m_rank | 
| bool | m_routable | 
| bool | m_isVirtual | 
| bool | m_isFreePad | 
| bool | m_isCompoundShapePrimitive | 
| const ITEM_OWNER * | m_owner | 
Private Member Functions | |
| bool | collideSimple (const ITEM *aHead, const NODE *aNode, int aLayer, COLLISION_SEARCH_CONTEXT *aCtx) const | 
Static Private Member Functions | |
| static UNIQ_ID | genNextUid () | 
Private Attributes | |
| STACK_MODE | m_stackMode | 
| std::map< int, int > | m_diameters | 
| May contain 1..n diameters depending on m_stackMode.   | |
| std::map< int, SHAPE_CIRCLE > | m_shapes | 
| int | m_drill | 
| VECTOR2I | m_pos | 
| VIATYPE | m_viaType | 
| PADSTACK::UNCONNECTED_LAYER_MODE | m_unconnectedLayerMode | 
| bool | m_isFree | 
| HOLE * | m_hole | 
      
  | 
  inherited | 
Definition at line 33 of file pns_linked_item.h.
      
  | 
  inherited | 
< Supported item types
| Enumerator | |
|---|---|
| INVALID_T | |
| SOLID_T | |
| LINE_T | |
| JOINT_T | |
| SEGMENT_T | |
| ARC_T | |
| VIA_T | |
| DIFF_PAIR_T | |
| HOLE_T | |
| ANY_T | |
| LINKED_ITEM_MASK_T | |
Definition at line 101 of file pns_item.h.
      
  | 
  stronginherited | 
      
  | 
  inline | 
Definition at line 308 of file pns_via.h.
References PNS::ITEM::m_isVirtual, and PNS::VIA::VIA().
      
  | 
  inlineoverridevirtualinherited | 
      
  | 
  inlineoverridevirtualinherited | 
      
  | 
  inlineinherited | 
Definition at line 82 of file pns_item.h.
References m_owner.
Referenced by PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::NODE::doRemove(), PNS::LINE::operator=(), PNS::NODE::Remove(), and PNS::NODE::~NODE().
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::HOLE.
Definition at line 207 of file pns_item.h.
References m_parent.
Referenced by isEdge(), isEdge(), PNS_PCBNEW_RULE_RESOLVER::IsInNetTie(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), and ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM().
Definition at line 276 of file pns_via.cpp.
References SHAPE::BBox(), BOX2< Vec >::Merge(), Pos(), Shape(), UniqueShapeLayers(), and VIA().
Referenced by PNS::ChangedArea().
      
  | 
  inlinestaticinherited | 
Definition at line 169 of file pns_via.h.
References PNS::ITEM::Kind(), and PNS::ITEM::VIA_T.
      
  | 
  overridevirtualinherited | 
Return a deep copy of the item.
Implements PNS::ITEM.
Definition at line 244 of file pns_via.cpp.
References PNS::ITEM::Layers(), m_diameters, m_drill, m_isFree, PNS::ITEM::m_isVirtual, PNS::ITEM::m_layers, PNS::ITEM::m_marker, PNS::ITEM::m_movable, PNS::ITEM::m_parent, m_pos, PNS::ITEM::m_rank, PNS::ITEM::m_routable, m_shapes, PNS::ITEM::m_sourceItem, m_stackMode, PNS::LINKED_ITEM::m_uid, m_viaType, PNS::HOLE::MakeCircularHole(), PNS::ITEM::Net(), SetHole(), PNS::ITEM::SetLayers(), PNS::ITEM::SetNet(), and VIA().
Referenced by PNS::LINE::AppendVia(), PNS::SHOVE::onCollidingVia(), and PNS::LINE::operator=().
      
  | 
  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 305 of file pns_item.cpp.
References collideSimple(), and ITEM().
Referenced by PNS::clipToOtherLine(), PNS::SHOVE::fixupViaCollisions(), PNS::SHOVE::onCollidingSolid(), PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator()(), PNS::OPTIMIZER::CACHE_VISITOR::operator()(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), PNS::COMPONENT_DRAGGER::Start(), and PNS::verifyDpBypass().
      
  | 
  privateinherited | 
Definition at line 115 of file pns_item.cpp.
References actual, clearance, SHAPE::Collide(), collideSimple(), dyn_cast(), Edge_Cuts, PNS::NODE::GetClearance(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), PNS::NODE::GetRuleResolver(), HasHole(), Hole(), HOLE_T, PNS::ROUTER_IFACE::IsFlashedOnLayer(), IsFreePad(), PNS::RULE_RESOLVER::IsInNetTie(), PNS::RULE_RESOLVER::IsKeepout(), PNS::RULE_RESOLVER::IsNetTieExclusion(), PNS::RULE_RESOLVER::IsNonPlatedSlot(), ITEM(), Kind(), Layers(), LINE_T, PNS::OBSTACLE::m_clearance, PNS::COLLISION_SEARCH_OPTIONS::m_differentNetsOnly, PNS::OBSTACLE::m_distFirst, PNS::OBSTACLE::m_head, PNS::OBSTACLE::m_item, m_kind, m_layers, PNS::OBSTACLE::m_maxFanoutWidth, PNS::COLLISION_SEARCH_OPTIONS::m_overrideClearance, m_parent, PNS::COLLISION_SEARCH_OPTIONS::m_useClearanceEpsilon, PNS::HOLE::Net(), Net(), PNS::COLLISION_SEARCH_CONTEXT::obstacles, PNS::COLLISION_SEARCH_CONTEXT::options, PNS::NODE::QueryEdgeExclusions(), Shape(), and PNS::shouldWeConsiderHoleCollisions().
Referenced by Collide(), and collideSimple().
      
  | 
  inherited | 
Definition at line 78 of file pns_via.cpp.
References PNS::ITEM::m_layers, m_unconnectedLayerMode, and PADSTACK::START_END_ONLY.
      
  | 
  inlineinherited | 
Definition at line 208 of file pns_via.h.
References EffectiveLayer(), and m_diameters.
Referenced by comparePnsItems(), PNS::SHOVE::fixupViaCollisions(), Hull(), PNS::LINE::LINE(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PadstackMatches(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), and PushoutForce().
      
  | 
  inlineinherited | 
Definition at line 228 of file pns_via.h.
References m_drill.
Referenced by comparePnsItems(), and PNS::shouldWeConsiderHoleCollisions().
      
  | 
  inherited | 
Definition at line 33 of file pns_via.cpp.
References ALL_LAYERS, CUSTOM, FRONT_INNER_BACK, PNS::ITEM::m_layers, m_stackMode, and NORMAL.
Referenced by Diameter(), PushoutForce(), SetDiameter(), and Shape().
      
  | 
  overridevirtualinherited | 
Reimplemented from PNS::ITEM.
Definition at line 306 of file pns_via.cpp.
References PNS::ITEM::Format(), SHAPE::Format(), m_drill, and Shape().
      
  | 
  staticprivateinherited | 
Definition at line 362 of file pns_item.cpp.
Referenced by LINKED_ITEM(), and ResetUid().
      
  | 
  inlineinherited | 
Definition at line 202 of file pns_item.h.
References m_sourceItem.
Referenced by PNS::NODE::AssembleLine(), PNS_KICAD_IFACE::createBoardItem(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), PNS_VIEWER_IFACE::getLengthDelayCalculationItems(), PNS::VIA::operator=(), PNS::SEGMENT::SEGMENT(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
      
  | 
  inlineoverridevirtual | 
      
  | 
  inlineoverridevirtualinherited | 
      
  | 
  inlineoverridevirtualinherited | 
Reimplemented from PNS::ITEM.
Definition at line 285 of file pns_via.h.
References m_hole.
Referenced by PNS::NODE::addVia(), PNS::DIFF_PAIR::AppendVias(), and PNS::NODE::Remove().
      
  | 
  overridevirtualinherited | 
Reimplemented from PNS::ITEM.
Definition at line 226 of file pns_via.cpp.
References Diameter(), PNS::ROUTER::GetInstance(), m_hole, m_pos, m_stackMode, NORMAL, and PNS::OctagonalHull().
Referenced by PNS::SHOVE::onReverseCollidingVia(), PNS::SHOVE::shoveLineFromLoneVia(), and PNS::SHOVE::ShoveObstacleLine().
      
  | 
  inlineinherited | 
Definition at line 301 of file pns_item.h.
References m_isCompoundShapePrimitive.
      
  | 
  inlineinherited | 
      
  | 
  inlineinherited | 
Definition at line 288 of file pns_item.h.
References m_isFreePad, and ParentPadVia().
Referenced by collideSimple().
      
  | 
  inlineinherited | 
Definition at line 278 of file pns_item.h.
References Marker(), and PNS::MK_LOCKED.
Referenced by PNS::JOINT::IsLineCorner(), PNS::JOINT::NextSegment(), and PNS::SHOVE::pushOrShoveVia().
      
  | 
  inlineinherited | 
Definition at line 284 of file pns_item.h.
References m_routable.
Referenced by PNS::NODE::addSolid(), and PNS::NODE::removeSolidIndex().
      
  | 
  inlineinherited | 
Definition at line 295 of file pns_item.h.
References m_isVirtual.
Referenced by PNS_KICAD_IFACE::DisplayItem(), PNS::NODE::GetClearance(), PNS::JOINT::NextSegment(), and PNS::NODE::QueryColliding().
      
  | 
  inlineinherited | 
Return the type (kind) of the item.
Definition at line 173 of file pns_item.h.
References m_kind.
Referenced by PNS::NODE::add(), PNS::TOPOLOGY::AssembleDiffPair(), 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(), PNS::VIA::ClassOf(), collideSimple(), comparePnsItems(), PNS::OPTIMIZER::computeBreakouts(), PNS_KICAD_IFACE::createBoardItem(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::followLine(), PNS_PCBNEW_RULE_RESOLVER::getBoardItem(), PNS::getDanglingAnchor(), PNS::MEANDER_PLACER_BASE::getSnappedStartPoint(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS_KICAD_IFACE_BASE::inheritTrackWidth(), PNS_KICAD_IFACE::modifyBoardItem(), PNS::JOINT::NextSegment(), PNS::OPTIMIZER::CACHE_VISITOR::operator()(), PNS::INDEX::Query(), PNS::NODE::Remove(), PNS::SEGMENT::SEGMENT(), PNS::SHOVE::shoveIteration(), PNS::OPTIMIZER::smartPadsSingle(), PNS::TOOL_BASE::snapToItem(), PNS::DRAGGER::Start(), PNS::LINE_PLACER::Start(), and ROUTER_PREVIEW_ITEM::Update().
      
  | 
  inherited | 
Definition at line 315 of file pns_item.cpp.
References ARC_T, DIFF_PAIR_T, HOLE_T, JOINT_T, LINE_T, m_kind, SEGMENT_T, SOLID_T, and VIA_T.
Referenced by PNS::TOPOLOGY::AssembleTrivialPath(), PNS::TOPOLOGY::AssembleTuningPath(), Format(), and PNS::TOOL_BASE::pickSingleItem().
      
  | 
  inlinevirtualinherited | 
Definition at line 216 of file pns_item.h.
References Layers(), and PNS_LAYER_RANGE::Start().
Referenced by PNS::TOPOLOGY::AssembleTuningPath(), PNS::clipToOtherLine(), PNS::OPTIMIZER::fanoutCleanup(), PNS::SHOVE::fixupViaCollisions(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), PNS_VIEWER_IFACE::getLengthDelayCalculationItems(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::ROUTER::markViolations(), PNS::ROUTER::movePlacing(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::OPTIMIZER::runSmartPads(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), PNS::SHOVE::ShoveObstacleLine(), PNS::COMPONENT_DRAGGER::Start(), and PNS::verifyDpBypass().
      
  | 
  inlineinherited | 
Definition at line 212 of file pns_item.h.
References m_layers.
Referenced by PNS::INDEX::Add(), PNS::NODE::Add(), PNS::NODE::addArc(), PNS::NODE::addSegment(), PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), MOCK_RULE_RESOLVER::Clearance(), PNS_PCBNEW_RULE_RESOLVER::Clearance(), PNS::HOLE::Clone(), PNS::VIA::Clone(), collideSimple(), comparePnsItems(), PNS_KICAD_IFACE::createBoardItem(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::FindJoint(), PNS::NODE::FindLinesBetweenJoints(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantSegment(), PNS::NODE::findRedundantSegment(), PNS::NODE::FixupVirtualVias(), PNS::ROUTER::GetNearestRatnestAnchor(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), Layer(), LayersOverlap(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), PNS::VIA::MakeHandle(), PNS::ROUTER::markViolations(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::JOINT::NextSegment(), PNS::SHOVE::onCollidingSolid(), PNS::VIA::operator=(), 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::SHOVE::shoveIteration(), PNS::COMPONENT_DRAGGER::Start(), ROUTER_PREVIEW_ITEM::Update(), PNS::DIFF_PAIR::updateLine(), and PNS::VIA::VIA().
      
  | 
  inlineinherited | 
Return true if the set of layers spanned by aOther overlaps our layers.
Definition at line 221 of file pns_item.h.
References ITEM(), Layers(), and PNS_LAYER_RANGE::Overlaps().
Referenced by PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingSegment(), PNS::NODE::rebuildJoint(), and PNS::SHOVE::ShoveObstacleLine().
      
  | 
  inherited | 
Definition at line 295 of file pns_via.cpp.
References PNS::ITEM::Layers(), PNS::VIA_HANDLE::layers, PNS::ITEM::Net(), PNS::VIA_HANDLE::net, Pos(), PNS::VIA_HANDLE::pos, and PNS::VIA_HANDLE::valid.
Referenced by PNS::DRAGGER::startDragVia().
      
  | 
  inlinevirtualinherited | 
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::LINE.
Definition at line 263 of file pns_item.h.
References m_marker.
Referenced by PNS::ARC::ARC(), IsLocked(), PNS::SHOVE::pushOrShoveVia(), and ROUTER_PREVIEW_ITEM::Update().
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::HOLE, and PNS::JOINT.
Definition at line 210 of file pns_item.h.
References m_net.
Referenced by PNS::INDEX::Add(), PNS::NODE::Add(), PNS::NODE::addArc(), PNS::NODE::addSegment(), PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::TOPOLOGY::AssembleCluster(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), PNS::VIA::Clone(), collideSimple(), comparePnsItems(), PNS_KICAD_IFACE::createBoardItem(), PNS::DIFF_PAIR::DIFF_PAIR(), PNS_PCBNEW_RULE_RESOLVER::DpNetPair(), PNS::OPTIMIZER::fanoutCleanup(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::FindJoint(), PNS::NODE::findRedundantArc(), PNS::NODE::findRedundantSegment(), PNS::LINE_PLACER::FixRoute(), Format(), PNS_PCBNEW_RULE_RESOLVER::getBoardItem(), PNS_KICAD_IFACE_BASE::ImportSizes(), ROUTER_TOOL::InlineDrag(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::ROUTER::isStartingPointRoutable(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), PNS::VIA::MakeHandle(), PNS::LINE_PLACER::Move(), PNS::JOINT::NextSegment(), PNS::VIA::operator=(), PNS::NODE::rebuildJoint(), PNS::INDEX::Remove(), PNS::NODE::removeArcIndex(), PNS::NODE::removeSegmentIndex(), PNS::NODE::removeSolidIndex(), PNS::NODE::removeViaIndex(), PNS::SHOVE::Run(), PNS::OPTIMIZER::runSmartPads(), PNS::SEGMENT::SEGMENT(), PNS::shouldWeConsiderHoleCollisions(), PNS::SHOVE::shoveIteration(), PNS::LINE_PLACER::Start(), PCB_TUNING_PATTERN::Update(), and PNS::VIA::VIA().
      
  | 
  inlineinherited | 
Definition at line 181 of file pns_item.h.
References m_kind.
Referenced by PNS::DP_PRIMITIVE_PAIR::anchorDirection(), PNS::TOPOLOGY::AssembleCluster(), PNS::TOPOLOGY::AssembleTrivialPath(), PNS::ROUTER::BreakSegmentOrArc(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), PNS::ChangedArea(), PNS::TOOL_BASE::checkSnap(), PNS_KICAD_IFACE::DisplayItem(), PNS::OPTIMIZER::fanoutCleanup(), PNS::SHOVE::fixupViaCollisions(), PNS::TOPOLOGY::followTrivialPath(), PNS_KICAD_IFACE_BASE::getLengthDelayCalculationItems(), PNS_VIEWER_IFACE::getLengthDelayCalculationItems(), ROUTER_TOOL::InlineDrag(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), isHole(), isHole(), PNS::LINE_PLACER::Move(), PNS::JOINT::NextSegment(), PNS::SHOVE::onCollidingVia(), PNS::NODE::DEFAULT_OBSTACLE_VISITOR::operator()(), PCB_TUNING_PATTERN::recoverBaseline(), PNS_KICAD_IFACE::RemoveItem(), PNS_KICAD_IFACE_GENERATOR::RemoveItem(), PNS::SHOVE::replaceItems(), PNS::shouldWeConsiderHoleCollisions(), PNS::SHOVE::shoveIteration(), PNS::LINE_PLACER::simplifyNewLine(), PNS::LINE_PLACER::SplitAdjacentArcs(), PNS::LINE_PLACER::SplitAdjacentSegments(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), PNS::SHOVE::unwindLineStack(), and PNS::SHOVE::unwindLineStack().
      
  | 
  inlineinherited | 
Return the owner of this item, or NULL if there's none.
Definition at line 72 of file pns_item.h.
References m_owner.
Referenced by PNS_PCBNEW_RULE_RESOLVER::Clearance(), PNS_KICAD_IFACE_BASE::inheritTrackWidth(), PNS::LINE_PLACER::Move(), PNS::ITEM::OwningNode(), and PNS::NODE::Remove().
      
  | 
  virtualinherited | 
Definition at line 354 of file pns_item.cpp.
References PNS::OWNABLE_ITEM::Owner(), and ParentPadVia().
Referenced by PNS::SHOVE::shoveIteration().
      
  | 
  inherited | 
Definition at line 99 of file pns_via.cpp.
References Diameter(), UniqueShapeLayers(), and VIA().
Referenced by PNS::shouldWeConsiderHoleCollisions().
      
  | 
  inlineinherited | 
Definition at line 199 of file pns_item.h.
References m_parent.
Referenced by PNS_KICAD_IFACE_BASE::CalculateRoutedPathDelay(), PNS_VIEWER_IFACE::CalculateRoutedPathDelay(), PNS_KICAD_IFACE_BASE::CalculateRoutedPathLength(), PNS_VIEWER_IFACE::CalculateRoutedPathLength(), PNS_KICAD_IFACE::createBoardItem(), PNS_KICAD_IFACE::DisplayItem(), PNS_KICAD_IFACE::HideItem(), isCopper(), isCopper(), PNS_PCBNEW_RULE_RESOLVER::IsDrilledHole(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_KICAD_IFACE::IsItemVisible(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), PNS_PCBNEW_RULE_RESOLVER::IsNonPlatedSlot(), PNS_KICAD_IFACE::modifyBoardItem(), PNS::VIA::operator=(), PNS_KICAD_IFACE::RemoveItem(), PNS_KICAD_IFACE_GENERATOR::RemoveItem(), PNS::SHOVE::shoveIteration(), and PNS::LINE_PLACER::Start().
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::HOLE.
Definition at line 293 of file pns_item.h.
References ITEM().
Referenced by PNS_PCBNEW_RULE_RESOLVER::IsDrilledHole(), IsFreePad(), PNS_PCBNEW_RULE_RESOLVER::IsNonPlatedSlot(), and OwningNode().
      
  | 
  inlineinherited | 
Definition at line 184 of file pns_via.h.
References m_pos.
Referenced by PNS::NODE::addVia(), PNS::LINE::AppendVia(), PNS::LINE_PLACER::buildInitialLine(), ChangedArea(), comparePnsItems(), PNS::SHOVE::fixupViaCollisions(), PNS::LINE::LinkVia(), MakeHandle(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onReverseCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PNS::SHOVE::pushOrShoveVia(), PushoutForce(), PNS::NODE::removeViaIndex(), PNS::SHOVE::replaceItems(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::Run(), PNS::shouldWeConsiderHoleCollisions(), and PNS::SHOVE::shoveIteration().
Definition at line 117 of file pns_via.cpp.
References clearance, SHAPE::Collide(), PNS::NODE::GetClearance(), PNS::ITEM::RelevantShapeLayers(), PNS::ITEM::Shape(), Shape(), and VECTOR2< T >::SquaredEuclideanNorm().
      
  | 
  inherited | 
Definition at line 134 of file pns_via.cpp.
References SHAPE_LINE_CHAIN::Append(), PNS::NODE::CheckColliding(), Diameter(), EffectiveLayer(), VECTOR2< T >::EuclideanNorm(), PNS::ROUTER_IFACE::GetDebugDecorator(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), PNS::COLLISION_SEARCH_OPTIONS::m_limitCount, PNS_DBG, Pos(), PushoutForce(), VECTOR2< T >::Resize(), SetPos(), VIA(), WHITE, and YELLOW.
Referenced by PNS::LINE_PLACER::buildInitialLine(), and PushoutForce().
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::LINE.
Definition at line 266 of file pns_item.h.
References m_rank.
Referenced by PNS::ARC::ARC(), PNS::LINE::LINE(), PNS::SHOVE::onCollidingSolid(), and PNS::SHOVE::shoveIteration().
      
  | 
  inherited | 
Returns the set of layers on which either this or the other item can have a unique shape.
Use this to loop over layers when hit-testing objects that can have different shapes on each layer (currently only VIA)
Definition at line 94 of file pns_item.cpp.
References HasUniqueShapeLayers(), ITEM(), and UniqueShapeLayers().
Referenced by PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), and PNS::VIA::PushoutForce().
      
  | 
  inlineinherited | 
Definition at line 46 of file pns_linked_item.h.
References genNextUid(), and m_uid.
      
  | 
  inlineinherited | 
Definition at line 215 of file pns_via.h.
References EffectiveLayer(), m_diameters, m_pos, and m_shapes.
Referenced by PNS::SHOVE::fixupViaCollisions(), PNS::SHOVE::onCollidingVia(), and PNS::DIFF_PAIR_PLACER::propagateDpHeadForces().
      
  | 
  inlineinherited | 
      
  | 
  inlineoverridevirtualinherited | 
Reimplemented from PNS::ITEM.
Definition at line 272 of file pns_via.h.
References m_hole, and PNS::ITEM::m_layers.
Referenced by Clone(), operator=(), VIA(), VIA(), and VIA().
      
  | 
  inlineinherited | 
Definition at line 300 of file pns_item.h.
References m_isCompoundShapePrimitive.
      
  | 
  inlineinherited | 
      
  | 
  inlineinherited | 
Definition at line 286 of file pns_item.h.
References m_isFreePad.
      
  | 
  inlineinherited | 
Definition at line 215 of file pns_item.h.
References m_layers.
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::FixRoute(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::ROUTER::isStartingPointRoutable(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PCB_TUNING_PATTERN::recoverBaseline(), and PNS::DIFF_PAIR::updateLine().
      
  | 
  inlineinherited | 
Definition at line 213 of file pns_item.h.
References m_layers.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::HOLE::Clone(), PNS::VIA::Clone(), PNS::HOLE::MakeCircularHole(), PNS::VIA::operator=(), PNS_LOG_FILE::parseCommonPnsProps(), PNS::VIA::VIA(), and PNS::VIA::VIA().
      
  | 
  inlineinherited | 
Definition at line 209 of file pns_item.h.
References m_net.
Referenced by PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::VIA::Clone(), PCB_TUNING_PATTERN::EditStart(), PNS::LINE_PLACER::FixRoute(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::ROUTER::isStartingPointRoutable(), PNS::VIA::operator=(), PNS_LOG_FILE::parseCommonPnsProps(), PCB_TUNING_PATTERN::recoverBaseline(), PNS::DIFF_PAIR::updateLine(), PNS::VIA::VIA(), and PNS::VIA::VIA().
      
  | 
  inlineinherited | 
Set the node that owns this item.
An item can belong to a single NODE or be unowned.
Definition at line 77 of file pns_item.h.
References m_owner.
Referenced by PNS::ITEM_SET::Add(), PNS::NODE::addArc(), PNS::NODE::addHole(), PNS::NODE::addSegment(), PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::NODE::AssembleLine(), PNS::HOLE::Clone(), PNS::NODE::Commit(), PNS::NODE::doRemove(), PNS::ITEM_SET::Prepend(), PNS::NODE::Remove(), and PNS::NODE::Remove().
      
  | 
  inlineinherited | 
Definition at line 191 of file pns_item.h.
References m_parent, and m_sourceItem.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS_KICAD_IFACE_GENERATOR::AddItem(), PNS::NODE::AssembleLine(), PCB_TUNING_PATTERN::EditStart(), PNS::VIA::operator=(), and PNS::DIFF_PAIR::updateLine().
      
  | 
  inlineinherited | 
Definition at line 186 of file pns_via.h.
References m_hole, m_pos, and m_shapes.
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PushoutForce(), and PNS::LINE_PLACER::rhWalkBase().
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::LINE.
Definition at line 265 of file pns_item.h.
References m_rank.
Referenced by PNS::NODE::Commit().
      
  | 
  inlineinherited | 
Definition at line 283 of file pns_item.h.
References m_routable.
      
  | 
  inlineinherited | 
Definition at line 201 of file pns_item.h.
References m_sourceItem.
Referenced by PNS::NODE::AssembleLine(), PNS::VIA::operator=(), and PNS::DIFF_PAIR::updateLine().
      
  | 
  inherited | 
Definition at line 87 of file pns_via.cpp.
References FRONT_INNER_BACK, PNS::ITEM::m_layers, and m_stackMode.
      
  | 
  inlineinherited | 
Definition at line 201 of file pns_via.h.
References m_unconnectedLayerMode.
      
  | 
  inlineinherited | 
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::ARC, and PNS::SEGMENT.
Definition at line 53 of file pns_linked_item.h.
      
  | 
  inlineoverridevirtualinherited | 
Return the geometrical shape of the item.
Used for collision detection and spatial indexing.
| aLayer | is the layer to query shape for (items may have different shapes on different layers) | 
Reimplemented from PNS::ITEM.
Definition at line 246 of file pns_via.h.
References EffectiveLayer(), and m_shapes.
Referenced by ChangedArea(), Format(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), and PushoutForce().
      
  | 
  inlineinherited | 
Definition at line 174 of file pns_via.h.
References m_stackMode.
      
  | 
  inlineinherited | 
Definition at line 51 of file pns_linked_item.h.
References m_uid.
Referenced by PNS::SHOVE::findRootLine(), PNS::SHOVE::pruneRootLines(), PNS::SHOVE::replaceItems(), and PNS::SHOVE::touchRootLine().
      
  | 
  inlineinherited | 
Definition at line 200 of file pns_via.h.
References m_unconnectedLayerMode.
      
  | 
  overridevirtualinherited | 
Return a list of layers that have unique (potentially different) shapes.
Reimplemented from PNS::ITEM.
Definition at line 56 of file pns_via.cpp.
References ALL_LAYERS, CUSTOM, FRONT_INNER_BACK, INNER_LAYERS, PNS::ITEM::m_layers, m_stackMode, and NORMAL.
Referenced by ChangedArea(), and PadstackMatches().
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::LINE.
Definition at line 262 of file pns_item.h.
References m_marker.
Referenced by PNS::NODE::Commit(), and PNS::DRAGGER::Start().
      
  | 
  inlineinherited | 
      
  | 
  inlinevirtualinherited | 
Reimplemented in PNS::ARC, and PNS::SEGMENT.
Definition at line 56 of file pns_linked_item.h.
Referenced by PNS::NODE::AssembleLine(), PNS::JOINT::IsLineCorner(), PNS::JOINT::IsTraceWidthChange(), PNS::TOOL_BASE::snapToItem(), and PCB_TUNING_PATTERN::Update().
      
  | 
  staticconstexprinherited | 
Definition at line 76 of file pns_via.h.
Referenced by comparePnsItems(), EffectiveLayer(), PNS_LOG_FILE::parsePnsViaFromString(), PNS::DIFF_PAIR::SetViaDiameter(), PNS::LINE::SetViaDiameter(), and UniqueShapeLayers().
      
  | 
  staticconstexprinherited | 
Definition at line 77 of file pns_via.h.
Referenced by UniqueShapeLayers().
      
  | 
  privateinherited | 
May contain 1..n diameters depending on m_stackMode.
Definition at line 293 of file pns_via.h.
Referenced by Clone(), Diameter(), operator=(), SetDiameter(), VIA(), VIA(), and VIA().
      
  | 
  privateinherited | 
Definition at line 296 of file pns_via.h.
Referenced by Clone(), Drill(), Format(), operator=(), SetDrill(), VIA(), VIA(), and VIA().
      
  | 
  privateinherited | 
      
  | 
  protectedinherited | 
Definition at line 332 of file pns_item.h.
Referenced by IsCompoundShapePrimitive(), ITEM(), ITEM(), and SetIsCompoundShapePrimitive().
      
  | 
  privateinherited | 
Definition at line 300 of file pns_via.h.
Referenced by Clone(), IsFree(), operator=(), SetIsFree(), VIA(), VIA(), and VIA().
      
  | 
  protectedinherited | 
Definition at line 331 of file pns_item.h.
Referenced by IsFreePad(), ITEM(), ITEM(), and SetIsFreePad().
      
  | 
  protectedinherited | 
Definition at line 330 of file pns_item.h.
Referenced by PNS::HOLE::Clone(), PNS::VIA::Clone(), IsVirtual(), ITEM(), ITEM(), PNS::VIA::operator=(), PNS::VIA::VIA(), PNS::VIA::VIA(), PNS::VIA::VIA(), and PNS::VVIA::VVIA().
      
  | 
  protectedinherited | 
Definition at line 316 of file pns_item.h.
Referenced by collideSimple(), ITEM(), ITEM(), Kind(), KindStr(), and OfKind().
      
  | 
  protectedinherited | 
Definition at line 323 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), collideSimple(), PNS::VIA::ConnectsLayer(), PNS::JOINT::Dump(), PNS::VIA::EffectiveLayer(), Format(), ITEM(), PNS::JOINT::JOINT(), PNS::JOINT::JOINT(), Layers(), PNS::LINE::LINE(), PNS::LINE::LINE(), PNS::LINE::LINE(), PNS::JOINT::Merge(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::JOINT::Overlaps(), PNS::SEGMENT::SEGMENT(), PNS::SOLID::SetHole(), PNS::VIA::SetHole(), SetLayer(), SetLayers(), PNS::VIA::SetStackMode(), PNS::VIA::UniqueShapeLayers(), and PNS::JOINT::Unlink().
      
  | 
  mutableprotectedinherited | 
Definition at line 327 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), ITEM(), ITEM(), Mark(), PNS::LINE::Mark(), Marker(), PNS::LINE::Marker(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SOLID::operator=(), PNS::VIA::operator=(), PNS::SEGMENT::SEGMENT(), Unmark(), PNS::LINE::Unmark(), and PNS::VIA::VIA().
      
  | 
  protectedinherited | 
Definition at line 325 of file pns_item.h.
Referenced by PNS::ARC::Clone(), PNS::VIA::Clone(), ITEM(), ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SOLID::operator=(), PNS::VIA::operator=(), and PNS::SOLID::SOLID().
      
  | 
  protectedinherited | 
Definition at line 326 of file pns_item.h.
Referenced by PNS::LINE::AppendVia(), PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), ITEM(), ITEM(), PNS::LINE::LINE(), PNS::LINE::LINE(), PNS::LINE::LINE(), PNS::HOLE::Net(), Net(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), PNS::SEGMENT::SEGMENT(), and SetNet().
      
  | 
  protectedinherited | 
Definition at line 88 of file pns_item.h.
Referenced by BelongsTo(), PNS::ITEM::ITEM(), PNS::ITEM::ITEM(), PNS::LINE::operator=(), PNS::LINE::operator=(), OWNABLE_ITEM(), Owner(), and SetOwner().
      
  | 
  protectedinherited | 
Definition at line 317 of file pns_item.h.
Referenced by PNS::HOLE::BoardItem(), BoardItem(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::VIA::Clone(), collideSimple(), ITEM(), ITEM(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SOLID::operator=(), Parent(), PNS::SEGMENT::SEGMENT(), SetParent(), and PNS::DIFF_PAIR::updateLine().
      
  | 
  privateinherited | 
      
  | 
  protectedinherited | 
Definition at line 328 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), ITEM(), ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SOLID::operator=(), PNS::VIA::operator=(), Rank(), PNS::LINE::Rank(), PNS::SEGMENT::SEGMENT(), SetRank(), PNS::LINE::SetRank(), and PNS::VIA::VIA().
      
  | 
  protectedinherited | 
Definition at line 329 of file pns_item.h.
Referenced by PNS::ARC::Clone(), PNS::VIA::Clone(), IsRoutable(), ITEM(), ITEM(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SOLID::operator=(), PNS::VIA::operator=(), and SetRoutable().
      
  | 
  privateinherited | 
Definition at line 294 of file pns_via.h.
Referenced by Clone(), operator=(), SetDiameter(), SetPos(), Shape(), VIA(), and VIA().
      
  | 
  protectedinherited | 
Definition at line 319 of file pns_item.h.
Referenced by PNS::ARC::Clone(), PNS::VIA::Clone(), GetSourceItem(), ITEM(), ITEM(), PNS::LINE::operator=(), PNS::LINE::operator=(), PNS::SOLID::operator=(), PNS::SEGMENT::SEGMENT(), SetParent(), SetSourceItem(), and PNS::DIFF_PAIR::updateLine().
      
  | 
  privateinherited | 
Definition at line 290 of file pns_via.h.
Referenced by Clone(), EffectiveLayer(), Hull(), operator=(), SetStackMode(), StackMode(), UniqueShapeLayers(), VIA(), VIA(), and VIA().
      
  | 
  protectedinherited | 
Definition at line 64 of file pns_linked_item.h.
Referenced by PNS::VIA::Clone(), LINKED_ITEM(), LINKED_ITEM(), PNS::VIA::operator=(), ResetUid(), and Uid().
      
  | 
  privateinherited | 
Definition at line 299 of file pns_via.h.
Referenced by ConnectsLayer(), operator=(), SetUnconnectedLayerMode(), UnconnectedLayerMode(), VIA(), VIA(), and VIA().
      
  | 
  privateinherited | 
Definition at line 298 of file pns_via.h.
Referenced by Clone(), operator=(), SetViaType(), VIA(), VIA(), VIA(), and ViaType().