|
| ~NODE () |
| Return the expected clearance between items a and b.
|
|
int | GetClearance (const ITEM *aA, const ITEM *aB) const |
|
int | GetHoleClearance (const ITEM *aA, const ITEM *aB) const |
|
int | GetHoleToHoleClearance (const ITEM *aA, const ITEM *aB) const |
| Return the pre-set worst case clearance between any pair of items.
|
|
int | GetMaxClearance () const |
| Set the worst-case clearance between any pair of items.
|
|
void | SetMaxClearance (int aClearance) |
| Assign a clearance resolution function object.
|
|
void | SetRuleResolver (RULE_RESOLVER *aFunc) |
|
RULE_RESOLVER * | GetRuleResolver () const |
| Return the number of joints.
|
|
int | JointCount () const |
| Return the number of nodes in the inheritance chain (wrs to the root node).
|
|
int | Depth () const |
|
int | QueryColliding (const ITEM *aItem, OBSTACLES &aObstacles, int aKindMask=ITEM::ANY_T, int aLimitCount=-1, bool aDifferentNetsOnly=true) |
| Find items colliding (closer than clearance) with the item aItem.
|
|
int | QueryJoints (const BOX2I &aBox, std::vector< JOINT * > &aJoints, LAYER_RANGE aLayerMask=LAYER_RANGE::All(), int aKindMask=ITEM::ANY_T) |
|
OPT_OBSTACLE | NearestObstacle (const LINE *aLine, int aKindMask=ITEM::ANY_T, const std::set< ITEM * > *aRestrictedSet=nullptr) |
| Follow the line in search of an obstacle that is nearest to the starting to the line's starting point.
|
|
OPT_OBSTACLE | CheckColliding (const ITEM *aItem, int aKindMask=ITEM::ANY_T) |
| Check if the item collides with anything else in the world, and if found, returns the obstacle.
|
|
OPT_OBSTACLE | CheckColliding (const ITEM_SET &aSet, int aKindMask=ITEM::ANY_T) |
| Check if any item in the set collides with anything else in the world, and if found, returns the obstacle.
|
|
const ITEM_SET | HitTest (const VECTOR2I &aPoint) const |
| Find all items that contain the point aPoint.
|
|
bool | Add (std::unique_ptr< SEGMENT > aSegment, bool aAllowRedundant=false) |
| Add an item to the current node.
|
|
void | Add (std::unique_ptr< SOLID > aSolid) |
|
void | Add (std::unique_ptr< VIA > aVia) |
|
bool | Add (std::unique_ptr< ARC > aArc, bool aAllowRedundant=false) |
|
void | Add (LINE &aLine, bool aAllowRedundant=false) |
|
void | Remove (ARC *aArc) |
| Remove an item from this branch.
|
|
void | Remove (SOLID *aSolid) |
|
void | Remove (VIA *aVia) |
|
void | Remove (SEGMENT *aSegment) |
|
void | Remove (ITEM *aItem) |
|
void | Remove (LINE &aLine) |
| Removes a line from this branch.
|
|
void | Replace (ITEM *aOldItem, std::unique_ptr< ITEM > aNewItem) |
| Replace an item with another one.
|
|
void | Replace (LINE &aOldLine, LINE &aNewLine) |
|
NODE * | Branch () |
| Create a lightweight copy (called branch) of self that tracks the changes (added/removed items) wrs to the root.
|
|
const LINE | AssembleLine (LINKED_ITEM *aSeg, int *aOriginSegmentIndex=nullptr, bool aStopAtLockedJoints=false, bool aFollowLockedSegments=false) |
| Follow the joint map to assemble a line connecting two non-trivial joints starting from segment aSeg.
|
|
void | Dump (bool aLong=false) |
|
void | GetUpdatedItems (ITEM_VECTOR &aRemoved, ITEM_VECTOR &aAdded) |
| Return the list of items removed and added in this branch with respect to the root branch.
|
|
void | Commit (NODE *aNode) |
| Apply the changes from a given branch (aNode) to the root branch.
|
|
JOINT * | FindJoint (const VECTOR2I &aPos, int aLayer, int aNet) |
| Search for a joint at a given position, layer and belonging to given net.
|
|
void | LockJoint (const VECTOR2I &aPos, const ITEM *aItem, bool aLock) |
|
JOINT * | FindJoint (const VECTOR2I &aPos, const ITEM *aItem) |
| Search for a joint at a given position, linked to given item.
|
|
int | FindLinesBetweenJoints (const JOINT &aA, const JOINT &aB, std::vector< LINE > &aLines) |
| Find the joints corresponding to the ends of line aLine.
|
|
void | FindLineEnds (const LINE &aLine, JOINT &aA, JOINT &aB) |
| Destroy all child nodes. Applicable only to the root node.
|
|
void | KillChildren () |
|
void | AllItemsInNet (int aNet, std::set< ITEM * > &aItems, int aKindMask=-1) |
|
void | ClearRanks (int aMarkerMask=MK_HEAD|MK_VIOLATION|MK_HOLE) |
|
void | RemoveByMarker (int aMarker) |
|
ITEM * | FindItemByParent (const class PNS_HORIZON_PARENT_ITEM *aParent, int net) |
|
bool | HasChildren () const |
|
NODE * | GetParent () const |
| Check if this branch contains an updated version of the m_item from the root branch.
|
|
bool | Overrides (ITEM *aItem) const |
|
void | FixupVirtualVias () |
|
Keep the router "world" - i.e.
all the tracks, vias, solids in a hierarchical and indexed way.
Features:
- spatial-indexed container for PCB item shapes.
- collision search & clearance checking.
- assembly of lines connecting joints, finding loops and unique paths.
- lightweight cloning/branching (for recursive optimization and shove springback).