|
|
| ~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. More...
|
| |
|
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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| const ITEM_SET | HitTest (const VECTOR2I &aPoint) const |
| | Find all items that contain the point aPoint. More...
|
| |
| bool | Add (std::unique_ptr< SEGMENT > aSegment, bool aAllowRedundant=false) |
| | Add an item to the current node. More...
|
| |
|
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. More...
|
| |
| void | Replace (ITEM *aOldItem, std::unique_ptr< ITEM > aNewItem) |
| | Replace an item with another one. More...
|
| |
|
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. More...
|
| |
| 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. More...
|
| |
|
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. More...
|
| |
| void | Commit (NODE *aNode) |
| | Apply the changes from a given branch (aNode) to the root branch. More...
|
| |
| JOINT * | FindJoint (const VECTOR2I &aPos, int aLayer, int aNet) |
| | Search for a joint at a given position, layer and belonging to given net. More...
|
| |
|
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. More...
|
| |
|
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).