KiCad PCB EDA Suite
|
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads, junctions between multiple traces or two traces different widths and combinations of these). More...
#include <pns_line.h>
Public Types | |
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 | |
LINE () | |
Makes an empty line. | |
LINE (const LINE &aOther) | |
LINE (const LINE &aBase, const SHAPE_LINE_CHAIN &aLine) | |
Copy properties (net, layers, etc.) from a base line and replaces the shape by another. | |
LINE (VIA *aVia) | |
Construct a LINE for a lone VIA (ie a stitching via). | |
~LINE () | |
virtual LINE * | Clone () const override |
Return a deep copy of the item. | |
LINE & | operator= (const LINE &aOther) |
bool | IsLinkedChecked () const |
Assign a shape to the line (a polyline/line chain). | |
void | SetShape (const SHAPE_LINE_CHAIN &aLine) |
Return the shape of the line. | |
const SHAPE * | Shape (int aLayer) const override |
Modifiable accessor to the underlying shape. | |
SHAPE_LINE_CHAIN & | Line () |
const SHAPE_LINE_CHAIN & | CLine () const |
int | SegmentCount () const |
int | PointCount () const |
int | ArcCount () const |
int | ShapeCount () const |
Return the aIdx-th point of the line. | |
const VECTOR2I & | CPoint (int aIdx) const |
const SEG | CSegment (int aIdx) const |
Set line width. | |
void | SetWidth (int aWidth) |
Return line width. | |
int | Width () const |
Return true if the line is geometrically identical as line aOther. | |
bool | CompareGeometry (const LINE &aOther) |
Reverse the point/vertex order. | |
void | Reverse () |
Clip the line to the nearest obstacle, traversing from the line's start vertex (0). | |
const LINE | ClipToNearestObstacle (NODE *aNode) const |
Clip the line to a given range of vertices. | |
void | ClipVertexRange (int aStart, int aEnd) |
Return the number of corners of angles specified by mask aAngles. | |
int | CountCorners (int aAngles) const |
bool | Walkaround (SHAPE_LINE_CHAIN aObstacle, SHAPE_LINE_CHAIN &aPre, SHAPE_LINE_CHAIN &aWalk, SHAPE_LINE_CHAIN &aPost, bool aCw) const |
Calculate a line tightly wrapping a convex hull of an obstacle object (aObstacle). | |
bool | Walkaround (const SHAPE_LINE_CHAIN &aObstacle, SHAPE_LINE_CHAIN &aPath, bool aCw) const |
Print out all linked segments. | |
void | ShowLinks () const |
bool | EndsWithVia () const |
int | FindSegment (const SEGMENT *aSeg) const |
void | AppendVia (const VIA &aVia) |
void | LinkVia (VIA *aVia) |
void | RemoveVia () |
VIA & | Via () |
const VIA & | Via () const |
void | SetViaDiameter (int aDiameter) |
void | SetViaDrill (int aDrill) |
virtual void | Mark (int aMarker) const override |
virtual void | Unmark (int aMarker=-1) const override |
virtual int | Marker () const override |
void | SetBlockingObstacle (ITEM *aObstacle) |
ITEM * | GetBlockingObstacle () const |
void | DragSegment (const VECTOR2I &aP, int aIndex, bool aFreeAngle=false) |
void | DragCorner (const VECTOR2I &aP, int aIndex, bool aFreeAngle=false, DIRECTION_45 aPreferredEndingDirection=DIRECTION_45()) |
void | SetRank (int aRank) override |
int | Rank () const override |
bool | HasLoops () const |
bool | HasLockedSegments () const |
void | Clear () |
OPT_BOX2I | ChangedArea (const LINE *aOther) const |
void | SetSnapThreshhold (int aThreshhold) |
int | GetSnapThreshhold () const |
void | Link (LINKED_ITEM *aLink) |
void | Unlink (const LINKED_ITEM *aLink) |
Return the list of links from the owning node that constitute this line (or NULL if the line is not linked). | |
std::vector< LINKED_ITEM * > & | Links () |
const std::vector< LINKED_ITEM * > & | Links () const |
bool | IsLinked () const |
Check if the segment aLink is a part of the line. | |
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. | |
virtual void | ClearLinks () |
Return the number of segments that were assembled together to form this line. | |
int | LinkCount () const |
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. | |
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 (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. | |
virtual std::vector< int > | UniqueShapeLayers () const |
Return a list of layers that have unique (potentially different) shapes. | |
virtual bool | HasUniqueShapeLayers () const |
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 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 |
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 |
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) |
Protected Member Functions | |
void | copyLinks (const LINK_HOLDER *aParent) |
< Copy m_links from the line aParent. | |
Protected Attributes | |
std::vector< LINKED_ITEM * > | m_links |
PnsKind | m_kind |
BOARD_ITEM * | m_parent |
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 | |
void | dragSegment45 (const VECTOR2I &aP, int aIndex) |
void | dragCorner45 (const VECTOR2I &aP, int aIndex, DIRECTION_45 aPreferredEndingDirection) |
void | dragSegmentFree (const VECTOR2I &aP, int aIndex) |
void | dragCornerFree (const VECTOR2I &aP, int aIndex) |
VECTOR2I | snapToNeighbourSegments (const SHAPE_LINE_CHAIN &aPath, const VECTOR2I &aP, int aIndex) const |
VECTOR2I | snapDraggedCorner (const SHAPE_LINE_CHAIN &aPath, const VECTOR2I &aP, int aIndex) const |
bool | collideSimple (const ITEM *aHead, const NODE *aNode, int aLayer, COLLISION_SEARCH_CONTEXT *aCtx) const |
Private Attributes | |
SHAPE_LINE_CHAIN | m_line |
The actual shape of the line. | |
int | m_width |
Our width. | |
int | m_snapThreshhold |
Width to smooth out jagged segments. | |
VIA * | m_via |
ITEM * | m_blockingObstacle |
For mark obstacle mode. | |
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads, junctions between multiple traces or two traces different widths and combinations of these).
PNS_LINEs are NOT stored in the model (NODE). Instead, they are assembled on-the-fly, based on a via/pad/segment that belongs to/starts/ends them.
PNS_LINEs can be either loose (consisting of segments that do not belong to any NODE) or owned (with segments taken from a NODE) - these are returned by NODE::AssembleLine and friends.
A LINE may have a VIA attached at its end (i.e. the last point) - this is used by via dragging/force propagation stuff.
Definition at line 61 of file pns_line.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 100 of file pns_item.h.
|
inline |
Makes an empty line.
Definition at line 67 of file pns_line.h.
References m_snapThreshhold, m_via, and m_width.
Referenced by Clone().
LINE::LINE | ( | const LINE & | aOther | ) |
Definition at line 38 of file pns_line.cpp.
References PNS::OWNABLE_ITEM::BelongsTo(), PNS::VIA::Clone(), PNS::LINK_HOLDER::copyLinks(), m_blockingObstacle, PNS::ITEM::m_layers, PNS::ITEM::m_marker, PNS::ITEM::m_movable, PNS::ITEM::m_net, PNS::ITEM::m_rank, m_via, PNS::ITEM::SetNet(), and PNS::OWNABLE_ITEM::SetOwner().
|
inline |
Copy properties (net, layers, etc.) from a base line and replaces the shape by another.
Definition at line 81 of file pns_line.h.
References PNS::ITEM::m_layers, PNS::ITEM::m_net, and m_via.
|
inline |
Construct a LINE for a lone VIA (ie a stitching via).
Definition at line 96 of file pns_line.h.
References PNS::VIA::Diameter(), PNS::ITEM::Layers(), PNS::ITEM::m_layers, PNS::ITEM::m_net, PNS::ITEM::m_rank, m_snapThreshhold, m_via, m_width, PNS::ITEM::Net(), PNS::ITEM::Rank(), and PNS_LAYER_RANGE::Start().
LINE::~LINE | ( | ) |
Definition at line 72 of file pns_line.cpp.
References PNS::OWNABLE_ITEM::BelongsTo(), and m_via.
|
inlinevirtualinherited |
Reimplemented in PNS::SOLID, PNS::ARC, PNS::SEGMENT, and PNS::VIA.
Definition at line 255 of file pns_item.h.
Referenced by PNS::DP_PRIMITIVE_PAIR::anchorDirection(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), PNS::DP_PRIMITIVE_PAIR::DP_PRIMITIVE_PAIR(), PNS::NODE::followLine(), PNS_PCBNEW_RULE_RESOLVER::getBoardItem(), PNS::getDanglingAnchor(), PNS::ROUTER::getNearestRatnestAnchor(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::TOOL_BASE::pickSingleItem(), PCB_TUNING_PATTERN::recoverBaseline(), and PNS::TOOL_BASE::snapToItem().
|
inlinevirtualinherited |
Reimplemented in PNS::ARC, PNS::SEGMENT, PNS::SOLID, and PNS::VIA.
Definition at line 260 of file pns_item.h.
Referenced by PNS::TOPOLOGY::AssembleDiffPair().
void LINE::AppendVia | ( | const VIA & | aVia | ) |
Definition at line 1082 of file pns_line.cpp.
References PNS::VIA::Clone(), SHAPE_LINE_CHAIN::CPoint(), m_line, PNS::ITEM::m_net, m_via, SHAPE_LINE_CHAIN::PointCount(), PNS::VIA::Pos(), Reverse(), PNS::ITEM::SetNet(), and PNS::OWNABLE_ITEM::SetOwner().
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::SHOVE::onReverseCollidingVia(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::rhWalkOnly(), PNS::SHOVE::ShoveObstacleLine(), and PNS::DIFF_PAIR::updateLine().
|
inline |
Definition at line 142 of file pns_line.h.
References SHAPE_LINE_CHAIN::ArcCount(), and m_line.
Referenced by PNS::OPTIMIZER::Optimize().
|
inlineinherited |
Definition at line 81 of file pns_item.h.
References PNS::OWNABLE_ITEM::m_owner.
Referenced by PNS::NODE::addSolid(), PNS::NODE::addVia(), PNS::NODE::doRemove(), LINE(), operator=(), PNS::NODE::Remove(), RemoveVia(), PNS::SOLID::SetHole(), PNS::VIA::SetHole(), ~LINE(), PNS::NODE::~NODE(), and PNS::VIA::~VIA().
|
inlinevirtualinherited |
Reimplemented in PNS::HOLE.
Definition at line 194 of file pns_item.h.
References PNS::ITEM::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().
Definition at line 1215 of file pns_line.cpp.
References SEG::Contains(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CSegment(), PNS::extendBox(), BOX2< Vec >::Inflate(), m_line, SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN::Simplify(), and Width().
Referenced by PNS::ChangedArea(), and PNS::DRAGGER::optimizeAndUpdateDraggedLine().
|
inlinestatic |
Definition at line 111 of file pns_line.h.
References PNS::ITEM::Kind(), and PNS::ITEM::LINE_T.
void LINE::Clear | ( | ) |
Definition at line 1307 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::Clear(), PNS::LINK_HOLDER::ClearLinks(), m_line, and RemoveVia().
Referenced by PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::routeStep(), and PNS::LINE_PLACER::splitHeadTail().
|
inlinevirtualinherited |
Return the number of segments that were assembled together to form this line.
Reimplemented in PNS::DIFF_PAIR.
Definition at line 78 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by Clear(), PNS::DIFF_PAIR::ClearLinks(), PNS::COMPONENT_DRAGGER::Drag(), PNS::DRAGGER::Drag(), PNS::MULTI_DRAGGER::Drag(), PNS::DRAGGER::dragMarkObstacles(), PNS::DRAGGER::dragShove(), PNS::DRAGGER::dragViaMarkObstacles(), PNS::DRAGGER::dragViaWalkaround(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onReverseCollidingVia(), PNS::OPTIMIZER::Optimize(), PNS::DRAGGER::optimizeAndUpdateDraggedLine(), PNS::SHOVE::preShoveCleanup(), PNS::NODE::Remove(), PNS::LINE_PLACER::removeLoops(), PNS::WALKAROUND::Route(), PNS::SHOVE::ShoveObstacleLine(), and PNS::WALKAROUND::start().
|
inline |
Definition at line 138 of file pns_line.h.
References m_line.
Referenced by PNS::COST_ESTIMATOR::Add(), PNS::TOPOLOGY::AssembleTuningPath(), PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), PNS::NODE::CheckColliding(), PNS::SHOVE::checkShoveDirection(), PNS::clipToOtherLine(), PNS::COST_ESTIMATOR::CornerCost(), PNS::DIFF_PAIR::DIFF_PAIR(), PNS::MEANDER_PLACER::doMove(), PNS::DRAGGER::dragViaMarkObstacles(), PNS::DRAGGER::dragViaWalkaround(), PNS::DRAGGER::dragWalkaround(), PNS::OPTIMIZER::fanoutCleanup(), PNS::NODE::FindLinesBetweenJoints(), PNS::LINE_PLACER::FixRoute(), PNS::TOPOLOGY::followTrivialPath(), getPNSLine(), PCB_TUNING_PATTERN::initBaseLine(), PNS::LINE_PLACER::Move(), PNS::MULTI_DRAGGER::multidragWalkaround(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onReverseCollidingVia(), PNS::DRAGGER::optimizeAndUpdateDraggedLine(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PNS::SHOVE::preShoveCleanup(), PNS::COST_ESTIMATOR::Remove(), PNS::LINE_PLACER::removeLoops(), PNS::COST_ESTIMATOR::Replace(), PNS_LOG_PLAYER::ReplayLog(), PNS::LINE_PLACER::rhWalkBase(), PNS::WALKAROUND::Route(), PNS::SHOVE::runOptimizer(), PNS::SHOVE::shoveLineToHullSet(), PNS::SHOVE::ShoveObstacleLine(), PNS::TOPOLOGY::SimplifyLine(), PNS::LINE_PLACER::simplifyNewLine(), PNS::WALKAROUND::singleStep(), PNS::OPTIMIZER::smartPadsSingle(), PNS::LINE_PLACER::splitHeadTail(), PNS::COMPONENT_DRAGGER::Start(), PNS::DRAGGER::startDragSegment(), PNS::Tighten(), PNS::LINE_PLACER::Trace(), PNS::LINE_PLACER::updatePStart(), and Walkaround().
Clip the line to a given range of vertices.
Definition at line 580 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::Clear(), SHAPE_LINE_CHAIN::CSegment(), SHAPE_LINE_CHAIN::IsArcSegment(), Line(), PNS::NODE::NearestObstacle(), SEG::NearestPoint(), SHAPE_LINE_CHAIN::NearestSegment(), SHAPE_LINE_CHAIN::Remove(), RemoveVia(), and SHAPE_LINE_CHAIN::Split().
void LINE::ClipVertexRange | ( | int | aStart, |
int | aEnd | ||
) |
Return the number of corners of angles specified by mask aAngles.
We need to figure out which joints to keep after the clip operation, because arcs will have multiple vertices. It is assumed that anything calling this method will have determined the vertex range to clip based on joints, meaning we will never clip in the middle of an arc. Clipping in the middle of an arc would break this and various other things...
Definition at line 1137 of file pns_line.cpp.
References PNS::LINK_HOLDER::IsLinked(), m_line, PNS::LINK_HOLDER::m_links, SHAPE_LINE_CHAIN::NextShape(), SHAPE_LINE_CHAIN::PointCount(), and SHAPE_LINE_CHAIN::Slice().
Referenced by PNS::NODE::FindLinesBetweenJoints().
|
overridevirtual |
Return a deep copy of the item.
Implements PNS::ITEM.
Definition at line 115 of file pns_line.cpp.
References LINE().
Referenced by PNS::ITEM_SET::Add(), PNS::DRAGGER::optimizeAndUpdateDraggedLine(), PNS::ITEM_SET::Prepend(), PNS::SHOVE::replaceLine(), and PNS::SHOVE::touchRootLine().
|
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 296 of file pns_item.cpp.
References PNS::ITEM::collideSimple().
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 SHAPE::Collide(), PNS::ITEM::collideSimple(), Edge_Cuts, PNS::NODE::GetClearance(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), BOARD_ITEM::GetLayer(), PNS::NODE::GetRuleResolver(), PNS::ITEM::Hole(), PNS::ITEM::HOLE_T, PNS::ROUTER_IFACE::IsFlashedOnLayer(), PNS::ITEM::IsFreePad(), PNS::RULE_RESOLVER::IsInNetTie(), PNS::RULE_RESOLVER::IsKeepout(), PNS::RULE_RESOLVER::IsNetTieExclusion(), PNS::RULE_RESOLVER::IsNonPlatedSlot(), PNS::ITEM::Kind(), PNS::ITEM::Layers(), PNS::ITEM::LINE_T, PNS::OBSTACLE::m_clearance, PNS::COLLISION_SEARCH_OPTIONS::m_differentNetsOnly, PNS::OBSTACLE::m_distFirst, PNS::OBSTACLE::m_head, PNS::OBSTACLE::m_item, PNS::ITEM::m_kind, PNS::ITEM::m_layers, PNS::OBSTACLE::m_maxFanoutWidth, PNS::COLLISION_SEARCH_OPTIONS::m_overrideClearance, PNS::ITEM::m_parent, PNS::COLLISION_SEARCH_OPTIONS::m_useClearanceEpsilon, PNS::ITEM::Net(), PNS::HOLE::Net(), PNS::COLLISION_SEARCH_CONTEXT::obstacles, PNS::COLLISION_SEARCH_CONTEXT::options, PNS_LAYER_RANGE::Overlaps(), PNS::NODE::QueryEdgeExclusions(), PNS::ITEM::Shape(), and PNS::shouldWeConsiderHoleCollisions().
Referenced by PNS::ITEM::Collide(), and PNS::ITEM::collideSimple().
bool LINE::CompareGeometry | ( | const LINE & | aOther | ) |
Reverse the point/vertex order.
Definition at line 1068 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::CompareGeometry(), and m_line.
|
inlineinherited |
Definition at line 65 of file pns_link_holder.h.
References alg::contains(), and PNS::LINK_HOLDER::m_links.
Referenced by PNS::NODE::Add(), PNS::TOOL_BASE::checkSnap(), PCB_TUNING_PATTERN::initBaseLine(), and RemoveVia().
|
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 107 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by LINE(), and operator=().
int LINE::CountCorners | ( | int | aAngles | ) | const |
Definition at line 167 of file pns_line.cpp.
References DIRECTION_45::Angle(), SHAPE_LINE_CHAIN::CSegment(), m_line, and SHAPE_LINE_CHAIN::SegmentCount().
Referenced by PNS::CORNER_COUNT_LIMIT_CONSTRAINT::Check(), PNS::LINE_PLACER::mergeHead(), PNS::OPTIMIZER::Optimize(), and PNS::OPTIMIZER::smartPadsSingle().
|
inline |
Definition at line 146 of file pns_line.h.
References SHAPE_LINE_CHAIN::CPoint(), and m_line.
Referenced by PNS::SHOVE::checkShoveDirection(), PNS::OPTIMIZER::fanoutCleanup(), PNS::NODE::FindLineEnds(), PNS::TOPOLOGY::followTrivialPath(), PNS::getDanglingAnchor(), HasLoops(), PNS::TOPOLOGY::LeadingRatLine(), PNS::LINE_PLACER::Move(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::rhWalkOnly(), PNS::WALKAROUND::Route(), PNS::LINE_PLACER::route(), PNS::SHOVE::Run(), PNS::SHOVE::sanityCheck(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), PNS::LINE_PLACER::splitHeadTail(), and Walkaround().
|
inline |
Set line width.
Definition at line 147 of file pns_line.h.
References SHAPE_LINE_CHAIN::CSegment(), and m_line.
Referenced by PNS::DIFF_PAIR::EndingPrimitives(), PNS::MULTI_DRAGGER::findNewLeaderSegment(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::FlipPosture(), PNS::OPTIMIZER::mergeStep(), PNS::LINE_PLACER::optimizeTailHeadTransition(), and PNS::SHOVE::ShoveObstacleLine().
void LINE::DragCorner | ( | const VECTOR2I & | aP, |
int | aIndex, | ||
bool | aFreeAngle = false , |
||
DIRECTION_45 | aPreferredEndingDirection = DIRECTION_45() |
||
) |
Definition at line 785 of file pns_line.cpp.
References dragCorner45(), and dragCornerFree().
Referenced by PNS::COMPONENT_DRAGGER::Drag(), PNS::MULTI_DRAGGER::Drag(), PNS::DRAGGER::dragMarkObstacles(), PNS::DRAGGER::dragShove(), PNS::DRAGGER::dragViaMarkObstacles(), PNS::DRAGGER::dragViaWalkaround(), and PNS::DRAGGER::dragWalkaround().
|
private |
Definition at line 724 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::CPoint(), PNS::dragCornerInternal(), SHAPE_LINE_CHAIN::Insert(), SHAPE_LINE_CHAIN::IsPtOnArc(), m_line, path, SHAPE_LINE_CHAIN::Reverse(), SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_LINE_CHAIN::Slice(), snapDraggedCorner(), and SHAPE_LINE_CHAIN::Width().
Referenced by DragCorner().
|
private |
Definition at line 758 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::GetPoint(), SHAPE_LINE_CHAIN::Insert(), SHAPE_LINE_CHAIN::IsArcSegment(), SHAPE_LINE_CHAIN::IsPtOnArc(), m_line, SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN::SetPoint(), and SHAPE_LINE_CHAIN::Simplify().
Referenced by DragCorner().
void LINE::DragSegment | ( | const VECTOR2I & | aP, |
int | aIndex, | ||
bool | aFreeAngle = false |
||
) |
Definition at line 799 of file pns_line.cpp.
References dragSegment45().
Referenced by PNS::DRAGGER::dragMarkObstacles(), PNS::DRAGGER::dragShove(), and PNS::DRAGGER::dragWalkaround().
|
private |
Definition at line 898 of file pns_line.cpp.
References SEG::A, DIRECTION_45::ANG_HALF_FULL, DIRECTION_45::ANG_OBTUSE, DIRECTION_45::Angle(), SHAPE_LINE_CHAIN::Append(), SEG::B, SEG::Intersect(), SEG::IntersectLines(), DIRECTION_45::Left(), SHAPE_LINE_CHAIN::Length(), m_line, path, SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN::Replace(), DIRECTION_45::Right(), SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_LINE_CHAIN::Simplify(), snapToNeighbourSegments(), DIRECTION_45::ToVector(), and DIRECTION_45::UNDEFINED.
Referenced by DragSegment().
|
private |
|
inline |
Definition at line 190 of file pns_line.h.
References m_via.
Referenced by PNS::NODE::CheckColliding(), PNS::OPTIMIZER::fanoutCleanup(), PNS::LINE_PLACER::FixRoute(), PNS::ROUTER::markViolations(), PNS::ROUTER::movePlacing(), PNS::NODE::NearestObstacle(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::SHOVE::replaceLine(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::WALKAROUND::Route(), PNS::LINE_PLACER::routeStep(), PNS::SHOVE::Run(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::ShoveObstacleLine(), and PNS::LINE_PLACER::UpdateSizes().
int LINE::FindSegment | ( | const SEGMENT * | aSeg | ) | const |
Definition at line 1338 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::CSegment(), m_line, PNS::SEGMENT::Seg(), and SHAPE_LINE_CHAIN::SegmentCount().
|
virtualinherited |
Reimplemented in PNS::SEGMENT, and PNS::VIA.
Definition at line 329 of file pns_item.cpp.
References PNS_LAYER_RANGE::End(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), PNS::ROUTER_IFACE::GetNetName(), PNS::ITEM::KindStr(), PNS::ITEM::m_layers, PNS::ITEM::Net(), and PNS_LAYER_RANGE::Start().
Referenced by PNS::NODE::Dump(), PNS::SEGMENT::Format(), PNS::VIA::Format(), and PNS::SHOVE::shoveIteration().
|
inline |
Definition at line 217 of file pns_line.h.
References m_blockingObstacle.
Referenced by PNS::ROUTER::markViolations().
|
inlineinherited |
Erase the linking information. Used to detach the line from the owning node.
Definition at line 70 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::LINE_PLACER::removeLoops(), PNS::TOPOLOGY::SimplifyLine(), PNS::DP_MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
|
inline |
Definition at line 237 of file pns_line.h.
References m_snapThreshhold.
|
inlinevirtualinherited |
Reimplemented in PNS::SOLID, PNS::VIA, and PNS::VVIA.
Definition at line 290 of file pns_item.h.
Referenced by PNS::NODE::Commit(), PNS::NODE::doRemove(), PNS::SHOVE::getClearance(), and PNS::WALKAROUND::RestrictToCluster().
bool LINE::HasLockedSegments | ( | ) | const |
Definition at line 1296 of file pns_line.cpp.
References PNS::LINK_HOLDER::m_links, and PNS::MK_LOCKED.
Referenced by PNS::SHOVE::onCollidingArc(), and PNS::SHOVE::onCollidingSegment().
bool LINE::HasLoops | ( | ) | const |
Definition at line 1186 of file pns_line.cpp.
References CPoint(), and PointCount().
Referenced by PNS::SHOVE::onCollidingSolid().
|
inlinevirtualinherited |
Reimplemented in PNS::VIA.
Definition at line 239 of file pns_item.h.
Referenced by PNS::ITEM::RelevantShapeLayers().
|
inlinevirtualinherited |
Reimplemented in PNS::SOLID, and PNS::VIA.
Definition at line 291 of file pns_item.h.
Referenced by PNS::ITEM::collideSimple(), PNS::NODE::Commit(), PNS::NODE::doRemove(), PNS::SHOVE::getClearance(), PNS::WALKAROUND::RestrictToCluster(), ROUTER_PREVIEW_ITEM::ROUTER_PREVIEW_ITEM(), and ROUTER_PREVIEW_ITEM::Update().
|
inlinevirtualinherited |
Reimplemented in PNS::ARC, PNS::SEGMENT, PNS::HOLE, PNS::SOLID, and PNS::VIA.
Definition at line 161 of file pns_item.h.
|
inlineinherited |
Definition at line 288 of file pns_item.h.
References PNS::ITEM::m_isCompoundShapePrimitive.
|
inlineinherited |
Definition at line 275 of file pns_item.h.
References PNS::ITEM::m_isFreePad, and PNS::ITEM::ParentPadVia().
Referenced by PNS::ITEM::collideSimple().
|
inlineinherited |
Check if the segment aLink is a part of the line.
Definition at line 59 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::NODE::Add(), ClipVertexRange(), PNS::TOPOLOGY::followTrivialPath(), IsLinkedChecked(), PNS::DIFF_PAIR::NLine(), PNS::DIFF_PAIR::PLine(), PNS::SHOVE::pushLineStack(), Rank(), PNS::OPTIMIZER::removeCachedSegments(), PNS::LINK_HOLDER::ShowLinks(), and PNS::TOPOLOGY::SimplifyLine().
|
inline |
Assign a shape to the line (a polyline/line chain).
Definition at line 121 of file pns_line.h.
References PNS::LINK_HOLDER::IsLinked(), PNS::LINK_HOLDER::LinkCount(), and ShapeCount().
|
inlineinherited |
Definition at line 265 of file pns_item.h.
References PNS::ITEM::Marker(), and PNS::MK_LOCKED.
Referenced by ROUTER_TOOL::InlineBreakTrack(), PNS::JOINT::IsLineCorner(), PNS::JOINT::NextSegment(), ROUTER_TOOL::performDragging(), and PNS::SHOVE::pushOrShoveVia().
|
inlineinherited |
Definition at line 271 of file pns_item.h.
References PNS::ITEM::m_routable.
Referenced by PNS::NODE::addSolid(), and PNS::NODE::removeSolidIndex().
|
inlineinherited |
Definition at line 282 of file pns_item.h.
References PNS::ITEM::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 170 of file pns_item.h.
References PNS::ITEM::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(), ClassOf(), PNS::SEGMENT::ClassOf(), PNS::SOLID::ClassOf(), PNS::VIA::ClassOf(), PNS::ITEM::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()(), ROUTER_TOOL::performDragging(), PNS::INDEX::Query(), PNS::NODE::Remove(), PNS::SEGMENT::SEGMENT(), PNS::SHOVE::shoveIteration(), PNS::OPTIMIZER::smartPadsSingle(), PNS::TOOL_BASE::snapToItem(), PNS::LINE_PLACER::Start(), PNS::DRAGGER::Start(), ROUTER_PREVIEW_ITEM::Update(), and PNS::LINE_PLACER::UpdateSizes().
|
inherited |
Definition at line 306 of file pns_item.cpp.
References PNS::ITEM::ARC_T, PNS::ITEM::DIFF_PAIR_T, PNS::ITEM::HOLE_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 203 of file pns_item.h.
References PNS::ITEM::Layers(), and PNS_LAYER_RANGE::Start().
Referenced by PNS::TOPOLOGY::AssembleTuningPath(), PNS::clipToOtherLine(), PNS::DRAGGER::CurrentLayer(), PNS::OPTIMIZER::fanoutCleanup(), PNS::SHOVE::fixupViaCollisions(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::MEANDER_PLACER_BASE::lineLength(), PNS::ROUTER::markViolations(), PNS::ROUTER::movePlacing(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::OPTIMIZER::CACHE_VISITOR::operator()(), PNS::LINE_PLACER::rhMarkObstacles(), 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 199 of file pns_item.h.
References PNS::ITEM::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::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(), PNS::ITEM::collideSimple(), comparePnsItems(), PNS_KICAD_IFACE::createBoardItem(), 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(), PNS::ITEM::Layer(), PNS::ITEM::LayersOverlap(), 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::LINE_PLACER::SetLayer(), PNS::SHOVE::shoveIteration(), PNS::COMPONENT_DRAGGER::Start(), ROUTER_PREVIEW_ITEM::Update(), PNS::TOOL_BASE::updateEndItem(), PNS::DIFF_PAIR::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 208 of file pns_item.h.
References PNS::ITEM::Layers(), and PNS_LAYER_RANGE::Overlaps().
Referenced by PNS::MEANDER_PLACER_BASE::lineLength(), PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingSegment(), PNS::NODE::rebuildJoint(), and PNS::SHOVE::ShoveObstacleLine().
|
inline |
Definition at line 137 of file pns_line.h.
References m_line.
Referenced by PNS::NODE::Add(), PNS::NODE::AssembleLine(), PNS::TOPOLOGY::AssembleTuningPath(), PNS::DIFF_PAIR_PLACER::attemptWalk(), PNS::CORNER_COUNT_LIMIT_CONSTRAINT::Check(), ClipToNearestObstacle(), PNS::MULTI_DRAGGER::Drag(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::handlePullback(), PNS::LINE_PLACER::handleSelfIntersections(), PNS::LINE_PLACER::initPlacement(), PNS::OPTIMIZER::mergeColinear(), PNS::OPTIMIZER::mergeFull(), PNS::LINE_PLACER::mergeHead(), PNS::OPTIMIZER::mergeObtuse(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onReverseCollidingVia(), PNS::DRAGGER::optimizeAndUpdateDraggedLine(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PCB_TUNING_PATTERN::recoverBaseline(), PNS::LINE_PLACER::reduceTail(), PNS::LINE_PLACER::rhWalkBase(), PNS::LINE_PLACER::routeStep(), PNS::OPTIMIZER::runSmartPads(), PNS::LINE_PLACER::SetLayer(), PNS::WALKAROUND::singleStep(), PNS::LINE_PLACER::splitHeadTail(), and PNS::LINE_PLACER::UnfixRoute().
|
inlineinherited |
Definition at line 40 of file pns_link_holder.h.
References alg::contains(), and PNS::LINK_HOLDER::m_links.
Referenced by PNS::NODE::Add(), PNS::NODE::AssembleLine(), and LinkVia().
|
inlineinherited |
Definition at line 84 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by IsLinkedChecked(), PNS::LINE_PLACER::removeLoops(), PNS::SHOVE::replaceLine(), PNS::SHOVE::Run(), and PNS::SHOVE::runOptimizer().
|
inlineinherited |
Definition at line 56 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::SHOVE::findRootLine(), PNS::TOPOLOGY::followTrivialPath(), PNS::SHOVE::popLineStack(), PNS::NODE::Remove(), PNS::OPTIMIZER::removeCachedSegments(), PCB_TUNING_PATTERN::removeToBaseline(), PNS::SHOVE::replaceLine(), PNS::COMPONENT_DRAGGER::Start(), PNS::SHOVE::touchRootLine(), and PNS::SHOVE::unwindLineStack().
|
inlineinherited |
Definition at line 57 of file pns_link_holder.h.
References PNS::LINK_HOLDER::m_links.
void LINE::LinkVia | ( | VIA * | aVia | ) |
Definition at line 1095 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::CPoint(), PNS::LINK_HOLDER::Link(), m_line, m_via, SHAPE_LINE_CHAIN::PointCount(), PNS::VIA::Pos(), and Reverse().
Referenced by PNS::SHOVE::pushOrShoveVia(), and PNS::SHOVE::Run().
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 123 of file pns_line.cpp.
References PNS::LINK_HOLDER::m_links, and PNS::ITEM::m_marker.
Referenced by PNS::SHOVE::onCollidingSolid().
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 142 of file pns_line.cpp.
References PNS::LINK_HOLDER::m_links, and PNS::ITEM::m_marker.
Referenced by PNS::ARC::ARC(), PNS::SHOVE::onCollidingLine(), PNS::SHOVE::onCollidingSolid(), PNS::SEGMENT::SEGMENT(), and PNS::SHOVE::shoveLineToHullSet().
|
inlinevirtualinherited |
Reimplemented in PNS::HOLE, and PNS::JOINT.
Definition at line 197 of file pns_item.h.
References PNS::ITEM::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::TOPOLOGY::AssembleCluster(), PNS::TOPOLOGY::AssembleDiffPair(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::KEEP_TOPOLOGY_CONSTRAINT::Check(), PNS::VIA::Clone(), PNS::ITEM::collideSimple(), comparePnsItems(), PNS_KICAD_IFACE::createBoardItem(), 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(), PNS::ITEM::Format(), PNS_PCBNEW_RULE_RESOLVER::getBoardItem(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS_PCBNEW_RULE_RESOLVER::IsNetTieExclusion(), PNS::ROUTER::isStartingPointRoutable(), LINE(), PNS::NODE::LockJoint(), PNS::VIA::MakeHandle(), PNS::LINE_PLACER::Move(), PNS::MEANDER_SKEW_PLACER::Move(), PNS::HOLE::Net(), PNS::JOINT::NextSegment(), PNS::VIA::operator=(), PNS::MEANDER_SKEW_PLACER::origPathLength(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::prepareInteractive(), 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::DIFF_PAIR_PLACER::Start(), PNS::LINE_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), PCB_TUNING_PATTERN::Update(), and PNS::VIA::VIA().
|
inlineinherited |
Definition at line 178 of file pns_item.h.
References PNS::ITEM::m_kind.
Referenced by PNS::DP_PRIMITIVE_PAIR::anchorDirection(), PNS::TOPOLOGY::AssembleCluster(), PNS::TOPOLOGY::AssembleTrivialPath(), PNS::ROUTER::BreakSegmentOrArc(), 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(), ROUTER_TOOL::InlineDrag(), isHole(), PNS::MEANDER_PLACER_BASE::lineLength(), 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::LINE_PLACER::SetLayer(), 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(), and PNS::SHOVE::unwindLineStack().
Definition at line 79 of file pns_line.cpp.
References PNS::OWNABLE_ITEM::BelongsTo(), PNS::VIA::Clone(), PNS::LINK_HOLDER::copyLinks(), m_blockingObstacle, PNS::ITEM::m_layers, m_line, PNS::ITEM::m_marker, PNS::ITEM::m_movable, PNS::ITEM::m_net, PNS::OWNABLE_ITEM::m_owner, PNS::ITEM::m_rank, m_snapThreshhold, m_via, m_width, PNS::ITEM::SetNet(), and PNS::OWNABLE_ITEM::SetOwner().
|
inlineinherited |
Return the owner of this item, or NULL if there's none.
Definition at line 71 of file pns_item.h.
References PNS::OWNABLE_ITEM::m_owner.
Referenced by PNS_PCBNEW_RULE_RESOLVER::Clearance(), PNS_KICAD_IFACE_BASE::inheritTrackWidth(), PNS::LINE_PLACER::Move(), PNS::ITEM::OwningNode(), PNS::NODE::Remove(), and PNS::LINE_PLACER::rhShoveOnly().
|
virtualinherited |
Definition at line 345 of file pns_item.cpp.
References PNS::OWNABLE_ITEM::Owner(), and PNS::ITEM::ParentPadVia().
Referenced by PNS::SHOVE::shoveIteration().
|
inlineinherited |
Definition at line 189 of file pns_item.h.
References PNS::ITEM::m_parent.
Referenced by PNS::HOLE::BoardItem(), PNS_KICAD_IFACE::createBoardItem(), PNS_KICAD_IFACE::DisplayItem(), PNS_KICAD_IFACE::HideItem(), isCopper(), PNS_PCBNEW_RULE_RESOLVER::IsDrilledHole(), PNS_KICAD_IFACE_BASE::IsFlashedOnLayer(), PNS_KICAD_IFACE::IsItemVisible(), PNS_PCBNEW_RULE_RESOLVER::IsKeepout(), PNS_PCBNEW_RULE_RESOLVER::IsNonPlatedSlot(), PNS_KICAD_IFACE::modifyBoardItem(), 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 280 of file pns_item.h.
Referenced by PNS::ITEM::IsFreePad(), PNS_PCBNEW_RULE_RESOLVER::IsNonPlatedSlot(), and PNS::ITEM::OwningNode().
|
inline |
Definition at line 141 of file pns_line.h.
References m_line, and SHAPE_LINE_CHAIN::PointCount().
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::MULTI_DRAGGER::Drag(), PNS::OPTIMIZER::fanoutCleanup(), PNS::getDanglingAnchor(), HasLoops(), PNS::LINE_PLACER::Move(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), PNS::OPTIMIZER::removeCachedSegments(), PNS::WALKAROUND::Route(), PNS::LINE_PLACER::route(), PNS::LINE_PLACER::routeStep(), PNS::TOPOLOGY::SimplifyLine(), PNS::LINE_PLACER::simplifyNewLine(), PNS::LINE_PLACER::splitHeadTail(), and PNS::DRAGGER::startDragSegment().
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 1117 of file pns_line.cpp.
References PNS::LINK_HOLDER::IsLinked(), PNS::LINK_HOLDER::m_links, and PNS::ITEM::m_rank.
Referenced by PNS::ARC::ARC(), PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onReverseCollidingVia(), PNS::SEGMENT::SEGMENT(), 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 PNS::ITEM::HasUniqueShapeLayers(), and PNS::ITEM::UniqueShapeLayers().
Referenced by PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), and PNS::VIA::PushoutForce().
void LINE::RemoveVia | ( | ) |
Definition at line 1315 of file pns_line.cpp.
References PNS::OWNABLE_ITEM::BelongsTo(), PNS::LINK_HOLDER::ContainsLink(), m_via, and PNS::LINK_HOLDER::Unlink().
Referenced by Clear(), ClipToNearestObstacle(), PNS::LINE_PLACER::FixRoute(), PNS::LINE_PLACER::initPlacement(), PNS::SHOVE::onReverseCollidingVia(), PNS::DIFF_PAIR::RemoveVias(), PNS::LINE_PLACER::SetLayer(), PNS::SHOVE::ShoveObstacleLine(), PNS::LINE_PLACER::splitHeadTail(), PNS::LINE_PLACER::ToggleVia(), and PNS::LINE_PLACER::UnfixRoute().
void LINE::Reverse | ( | ) |
Clip the line to the nearest obstacle, traversing from the line's start vertex (0).
Returns the clipped line.
Definition at line 1074 of file pns_line.cpp.
References m_line, PNS::LINK_HOLDER::m_links, and SHAPE_LINE_CHAIN::Reverse().
Referenced by AppendVia(), PNS::DRAGGER::findViaFanoutByHandle(), PNS::TOPOLOGY::followTrivialPath(), and LinkVia().
|
inline |
Definition at line 140 of file pns_line.h.
References m_line, and SHAPE_LINE_CHAIN::SegmentCount().
Referenced by PNS::NODE::AssembleLine(), PNS::MULTI_DRAGGER::findNewLeaderSegment(), PNS::LINE_PLACER::FlipPosture(), PNS::ROUTER::getNearestRatnestAnchor(), PNS::MEANDER_PLACER::HasPlacedAnything(), PNS::OPTIMIZER::mergeStep(), PNS::LINE_PLACER::Move(), PNS::OPTIMIZER::Optimize(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PNS::SHOVE::pushLineStack(), PNS::LINE_PLACER::removeLoops(), PNS::SHOVE::replaceLine(), PNS::SHOVE::Run(), PNS::LINE_PLACER::setInitialDirection(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::ShoveObstacleLine(), PNS::TOPOLOGY::SimplifyLine(), PNS::DP_MEANDER_PLACER::Start(), PNS::MEANDER_SKEW_PLACER::Start(), and PNS::Tighten().
|
inline |
Definition at line 216 of file pns_line.h.
References m_blockingObstacle.
Referenced by PNS::LINE_PLACER::rhMarkObstacles().
|
inlinevirtualinherited |
Reimplemented in PNS::SOLID, and PNS::VIA.
Definition at line 292 of file pns_item.h.
|
inlineinherited |
Definition at line 287 of file pns_item.h.
References PNS::ITEM::m_isCompoundShapePrimitive.
|
inlineinherited |
Definition at line 273 of file pns_item.h.
References PNS::ITEM::m_isFreePad.
|
inlineinherited |
Definition at line 202 of file pns_item.h.
References PNS::ITEM::m_layers.
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::LINE_PLACER::FixRoute(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PCB_TUNING_PATTERN::recoverBaseline(), PNS::DIFF_PAIR_PLACER::routeHead(), PNS::LINE_PLACER::SetLayer(), PNS::LINE_PLACER::UnfixRoute(), and PNS::DIFF_PAIR::updateLine().
|
inlineinherited |
Definition at line 200 of file pns_item.h.
References PNS::ITEM::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::SOLID::SetHole(), PNS::VIA::SetHole(), and PNS::VIA::VIA().
|
inlineinherited |
Definition at line 196 of file pns_item.h.
References PNS::ITEM::m_net.
Referenced by AppendVia(), PNS::NODE::AssembleLine(), PNS::LINE_PLACER::buildInitialLine(), PNS::VIA::Clone(), PCB_TUNING_PATTERN::EditStart(), PNS::LINE_PLACER::FixRoute(), PNS_KICAD_IFACE_BASE::ImportSizes(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), LINE(), operator=(), PNS::VIA::operator=(), PNS_LOG_FILE::parseCommonPnsProps(), PCB_TUNING_PATTERN::recoverBaseline(), 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 76 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(), AppendVia(), PNS::NODE::AssembleLine(), PNS::HOLE::Clone(), PNS::NODE::Commit(), PNS::NODE::doRemove(), LINE(), operator=(), PNS::ITEM_SET::Prepend(), PNS::NODE::Remove(), PNS::SOLID::SetHole(), and PNS::VIA::SetHole().
|
inlineinherited |
Definition at line 188 of file pns_item.h.
References PNS::ITEM::m_parent.
Referenced by PNS_KICAD_IFACE::AddItem(), PNS_KICAD_IFACE_GENERATOR::AddItem(), and PCB_TUNING_PATTERN::EditStart().
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 1107 of file pns_line.cpp.
References PNS::LINK_HOLDER::m_links, and PNS::ITEM::m_rank.
Referenced by PNS::SHOVE::onCollidingArc(), PNS::SHOVE::onCollidingLine(), PNS::SHOVE::onCollidingSegment(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onReverseCollidingVia(), and PNS::SHOVE::Run().
|
inlineinherited |
Definition at line 270 of file pns_item.h.
References PNS::ITEM::m_routable.
|
inline |
Return the shape of the line.
Definition at line 127 of file pns_line.h.
References m_line, m_width, and SHAPE_LINE_CHAIN::SetWidth().
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::clipToOtherLine(), PNS::OPTIMIZER::fanoutCleanup(), PNS::ROUTER::isStartingPointRoutable(), PNS::OPTIMIZER::mergeFull(), PNS::SHOVE::onReverseCollidingVia(), PNS::SHOVE::preShoveCleanup(), PNS::LINE_PLACER::rhWalkBase(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), PNS::TOPOLOGY::SimplifyLine(), PNS::LINE_PLACER::simplifyNewLine(), PNS::OPTIMIZER::smartPadsSingle(), PNS::LINE_PLACER::splitHeadTail(), PNS::tightenSegment(), PNS::LINE_PLACER::Trace(), and PNS::DIFF_PAIR::updateLine().
|
inline |
Definition at line 232 of file pns_line.h.
References m_snapThreshhold.
Referenced by PNS::DRAGGER::dragMarkObstacles(), PNS::DRAGGER::dragShove(), and PNS::DRAGGER::dragWalkaround().
|
inline |
Definition at line 201 of file pns_line.h.
References PNS::VIA::ALL_LAYERS, m_via, PNS::VIA::NORMAL, PNS::VIA::SetDiameter(), PNS::VIA::SetStackMode(), and PNS::VIA::StackMode().
Referenced by PNS::LINE_PLACER::UpdateSizes().
|
inline |
Definition at line 210 of file pns_line.h.
References m_via, and PNS::VIA::SetDrill().
Referenced by PNS::LINE_PLACER::UpdateSizes().
|
inline |
Return line width.
Definition at line 150 of file pns_line.h.
References m_line, m_width, and SHAPE_LINE_CHAIN::SetWidth().
Referenced by PNS::NODE::AssembleLine(), PNS::LINE_PLACER::initPlacement(), PNS::ROUTER::isStartingPointRoutable(), PCB_TUNING_PATTERN::recoverBaseline(), PNS::DIFF_PAIR::updateLine(), and PNS::LINE_PLACER::UpdateSizes().
|
inlineoverridevirtual |
Modifiable accessor to the underlying shape.
Reimplemented from PNS::ITEM.
Definition at line 134 of file pns_line.h.
References m_line.
Referenced by PNS::SHOVE::onCollidingVia().
|
inline |
Return the aIdx-th point of the line.
Definition at line 143 of file pns_line.h.
References m_line, and SHAPE_LINE_CHAIN::ShapeCount().
Referenced by IsLinkedChecked(), and PNS::LINE_PLACER::routeStep().
void PNS::LINE::ShowLinks | ( | ) | const |
|
private |
Definition at line 811 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::CSegment(), SEG::IntersectLines(), m_snapThreshhold, and SHAPE_LINE_CHAIN::SegmentCount().
Referenced by dragCorner45().
|
private |
Definition at line 853 of file pns_line.cpp.
References SEG::A, SHAPE_LINE_CHAIN::CSegment(), SEG::LineDistance(), m_snapThreshhold, and SHAPE_LINE_CHAIN::SegmentCount().
Referenced by dragSegment45().
|
inlinevirtualinherited |
Return a list of layers that have unique (potentially different) shapes.
Reimplemented in PNS::VIA.
Definition at line 237 of file pns_item.h.
Referenced by PNS::ITEM::RelevantShapeLayers().
|
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 47 of file pns_link_holder.h.
References alg::contains(), alg::delete_matching(), and PNS::LINK_HOLDER::m_links.
Referenced by RemoveVia(), and PNS::SHOVE::replaceLine().
|
overridevirtual |
Reimplemented from PNS::ITEM.
Definition at line 133 of file pns_line.cpp.
References PNS::LINK_HOLDER::m_links, and PNS::ITEM::m_marker.
Referenced by PNS::COMPONENT_DRAGGER::Drag(), PNS::DRAGGER::dragShove(), PNS::SHOVE::onCollidingSolid(), and PNS::DRAGGER::optimizeAndUpdateDraggedLine().
|
inline |
Definition at line 198 of file pns_line.h.
References m_via.
Referenced by PNS::NODE::CheckColliding(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::LINE_PLACER::FixRoute(), PNS::ROUTER::markViolations(), PNS::ROUTER::movePlacing(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingSolid(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::LINE_PLACER::rhShoveOnly(), PNS::LINE_PLACER::rhWalkBase(), PNS::WALKAROUND::Route(), PNS::SHOVE::Run(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::shoveLineFromLoneVia(), and PNS::SHOVE::ShoveObstacleLine().
|
inline |
Definition at line 199 of file pns_line.h.
References m_via.
bool LINE::Walkaround | ( | const SHAPE_LINE_CHAIN & | aObstacle, |
SHAPE_LINE_CHAIN & | aPath, | ||
bool | aCw | ||
) | const |
Print out all linked segments.
Definition at line 203 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::Append(), PNS::areNeighbours(), CLine(), CPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::Find(), findVertex(), PNS::HullIntersection(), INSIDE, SEG::NearestPoint(), OUTSIDE, SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN_BASE::PointInside(), SHAPE_LINE_CHAIN_BASE::PointOnEdge(), SHAPE_LINE_CHAIN::Reverse(), SHAPE_LINE_CHAIN::SegmentCount(), and SHAPE_LINE_CHAIN::Split().
bool PNS::LINE::Walkaround | ( | SHAPE_LINE_CHAIN | aObstacle, |
SHAPE_LINE_CHAIN & | aPre, | ||
SHAPE_LINE_CHAIN & | aWalk, | ||
SHAPE_LINE_CHAIN & | aPost, | ||
bool | aCw | ||
) | const |
Calculate a line tightly wrapping a convex hull of an obstacle object (aObstacle).
aPrePath | is the path from origin to the obstacle. |
aWalkaroundPath | is the path around the obstacle. |
aPostPath | is the path from obstacle till the end. |
aCW | determines whether to walk around in clockwise or counter-clockwise direction. |
Referenced by PNS::SHOVE::shoveLineFromLoneVia(), and PNS::SHOVE::shoveLineToHullSet().
|
inline |
Return true if the line is geometrically identical as line aOther.
Definition at line 157 of file pns_line.h.
References m_width.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), ChangedArea(), PNS::MEANDER_PLACER::doMove(), PNS::DRAGGER::dragMarkObstacles(), PNS::DRAGGER::dragShove(), PNS::DRAGGER::dragWalkaround(), PNS::OPTIMIZER::fanoutCleanup(), PNS::LINE_PLACER::FixRoute(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), PNS::LINE_PLACER::rhMarkObstacles(), PNS::SHOVE::shoveIteration(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::shoveLineToHullSet(), PNS::SHOVE::ShoveObstacleLine(), PNS::OPTIMIZER::smartPadsSingle(), PNS::LINE_PLACER::Start(), PNS::MEANDER_PLACER::Start(), and PNS::MEANDER_SKEW_PLACER::Start().
|
private |
For mark obstacle mode.
Definition at line 261 of file pns_line.h.
Referenced by GetBlockingObstacle(), LINE(), operator=(), and SetBlockingObstacle().
|
protectedinherited |
Definition at line 315 of file pns_item.h.
Referenced by PNS::ITEM::IsCompoundShapePrimitive(), PNS::ITEM::ITEM(), and PNS::ITEM::SetIsCompoundShapePrimitive().
|
protectedinherited |
Definition at line 314 of file pns_item.h.
Referenced by PNS::ITEM::IsFreePad(), PNS::ITEM::ITEM(), and PNS::ITEM::SetIsFreePad().
|
protectedinherited |
Definition at line 313 of file pns_item.h.
Referenced by PNS::HOLE::Clone(), PNS::VIA::Clone(), PNS::ITEM::IsVirtual(), PNS::ITEM::ITEM(), PNS::VIA::operator=(), PNS::VIA::VIA(), and PNS::VVIA::VVIA().
|
protectedinherited |
Definition at line 303 of file pns_item.h.
Referenced by PNS::ITEM::collideSimple(), PNS::ITEM::ITEM(), PNS::ITEM::Kind(), PNS::ITEM::KindStr(), and PNS::ITEM::OfKind().
|
protectedinherited |
Definition at line 306 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), PNS::ITEM::collideSimple(), PNS::JOINT::Dump(), PNS::VIA::EffectiveLayer(), PNS::ITEM::Format(), PNS::ITEM::ITEM(), PNS::JOINT::JOINT(), PNS::ITEM::Layers(), LINE(), PNS::JOINT::Merge(), operator=(), PNS::JOINT::Overlaps(), PNS::SEGMENT::SEGMENT(), PNS::SOLID::SetHole(), PNS::VIA::SetHole(), PNS::ITEM::SetLayer(), PNS::ITEM::SetLayers(), PNS::VIA::SetStackMode(), PNS::VIA::UniqueShapeLayers(), and PNS::JOINT::Unlink().
|
private |
The actual shape of the line.
Definition at line 254 of file pns_line.h.
Referenced by AppendVia(), ArcCount(), ChangedArea(), Clear(), CLine(), ClipVertexRange(), CompareGeometry(), CountCorners(), CPoint(), CSegment(), dragCorner45(), dragCornerFree(), dragSegment45(), FindSegment(), Line(), LinkVia(), operator=(), PointCount(), Reverse(), SegmentCount(), SetShape(), SetWidth(), Shape(), and ShapeCount().
|
protectedinherited |
Definition at line 114 of file pns_link_holder.h.
Referenced by PNS::LINK_HOLDER::ClearLinks(), PNS::DIFF_PAIR::ClearLinks(), ClipVertexRange(), PNS::LINK_HOLDER::ContainsLink(), PNS::LINK_HOLDER::copyLinks(), PNS::LINK_HOLDER::GetLink(), HasLockedSegments(), PNS::LINK_HOLDER::IsLinked(), PNS::LINK_HOLDER::Link(), PNS::LINK_HOLDER::LinkCount(), PNS::LINK_HOLDER::Links(), Mark(), Marker(), Rank(), Reverse(), SetRank(), PNS::LINK_HOLDER::ShowLinks(), PNS::LINK_HOLDER::Unlink(), and Unmark().
|
mutableprotectedinherited |
Definition at line 310 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), PNS::ITEM::ITEM(), LINE(), PNS::ITEM::Mark(), Mark(), PNS::ITEM::Marker(), Marker(), operator=(), PNS::VIA::operator=(), PNS::SEGMENT::SEGMENT(), PNS::ITEM::Unmark(), Unmark(), and PNS::VIA::VIA().
|
protectedinherited |
Definition at line 308 of file pns_item.h.
Referenced by PNS::ITEM::ITEM(), LINE(), operator=(), and PNS::SOLID::SOLID().
|
protectedinherited |
Definition at line 309 of file pns_item.h.
Referenced by AppendVia(), PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::SEGMENT::Clone(), PNS::ITEM::ITEM(), LINE(), PNS::ITEM::Net(), PNS::HOLE::Net(), operator=(), PNS::SEGMENT::SEGMENT(), and PNS::ITEM::SetNet().
|
protectedinherited |
Definition at line 87 of file pns_item.h.
Referenced by PNS::OWNABLE_ITEM::BelongsTo(), PNS::ITEM::ITEM(), operator=(), PNS::OWNABLE_ITEM::Owner(), and PNS::OWNABLE_ITEM::SetOwner().
|
protectedinherited |
Definition at line 305 of file pns_item.h.
Referenced by PNS::ITEM::BoardItem(), PNS::HOLE::BoardItem(), PNS::HOLE::Clone(), PNS::VIA::Clone(), PNS::ITEM::collideSimple(), PNS::ITEM::ITEM(), PNS::ITEM::Parent(), and PNS::ITEM::SetParent().
|
protectedinherited |
Definition at line 311 of file pns_item.h.
Referenced by PNS::ARC::ARC(), PNS::ARC::Clone(), PNS::HOLE::Clone(), PNS::SEGMENT::Clone(), PNS::VIA::Clone(), PNS::ITEM::ITEM(), LINE(), operator=(), PNS::VIA::operator=(), PNS::ITEM::Rank(), Rank(), PNS::SEGMENT::SEGMENT(), PNS::ITEM::SetRank(), SetRank(), and PNS::VIA::VIA().
|
protectedinherited |
Definition at line 312 of file pns_item.h.
Referenced by PNS::ITEM::IsRoutable(), PNS::ITEM::ITEM(), and PNS::ITEM::SetRoutable().
|
private |
Width to smooth out jagged segments.
Definition at line 258 of file pns_line.h.
Referenced by GetSnapThreshhold(), LINE(), operator=(), SetSnapThreshhold(), snapDraggedCorner(), and snapToNeighbourSegments().
|
private |
Definition at line 260 of file pns_line.h.
Referenced by AppendVia(), EndsWithVia(), LINE(), LinkVia(), operator=(), RemoveVia(), SetViaDiameter(), SetViaDrill(), Via(), and ~LINE().
|
private |
Our width.
Definition at line 255 of file pns_line.h.
Referenced by LINE(), operator=(), SetShape(), SetWidth(), and Width().