22#ifndef __PNS_TOPOLOGY_H
23#define __PNS_TOPOLOGY_H
71 std::pair<const JOINT*, const JOINT*>* aTerminalJoints =
nullptr,
72 bool aFollowLockedSegments =
false );
87 SOLID** aEndPad =
nullptr );
99 const JOINT** aTerminalJoint =
nullptr,
bool aFollowLockedSegments =
false );
Represent a contiguous set of PCB layers.
Basic class for a differential pair.
Base class for PNS router board items.
A 2D point on a given set of layers and belonging to a certain net, that links together a number of b...
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
Keep the router "world" - i.e.
ITEM * NearestUnconnectedItem(const JOINT *aStart, int *aAnchor=nullptr, int aKindMask=ITEM::ANY_T)
std::set< const JOINT * > JOINT_SET
bool LeadingRatLine(const LINE *aTrack, SHAPE_LINE_CHAIN &aRatLine)
const DIFF_PAIR AssembleDiffPair(SEGMENT *aStart)
bool NearestUnconnectedAnchorPoint(const LINE *aTrack, VECTOR2I &aPoint, LAYER_RANGE &aLayers, ITEM *&aItem)
const ITEM_SET ConnectedItems(const JOINT *aStart, int aKindMask=ITEM::ANY_T)
const JOINT_SET ConnectedJoints(const JOINT *aStart)
int64_t ShortestConnectionLength(ITEM *aFrom, ITEM *aTo)
bool followTrivialPath(LINE *aLine, bool aLeft, ITEM_SET &aSet, std::set< ITEM * > &aVisited, const JOINT **aTerminalJoint=nullptr, bool aFollowLockedSegments=false)
const int DP_PARALLELITY_THRESHOLD
const ITEM_SET AssembleTrivialPath(ITEM *aStart, std::pair< const JOINT *, const JOINT * > *aTerminalJoints=nullptr, bool aFollowLockedSegments=false)
Assemble a trivial path between two joints given a starting item.
const std::set< ITEM * > AssembleCluster(ITEM *aStart, int aLayer)
bool SimplifyLine(LINE *aLine)
const ITEM_SET AssembleTuningPath(ITEM *aStart, SOLID **aStartPad=nullptr, SOLID **aEndPad=nullptr)
Like AssembleTrivialPath, but follows the track length algorithm, which discards segments that are fu...
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
Push and Shove diff pair dimensions (gap) settings dialog.