KiCad PCB EDA Suite
|
Base class for PNS router board items. More...
#include <pns_item.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 , HOLE_T = 128 , ANY_T = 0xffff } |
Public Member Functions | |
ITEM (PnsKind aKind) | |
ITEM (const ITEM &aOther) | |
virtual | ~ITEM () |
virtual ITEM * | Clone () const =0 |
Return a deep copy of the item. More... | |
virtual const SHAPE_LINE_CHAIN | Hull (int aClearance=0, int aWalkaroundThickness=0, int aLayer=-1) const |
PnsKind | Kind () const |
Return the type (kind) of the item. More... | |
bool | OfKind (int aKindMask) const |
std::string | KindStr () const |
void | SetParent (BOARD_ITEM *aParent) |
BOARD_ITEM * | Parent () const |
virtual BOARD_ITEM * | BoardItem () const |
void | SetNet (int aNet) |
virtual 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... | |
bool | Collide (const ITEM *aHead, const NODE *aNode, COLLISION_SEARCH_CONTEXT *aCtx=nullptr) 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 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 |
void | SetIsFreePad (bool aIsFreePad=true) |
bool | IsFreePad () const |
virtual ITEM * | ParentPadVia () const |
virtual bool | HasSameParentPadVia (const ITEM *aOther) const |
bool | IsVirtual () const |
void | SetIsCompoundShapePrimitive () |
bool | IsCompoundShapePrimitive () const |
virtual bool | HasHole () const |
virtual HOLE * | Hole () const |
virtual void | SetHole (HOLE *aHole) |
virtual const std::string | Format () const |
const ITEM_OWNER * | Owner () const |
Return the owner of this item, or NULL if there's none. More... | |
void | SetOwner (const ITEM_OWNER *aOwner) |
Set the node that owns this item. More... | |
bool | BelongsTo (const ITEM_OWNER *aNode) const |
Static Public Attributes | |
static const int | UnusedNet = INT_MAX |
Supported item types. More... | |
Protected Attributes | |
PnsKind | m_kind |
BOARD_ITEM * | m_parent |
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 |
const ITEM_OWNER * | m_owner |
Private Member Functions | |
bool | collideSimple (const ITEM *aHead, const NODE *aNode, COLLISION_SEARCH_CONTEXT *aCtx) const |
Base class for PNS router board items.
Implements the shared properties of all PCB items net, spanned layers, geometric shape and reference to owning model.
Definition at line 90 of file pns_item.h.
enum PNS::ITEM::PnsKind |
Enumerator | |
---|---|
SOLID_T | |
LINE_T | |
JOINT_T | |
SEGMENT_T | |
ARC_T | |
VIA_T | |
DIFF_PAIR_T | |
HOLE_T | |
ANY_T |
Definition at line 96 of file pns_item.h.
|
inline |
Definition at line 109 of file pns_item.h.
References m_isCompoundShapePrimitive, m_isFreePad, m_isVirtual, m_kind, m_marker, m_movable, m_net, PNS::OWNABLE_ITEM::m_owner, m_parent, m_rank, m_routable, and UnusedNet.
|
inline |
Definition at line 124 of file pns_item.h.
References m_isCompoundShapePrimitive, m_isFreePad, m_isVirtual, m_kind, m_layers, m_marker, m_movable, m_net, PNS::OWNABLE_ITEM::m_owner, m_parent, m_rank, and m_routable.
|
virtual |
Definition at line 237 of file pns_item.cpp.
|
inlinevirtual |
Reimplemented in PNS::SOLID, PNS::ARC, PNS::SEGMENT, and PNS::VIA.
Definition at line 232 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::getNearestRatnestAnchor(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::TOOL_BASE::pickSingleItem(), and PNS::TOOL_BASE::snapToItem().
|
inlinevirtual |
Reimplemented in PNS::ARC, PNS::SEGMENT, PNS::SOLID, and PNS::VIA.
Definition at line 237 of file pns_item.h.
|
inlineinherited |
Definition at line 75 of file pns_item.h.
References PNS::OWNABLE_ITEM::m_owner.
Referenced by PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::NODE::doRemove(), PNS::LINE::RemoveVia(), PNS::SOLID::SetHole(), PNS::VIA::SetHole(), PNS::LINE::~LINE(), and PNS::VIA::~VIA().
|
inlinevirtual |
Reimplemented in PNS::HOLE.
Definition at line 186 of file pns_item.h.
References m_parent.
Referenced by isEdge(), PNS_PCBNEW_RULE_RESOLVER::IsInNetTie(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS_PCBNEW_RULE_RESOLVER::QueryConstraint(), and ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM().
|
pure virtual |
Return a deep copy of the item.
Implemented in PNS::ARC, PNS::DIFF_PAIR, PNS::HOLE, PNS::JOINT, PNS::LINE, PNS::SEGMENT, PNS::SOLID, and PNS::VIA.
Referenced by PNS_LOG_VIEW_TRACKER::DisplayItem(), PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR(), and PNS::DP_PRIMITIVE_PAIR::operator=().
bool PNS::ITEM::Collide | ( | const ITEM * | aHead, |
const NODE * | aNode, | ||
COLLISION_SEARCH_CONTEXT * | aCtx = nullptr |
||
) | const |
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 210 of file pns_item.cpp.
References collideSimple().
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().
|
private |
Definition at line 48 of file pns_item.cpp.
References PNS::RULE_RESOLVER::ClearanceEpsilon(), SHAPE::Collide(), collideSimple(), Edge_Cuts, PNS::NODE::GetClearance(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), BOARD_ITEM::GetLayer(), PNS::NODE::GetRuleResolver(), HasSameParentPadVia(), Hole(), HOLE_T, PNS::ROUTER_IFACE::IsFlashedOnLayer(), IsFreePad(), PNS::RULE_RESOLVER::IsInNetTie(), PNS::RULE_RESOLVER::IsKeepout(), PNS::RULE_RESOLVER::IsNetTieExclusion(), Kind(), Layers(), LINE_T, PNS::OBSTACLE::m_clearance, PNS::COLLISION_SEARCH_OPTIONS::m_differentNetsOnly, PNS::OBSTACLE::m_head, PNS::OBSTACLE::m_item, m_kind, m_layers, PNS::COLLISION_SEARCH_OPTIONS::m_overrideClearance, m_parent, PNS::COLLISION_SEARCH_OPTIONS::m_useClearanceEpsilon, Net(), PNS::COLLISION_SEARCH_CONTEXT::obstacles, PNS::COLLISION_SEARCH_CONTEXT::options, LAYER_RANGE::Overlaps(), PNS::NODE::QueryEdgeExclusions(), and Shape().
Referenced by Collide(), and collideSimple().
|
virtual |
Reimplemented in PNS::SEGMENT, and PNS::VIA.
Definition at line 242 of file pns_item.cpp.
References LAYER_RANGE::End(), KindStr(), m_layers, Net(), and LAYER_RANGE::Start().
Referenced by PNS::NODE::Dump(), PNS::SEGMENT::Format(), and PNS::VIA::Format().
|
inlinevirtual |
Reimplemented in PNS::SOLID, and PNS::VIA.
Definition at line 268 of file pns_item.h.
Referenced by PNS::NODE::doRemove().
|
inlinevirtual |
Definition at line 254 of file pns_item.h.
References Parent(), and ParentPadVia().
Referenced by collideSimple().
|
inlinevirtual |
Reimplemented in PNS::SOLID, and PNS::VIA.
Definition at line 269 of file pns_item.h.
Referenced by collideSimple(), PNS::NODE::doRemove(), ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM(), and ROUTER_PREVIEW_ITEM::Update().
|
inlinevirtual |
Reimplemented in PNS::ARC, PNS::SEGMENT, PNS::HOLE, PNS::SOLID, and PNS::VIA.
Definition at line 153 of file pns_item.h.
|
inline |
Definition at line 266 of file pns_item.h.
References m_isCompoundShapePrimitive.
|
inline |
|
inline |
Definition at line 242 of file pns_item.h.
References Marker(), and PNS::MK_LOCKED.
Referenced by ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::performDragging(), and PNS::SHOVE::pushOrShoveVia().
|
inline |
Definition at line 248 of file pns_item.h.
References m_routable.
Referenced by PNS::NODE::addSolid(), and PNS::NODE::removeSolidIndex().
|
inline |
Definition at line 260 of file pns_item.h.
References m_isVirtual.
Referenced by PNS_KICAD_IFACE::DisplayItem(), PNS::NODE::GetClearance(), and PNS::NODE::QueryColliding().
|
inline |
Return the type (kind) of the item.
Definition at line 162 of file pns_item.h.
References m_kind.
Referenced by PNS::NODE::add(), 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(), PNS::VIA::ClassOf(), collideSimple(), comparePnsItems(), PNS::OPTIMIZER::computeBreakouts(), PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair(), PNS::NODE::followLine(), PNS::getDanglingAnchor(), PNS::MEANDER_PLACER_BASE::getSnappedStartPoint(), 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().
std::string PNS::ITEM::KindStr | ( | ) | const |
Definition at line 219 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 Format(), PNS::TOOL_BASE::pickSingleItem(), and PNS::TOOL_BASE::updateEndItem().
|
inlinevirtual |
Definition at line 195 of file pns_item.h.
References Layers(), and LAYER_RANGE::Start().
Referenced by PNS::TOPOLOGY::AssembleTuningPath(), PNS::DRAGGER::CurrentLayer(), PNS::OPTIMIZER::fanoutCleanup(), 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().
|
inline |
Definition at line 191 of file pns_item.h.
References 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(), MOCK_RULE_RESOLVER::Clearance(), PNS::HOLE::Clone(), PNS::VIA::Clone(), 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_KICAD_IFACE_BASE::IsFlashedOnLayer(), Layer(), LayersOverlap(), PNS::LINE::LINE(), PNS::NODE::LockJoint(), PNS::VIA::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 PNS::VIA::VIA().
|
inline |
Return true if the set of layers spanned by aOther overlaps our layers.
Definition at line 200 of file pns_item.h.
References 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().
|
inlinevirtual |
Reimplemented in PNS::LINE.
Definition at line 225 of file pns_item.h.
References m_marker.
Referenced by PNS::SHOVE::ShoveDraggingVia().
|
inlinevirtual |
Reimplemented in PNS::LINE.
Definition at line 227 of file pns_item.h.
References m_marker.
Referenced by PNS::ARC::ARC(), IsLocked(), PNS::SHOVE::pushOrShoveVia(), and ROUTER_PREVIEW_ITEM::Update().
|
inlinevirtual |
Reimplemented in PNS::HOLE, and PNS::JOINT.
Definition at line 189 of file pns_item.h.
References 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(), PNS::VIA::Clone(), collideSimple(), comparePnsItems(), PNS::DRAGGER::CurrentNets(), PNS::MEANDER_PLACER::CurrentNets(), 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_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::MEANDER_SKEW_PLACER::Move(), PNS::HOLE::Net(), 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 PNS::VIA::VIA().
|
inline |
Definition at line 170 of file pns_item.h.
References 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(), isHole(), 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 65 of file pns_item.h.
References PNS::OWNABLE_ITEM::m_owner.
Referenced by PNS_KICAD_IFACE_BASE::inheritTrackWidth(), PNS::LINE_PLACER::Move(), and PNS::LINE_PLACER::rhShoveOnly().
|
inline |
Definition at line 181 of file pns_item.h.
References m_parent.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS::HOLE::BoardItem(), PNS_PCBNEW_RULE_RESOLVER::DpNetPair(), HasSameParentPadVia(), PNS_KICAD_IFACE::HideItem(), isCopper(), isDrilledHole(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_KICAD_IFACE::IsItemVisible(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), isNonPlatedSlot(), PNS::LOGGER::Log(), PNS_KICAD_IFACE::RemoveItem(), PNS::LINE_PLACER::Start(), and PNS_KICAD_IFACE::UpdateItem().
|
inlinevirtual |
Reimplemented in PNS::HOLE.
Definition at line 253 of file pns_item.h.
Referenced by HasSameParentPadVia().
|
inlinevirtual |
Reimplemented in PNS::LINE.
Definition at line 230 of file pns_item.h.
References m_rank.
Referenced by PNS::ARC::ARC(), PNS::LINE::LINE(), PNS::SHOVE::onCollidingVia(), and PNS::SHOVE::shoveIteration().
|
inlinevirtual |
Reimplemented in PNS::SOLID, and PNS::VIA.
Definition at line 270 of file pns_item.h.
|
inline |
Definition at line 265 of file pns_item.h.
References m_isCompoundShapePrimitive.
|
inline |
Definition at line 250 of file pns_item.h.
References m_isFreePad.
|
inline |
Definition at line 194 of file pns_item.h.
References 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().
|
inline |
Definition at line 192 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(), parseCommonPnsProps(), PNS::SOLID::SetHole(), PNS::VIA::SetHole(), and PNS::VIA::VIA().
|
inline |
Definition at line 188 of file pns_item.h.
References m_net.
Referenced by PNS::LINE::AppendVia(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::VIA::Clone(), PNS::LINE_PLACER::FixRoute(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), PNS::LINE::LINE(), PNS::DIFF_PAIR_PLACER::makeVia(), PNS::LINE::operator=(), parseCommonPnsProps(), PNS::DIFF_PAIR::updateLine(), 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 70 of file pns_item.h.
References PNS::OWNABLE_ITEM::m_owner.
Referenced by PNS::ITEM_SET::Add(), PNS::NODE::addArc(), PNS::NODE::addHole(), PNS::NODE::addSegment(), PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::LINE::AppendVia(), PNS::NODE::AssembleLine(), PNS::HOLE::Clone(), PNS::NODE::doRemove(), PNS::LINE::LINE(), PNS::LINE::operator=(), PNS::ITEM_SET::Prepend(), PNS::NODE::Remove(), PNS::SOLID::SetHole(), and PNS::VIA::SetHole().
|
inline |
Definition at line 180 of file pns_item.h.
References m_parent.
Referenced by PNS_KICAD_IFACE::AddItem().
|
inlinevirtual |
Reimplemented in PNS::LINE.
Definition at line 229 of file pns_item.h.
References m_rank.
Referenced by PNS::NODE::Commit(), and PNS::SHOVE::ShoveDraggingVia().
|
inline |
Definition at line 247 of file pns_item.h.
References m_routable.
|
inlinevirtual |
Return the geometrical shape of the item.
Used for collision detection and spatial indexing.
Reimplemented in PNS::ARC, PNS::HOLE, PNS::LINE, PNS::SEGMENT, PNS::SOLID, and PNS::VIA.
Definition at line 220 of file pns_item.h.
Referenced by PNS_TEST_DEBUG_DECORATOR::AddItem(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), collideSimple(), PNS::OPTIMIZER::computeBreakouts(), PNS::OPTIMIZER::customBreakouts(), PNS_KICAD_IFACE::HideItem(), PNS::HIT_VISITOR::operator()(), PNS::VIA::PushoutForce(), PNS::INDEX::Query(), ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM(), and ROUTER_PREVIEW_ITEM::Update().
|
inlinevirtual |
Reimplemented in PNS::LINE.
Definition at line 226 of file pns_item.h.
References m_marker.
Referenced by PNS::NODE::Commit(), and PNS::DRAGGER::Start().
|
protected |
Definition at line 291 of file pns_item.h.
Referenced by IsCompoundShapePrimitive(), ITEM(), and SetIsCompoundShapePrimitive().
|
protected |
Definition at line 290 of file pns_item.h.
Referenced by IsFreePad(), ITEM(), and SetIsFreePad().
|
protected |
Definition at line 289 of file pns_item.h.
Referenced by PNS::HOLE::Clone(), PNS::VIA::Clone(), IsVirtual(), ITEM(), PNS::VIA::VIA(), and PNS::VVIA::VVIA().
|
protected |
Definition at line 279 of file pns_item.h.
Referenced by collideSimple(), ITEM(), Kind(), KindStr(), and OfKind().
|
protected |
Definition at line 282 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), collideSimple(), PNS::JOINT::Dump(), Format(), ITEM(), PNS::JOINT::JOINT(), Layers(), PNS::LINE::LINE(), PNS::JOINT::Merge(), PNS::LINE::operator=(), PNS::JOINT::Overlaps(), PNS::SEGMENT::SEGMENT(), PNS::SOLID::SetHole(), PNS::VIA::SetHole(), SetLayer(), and SetLayers().
|
mutableprotected |
Definition at line 286 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), ITEM(), PNS::LINE::LINE(), Mark(), PNS::LINE::Mark(), Marker(), PNS::LINE::Marker(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), Unmark(), PNS::LINE::Unmark(), and PNS::VIA::VIA().
|
protected |
Definition at line 284 of file pns_item.h.
Referenced by ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), and PNS::SOLID::SOLID().
|
protected |
Definition at line 285 of file pns_item.h.
Referenced by PNS::LINE::AppendVia(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), ITEM(), PNS::LINE::LINE(), Net(), PNS::HOLE::Net(), PNS::LINE::operator=(), PNS::SEGMENT::SEGMENT(), and SetNet().
|
protectedinherited |
Definition at line 81 of file pns_item.h.
Referenced by PNS::OWNABLE_ITEM::BelongsTo(), ITEM(), PNS::LINE::operator=(), PNS::OWNABLE_ITEM::Owner(), and PNS::OWNABLE_ITEM::SetOwner().
|
protected |
Definition at line 281 of file pns_item.h.
Referenced by BoardItem(), PNS::HOLE::BoardItem(), PNS::HOLE::Clone(), PNS::VIA::Clone(), collideSimple(), ITEM(), Parent(), and SetParent().
|
protected |
Definition at line 287 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), ITEM(), PNS::LINE::LINE(), PNS::LINE::operator=(), Rank(), PNS::LINE::Rank(), PNS::SEGMENT::SEGMENT(), SetRank(), PNS::LINE::SetRank(), and PNS::VIA::VIA().
|
protected |
Definition at line 288 of file pns_item.h.
Referenced by IsRoutable(), ITEM(), and SetRoutable().
|
static |