| 
    KiCad PCB EDA Suite
    
   | 
 
Push and Shove diff pair dimensions (gap) settings dialog. More...
Classes | |
| class | ALGO_BASE | 
| Base class for all P&S algorithms (shoving, walkaround, line placement, dragging, etc.).  More... | |
| class | ANGLE_CONSTRAINT_45 | 
| class | ARC | 
| class | AREA_CONSTRAINT | 
| struct | COLLISION_SEARCH_CONTEXT | 
| struct | COLLISION_SEARCH_OPTIONS | 
| class | COMPONENT_DRAGGER | 
| COMPONENT_DRAGGER.  More... | |
| struct | CONSTRAINT | 
| An abstract function object, returning a design rule (clearance, diff pair gap, etc) required between two items.  More... | |
| class | CORNER_COUNT_LIMIT_CONSTRAINT | 
| class | COST_ESTIMATOR | 
| Calculate the cost of a given line, taking corner angles and total length into account.  More... | |
| class | DEBUG_DECORATOR | 
| class | DIFF_PAIR | 
| Basic class for a differential pair.  More... | |
| class | DIFF_PAIR_PLACER | 
| Single track placement algorithm.  More... | |
| class | DP_GATEWAY | 
| Define a "gateway" for routing a differential pair - e.g.  More... | |
| class | DP_GATEWAYS | 
| A set of gateways calculated for the cursor or starting/ending primitive pair.  More... | |
| class | DP_MEANDER_PLACER | 
| Differential Pair length-matching/meandering tool.  More... | |
| class | DP_PRIMITIVE_PAIR | 
| Store starting/ending primitives (pads, vias or segments) for a differential pair.  More... | |
| class | DRAG_ALGO | 
| DRAG_ALGO.  More... | |
| class | DRAGGER | 
| DRAGGER.  More... | |
| class | FIXED_TAIL | 
| struct | HIT_VISITOR | 
| class | HOLE | 
| class | INDEX | 
| INDEX.  More... | |
| class | ITEM | 
| Base class for PNS router board items.  More... | |
| class | ITEM_OWNER | 
| class | ITEM_SET | 
| class | JOINT | 
| A 2D point on a given set of layers and belonging to a certain net, that links together a number of board items.  More... | |
| class | KEEP_TOPOLOGY_CONSTRAINT | 
| class | LAYER_CONTEXT_SETTER | 
| class | LINE | 
| 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... | |
| class | LINE_PLACER | 
| Single track placement algorithm.  More... | |
| class | LINK_HOLDER | 
| class | LINKED_ITEM | 
| class | LOGGER | 
| class | MEANDER_PLACER | 
| Single track length matching/meandering tool.  More... | |
| class | MEANDER_PLACER_BASE | 
| Base class for Single trace & Differential pair meandering tools, as both of them share a lot of code.  More... | |
| class | MEANDER_SETTINGS | 
| Dimensions for the meandering algorithm.  More... | |
| class | MEANDER_SHAPE | 
| The geometry of a single meander.  More... | |
| class | MEANDER_SKEW_PLACER | 
| MEANDER_SKEW_PLACER.  More... | |
| class | MEANDERED_LINE | 
| Represent a set of meanders fitted over a single or two lines.  More... | |
| class | MOUSE_TRAIL_TRACER | 
| class | MULTI_DRAGGER | 
| MULTI_DRAGGER.  More... | |
| class | NODE | 
| Keep the router "world" - i.e.  More... | |
| struct | OBSTACLE | 
| Hold an object colliding with another object, along with some useful data about the collision.  More... | |
| class | OBSTACLE_VISITOR | 
| class | OPT_CONSTRAINT | 
| class | OPTIMIZER | 
| Perform various optimizations of the lines being routed, attempting to make the lines shorter and less cornery.  More... | |
| class | OWNABLE_ITEM | 
| class | PLACEMENT_ALGO | 
| PLACEMENT_ALGO.  More... | |
| class | PRESERVE_VERTEX_CONSTRAINT | 
| class | RESTRICT_VERTEX_RANGE_CONSTRAINT | 
| class | ROUTER | 
| class | ROUTER_IFACE | 
| ROUTER.  More... | |
| class | ROUTING_SETTINGS | 
| Contain all persistent settings of the router, such as the mode, optimization effort, etc.  More... | |
| class | RULE_RESOLVER | 
| class | SEGMENT | 
| class | SHOVE | 
| The actual Push and Shove algorithm.  More... | |
| class | SIZES_SETTINGS | 
| class | SOLID | 
| class | TIME_LIMIT | 
| class | TOOL_BASE | 
| class | TOPOLOGY | 
| class | VIA | 
| struct | VIA_HANDLE | 
| class | VVIA | 
| class | WALKAROUND | 
Typedefs | |
| typedef void * | NET_HANDLE | 
Functions | |
| static DIRECTION_45::AngleType | angle (const VECTOR2I &a, const VECTOR2I &b) | 
| static bool | checkGap (const SHAPE_LINE_CHAIN &p, const SHAPE_LINE_CHAIN &n, int gap) | 
| static VECTOR2I | makeGapVector (VECTOR2I dir, int length) | 
| bool | commonParallelProjection (SEG p, SEG n, SEG &pClip, SEG &nClip) | 
| OPT_VECTOR2I | getDanglingAnchor (NODE *aNode, ITEM *aItem) | 
| static void | dumpObstacles (const PNS::NODE::OBSTACLES &obstacles) | 
| static bool | shouldWeConsiderHoleCollisions (const ITEM *aItem, const ITEM *aHead) | 
| template<typename T, typename S> | |
| std::unique_ptr< T > | ItemCast (std::unique_ptr< S > aPtr) | 
| template<typename T> | |
| std::unique_ptr< typename std::remove_const< T >::type > | Clone (const T &aItem) | 
| bool | operator== (JOINT::HASH_TAG const &aP1, JOINT::HASH_TAG const &aP2) | 
| static int | areNeighbours (int x, int y, int max=0) | 
| SHAPE_LINE_CHAIN | dragCornerInternal (const SHAPE_LINE_CHAIN &aOrigin, const VECTOR2I &aP, DIRECTION_45 aPreferredEndingDirection=DIRECTION_45()) | 
| static void | extendBox (BOX2I &aBox, bool &aDefined, const VECTOR2I &aP) | 
| int | findAmplitudeBinarySearch (MEANDER_SHAPE &aCopy, int targetLength, int minAmp, int maxAmp) | 
| int | findAmplitudeForLength (MEANDER_SHAPE *m, int targetLength, int minAmp, int maxAmp) | 
| bool | clipToOtherLine (NODE *aNode, const LINE &aRef, LINE &aClipped) | 
| static bool | pointInside2 (const SHAPE_LINE_CHAIN &aL, const VECTOR2I &aP) | 
| Determine if a point is located within a given polygon.   | |
| int | findCoupledVertices (const VECTOR2I &aVertex, const SEG &aOrigSeg, const SHAPE_LINE_CHAIN &aCoupled, DIFF_PAIR *aPair, int *aIndices) | 
| bool | verifyDpBypass (NODE *aNode, DIFF_PAIR *aPair, bool aRefIsP, const SHAPE_LINE_CHAIN &aNewRef, const SHAPE_LINE_CHAIN &aNewCoupled) | 
| bool | coupledBypass (NODE *aNode, DIFF_PAIR *aPair, bool aRefIsP, const SHAPE_LINE_CHAIN &aRef, const SHAPE_LINE_CHAIN &aRefBypass, const SHAPE_LINE_CHAIN &aCoupled, SHAPE_LINE_CHAIN &aNewCoupled) | 
| bool | checkDpColliding (NODE *aNode, DIFF_PAIR *aPair, bool aIsP, const SHAPE_LINE_CHAIN &aPath) | 
| static int64_t | shovedArea (const SHAPE_LINE_CHAIN &aOld, const SHAPE_LINE_CHAIN &aNew) | 
| bool | tightenSegment (bool dir, NODE *aNode, const LINE &cur, const SHAPE_LINE_CHAIN &in, SHAPE_LINE_CHAIN &out) | 
| void | Tighten (NODE *aNode, const SHAPE_LINE_CHAIN &aOldLine, const LINE &aNewLine, LINE &aOptimized) | 
| void | removeHead (NODE *aNode, LINE &head) | 
| const SHAPE_LINE_CHAIN | OctagonalHull (const VECTOR2I &aP0, const VECTOR2I &aSize, int aClearance, int aChamfer) | 
| const SHAPE_LINE_CHAIN | ArcHull (const SHAPE_ARC &aSeg, int aClearance, int aWalkaroundThickness) | 
| Various utility functions.   | |
| static bool | IsSegment45Degree (const SEG &aS) | 
| template<typename T> | |
| int | sgn (T val) | 
| const SHAPE_LINE_CHAIN | SegmentHull (const SHAPE_SEGMENT &aSeg, int aClearance, int aWalkaroundThickness) | 
| static void | MoveDiagonal (SEG &aDiagonal, const SHAPE_LINE_CHAIN &aVertices, int aClearance) | 
| const SHAPE_LINE_CHAIN | ConvexHull (const SHAPE_SIMPLE &aConvex, int aClearance) | 
| Function ConvexHull()   | |
| SHAPE_RECT | ApproximateSegmentAsRect (const SHAPE_SEGMENT &aSeg) | 
| OPT_BOX2I | ChangedArea (const ITEM *aItemA, const ITEM *aItemB) | 
| OPT_BOX2I | ChangedArea (const LINE &aLineA, const LINE &aLineB) | 
| void | HullIntersection (const SHAPE_LINE_CHAIN &hull, const SHAPE_LINE_CHAIN &line, SHAPE_LINE_CHAIN::INTERSECTIONS &ips) | 
| const SHAPE_LINE_CHAIN | BuildHullForPrimitiveShape (const SHAPE *aShape, int aClearance, int aWalkaroundThickness) | 
| void | NodeStats (DEBUG_DECORATOR *dbg, wxString label, PNS::NODE *node) | 
| static wxString | policy2string (WALKAROUND::WALK_POLICY policy) | 
Variables | |
| const int | LENGTH_TARGET_TOLERANCE = 20 | 
| static ROUTER * | theRouter | 
| const int | pnsSchemaVersion = 0 | 
| constexpr int | HULL_MARGIN = 10 | 
Push and Shove diff pair dimensions (gap) settings dialog.
| typedef void* PNS::NET_HANDLE | 
Definition at line 55 of file pns_item.h.
      
  | 
  strong | 
| Enumerator | |
|---|---|
| CT_CLEARANCE | |
| CT_DIFF_PAIR_GAP | |
| CT_LENGTH | |
| CT_WIDTH | |
| CT_VIA_DIAMETER | |
| CT_VIA_HOLE | |
| CT_HOLE_CLEARANCE | |
| CT_EDGE_CLEARANCE | |
| CT_HOLE_TO_HOLE | |
| CT_DIFF_PAIR_SKEW | |
| CT_MAX_UNCOUPLED | |
| CT_PHYSICAL_CLEARANCE | |
Definition at line 51 of file pns_node.h.
| enum PNS::DRAG_MODE | 
| Enumerator | |
|---|---|
| DM_CORNER | |
| DM_SEGMENT | |
| DM_VIA | |
| DM_FREE_ANGLE | |
| DM_ARC | |
| DM_ANY | |
| DM_COMPONENT | |
Definition at line 70 of file pns_router.h.
| enum PNS::LineMarker | 
| Enumerator | |
|---|---|
| MK_HEAD | |
| MK_VIOLATION | |
| MK_LOCKED | |
| MK_DP_COUPLED | |
Definition at line 42 of file pns_item.h.
| enum PNS::MEANDER_SIDE | 
| Enumerator | |
|---|---|
| MEANDER_SIDE_LEFT | |
| MEANDER_SIDE_DEFAULT | |
| MEANDER_SIDE_RIGHT | |
Definition at line 57 of file pns_meander.h.
| enum PNS::MEANDER_STYLE | 
| Enumerator | |
|---|---|
| MEANDER_STYLE_ROUND | |
| MEANDER_STYLE_CHAMFER | |
Definition at line 51 of file pns_meander.h.
| enum PNS::MEANDER_TYPE | 
Shapes of available meanders.
| Enumerator | |
|---|---|
| MT_SINGLE | |
| MT_START | |
| MT_FINISH | |
| MT_TURN | |
| MT_CHECK_START | |
| MT_CHECK_FINISH | |
| MT_CORNER | |
| MT_ARC | |
| MT_EMPTY | |
Definition at line 38 of file pns_meander.h.
| enum PNS::PNS_MODE | 
< Routing modes
| Enumerator | |
|---|---|
| RM_MarkObstacles | Ignore collisions, mark obstacles.  | 
| RM_Shove | Only shove.  | 
| RM_Walkaround | Only walk around.  | 
Definition at line 39 of file pns_routing_settings.h.
| Enumerator | |
|---|---|
| OE_LOW | |
| OE_MEDIUM | |
| OE_FULL | |
Definition at line 47 of file pns_routing_settings.h.
| enum PNS::ROUTER_MODE | 
| Enumerator | |
|---|---|
| PNS_MODE_ROUTE_SINGLE | |
| PNS_MODE_ROUTE_DIFF_PAIR | |
| PNS_MODE_TUNE_SINGLE | |
| PNS_MODE_TUNE_DIFF_PAIR | |
| PNS_MODE_TUNE_DIFF_PAIR_SKEW | |
Definition at line 62 of file pns_router.h.
| enum PNS::SHOVE_POLICY | 
| Enumerator | |
|---|---|
| SHP_DEFAULT | |
| SHP_SHOVE | |
| SHP_WALK_FORWARD | |
| SHP_WALK_BACK | |
| SHP_IGNORE | |
| SHP_DONT_OPTIMIZE | |
Definition at line 2611 of file pns_shove.cpp.
      
  | 
  static | 
Definition at line 173 of file pns_diff_pair.cpp.
References DIRECTION_45::Angle().
Referenced by PNS::DP_GATEWAYS::BuildGeneric(), PNS::OPTIMIZER::circleBreakouts(), PNS::OPTIMIZER::customBreakouts(), PNS::LINE_PLACER::handlePullback(), and PNS::LINE_PLACER::Start().
| SHAPE_RECT PNS::ApproximateSegmentAsRect | ( | const SHAPE_SEGMENT & | aSeg | ) | 
Definition at line 356 of file pns_utils.cpp.
References SEG::A, std::abs(), SEG::B, delta, SHAPE_SEGMENT::GetSeg(), SHAPE_SEGMENT::GetWidth(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::OPTIMIZER::computeBreakouts().
| const SHAPE_LINE_CHAIN PNS::ArcHull | ( | const SHAPE_ARC & | aArc, | 
| int | aClearance, | ||
| int | aWalkaroundThickness ) | 
Various utility functions.
Definition at line 68 of file pns_utils.cpp.
References A::A(), SHAPE_LINE_CHAIN::Append(), ARC_LOW_DEF, EDA_ANGLE::AsDegrees(), SHAPE_ARC::ConvertToPolyline(), SHAPE_LINE_CHAIN::CSegment(), SHAPE_ARC::DefaultAccuracyForPCB(), SHAPE_ARC::GetCenter(), SHAPE_ARC::GetCentralAngle(), SHAPE_ARC::GetChord(), SHAPE_ARC::GetRadius(), SHAPE_ARC::GetWidth(), SEG::Length(), OctagonalHull(), VECTOR2< T >::Perpendicular(), VECTOR2< T >::Resize(), SHAPE_LINE_CHAIN::Reverse(), SHAPE_LINE_CHAIN::SetClosed(), and SEG::Side().
Referenced by BuildHullForPrimitiveShape(), and PNS::ARC::Hull().
      
  | 
  static | 
Definition at line 235 of file pns_line.cpp.
References areNeighbours().
Referenced by areNeighbours(), and PNS::LINE::Walkaround().
| const SHAPE_LINE_CHAIN PNS::BuildHullForPrimitiveShape | ( | const SHAPE * | aShape, | 
| int | aClearance, | ||
| int | aWalkaroundThickness ) | 
Definition at line 478 of file pns_utils.cpp.
References ArcHull(), circle(), ConvexHull(), SHAPE_RECT::GetPosition(), SHAPE_RECT::GetSize(), OctagonalHull(), SegmentHull(), SH_ARC, SH_CIRCLE, SH_RECT, SH_SEGMENT, SH_SIMPLE, SHAPE_TYPE_asString(), and SHAPE_BASE::Type().
Referenced by PNS::HOLE::Hull(), and PNS::SOLID::Hull().
Definition at line 369 of file pns_utils.cpp.
References PNS::LINE::ChangedArea(), PNS::VIA::ChangedArea(), PNS::ITEM::LINE_T, PNS::ITEM::OfKind(), and PNS::ITEM::VIA_T.
Referenced by PNS::SHOVE::replaceItems(), and PNS::SHOVE::replaceLine().
Definition at line 389 of file pns_utils.cpp.
References PNS::LINE::ChangedArea().
| bool PNS::checkDpColliding | ( | NODE * | aNode, | 
| DIFF_PAIR * | aPair, | ||
| bool | aIsP, | ||
| const SHAPE_LINE_CHAIN & | aPath ) | 
Definition at line 1272 of file pns_optimizer.cpp.
References PNS::NODE::CheckColliding(), PNS::DIFF_PAIR::NLine(), and PNS::DIFF_PAIR::PLine().
      
  | 
  static | 
Definition at line 182 of file pns_diff_pair.cpp.
References SHAPE_LINE_CHAIN::CSegment(), SHAPE_LINE_CHAIN::SegmentCount(), SEG::Square(), and SEG::SquaredDistance().
Referenced by PNS::DIFF_PAIR::BuildInitial().
Definition at line 288 of file pns_multi_dragger.cpp.
References PNS::LINE::CLine(), PNS::ITEM::Collide(), PNS::ITEM::Layer(), SHAPE_LINE_CHAIN::Length(), SHAPE_LINE_CHAIN::PointAlong(), PNS::LINE::SetShape(), SHAPE_LINE_CHAIN::Slice(), and SHAPE_LINE_CHAIN::Split().
Referenced by PNS::MULTI_DRAGGER::multidragMarkObstacles().
| std::unique_ptr< typename std::remove_const< T >::type > PNS::Clone | ( | const T & | aItem | ) | 
Definition at line 344 of file pns_item.h.
References T.
Referenced by PNS::DRAGGER::dragViaMarkObstacles(), PNS::DRAGGER::dragViaWalkaround(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::LINE_PLACER::FixRoute(), PNS::SHOVE::pushOrShoveVia(), PNS::SHOVE::Run(), PNS::LINE_PLACER::SplitAdjacentArcs(), and PNS::LINE_PLACER::SplitAdjacentSegments().
Definition at line 786 of file pns_diff_pair.cpp.
References SEG::A, SEG::B, SEG::LineProject(), rescale(), SEG::SquaredLength(), SEG::TCoef(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::TOPOLOGY::AssembleDiffPair(), PNS::DIFF_PAIR::CoupledLength(), PNS::DIFF_PAIR::CoupledLength(), and PNS::DIFF_PAIR::CoupledSegmentPairs().
| const SHAPE_LINE_CHAIN PNS::ConvexHull | ( | const SHAPE_SIMPLE & | aConvex, | 
| int | aClearance ) | 
Function ConvexHull()
Creates an octagonal hull around a convex polygon.
| aConvex | The convex polygon. | 
| aClearance | The minimum distance between polygon and hull. | 
Definition at line 300 of file pns_utils.cpp.
References SHAPE_LINE_CHAIN::Append(), SHAPE_SIMPLE::BBox(), BOX2< Vec >::GetHeight(), BOX2< Vec >::GetOrigin(), BOX2< Vec >::GetSize(), BOX2< Vec >::GetWidth(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), SEG::IntersectLines(), MoveDiagonal(), BOX2< Vec >::Normalize(), SHAPE_LINE_CHAIN::SetClosed(), and SHAPE_SIMPLE::Vertices().
Referenced by BuildHullForPrimitiveShape().
| bool PNS::coupledBypass | ( | NODE * | aNode, | 
| DIFF_PAIR * | aPair, | ||
| bool | aRefIsP, | ||
| const SHAPE_LINE_CHAIN & | aRef, | ||
| const SHAPE_LINE_CHAIN & | aRefBypass, | ||
| const SHAPE_LINE_CHAIN & | aCoupled, | ||
| SHAPE_LINE_CHAIN & | aNewCoupled ) | 
Definition at line 1215 of file pns_optimizer.cpp.
References std::abs(), DIRECTION_45::BuildInitialTrace(), PNS::DIFF_PAIR::CoupledLength(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CSegment(), delta, findCoupledVertices(), DIRECTION_45::IsDiagonal(), SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN::Replace(), SHAPE_LINE_CHAIN::Reverse(), and verifyDpBypass().
Referenced by PNS::OPTIMIZER::mergeDpStep().
| SHAPE_LINE_CHAIN PNS::dragCornerInternal | ( | const SHAPE_LINE_CHAIN & | aOrigin, | 
| const VECTOR2I & | aP, | ||
| DIRECTION_45 | aPreferredEndingDirection = DIRECTION_45() ) | 
Definition at line 669 of file pns_line.cpp.
References DIRECTION_45::BuildInitialTrace(), SHAPE_LINE_CHAIN::CLastPoint(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CPoints(), SHAPE_LINE_CHAIN::CSegment(), dragCornerInternal(), DIRECTION_45::IsDiagonal(), path, SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN::SegmentCount(), SHAPE_LINE_CHAIN::Slice(), and DIRECTION_45::UNDEFINED.
Referenced by PNS::LINE::dragCorner45(), and dragCornerInternal().
      
  | 
  static | 
Definition at line 34 of file pns_item.cpp.
Definition at line 1247 of file pns_line.cpp.
References extendBox(), and BOX2< Vec >::Merge().
Referenced by PNS::LINE::ChangedArea(), and extendBox().
| int PNS::findAmplitudeBinarySearch | ( | MEANDER_SHAPE & | aCopy, | 
| int | targetLength, | ||
| int | minAmp, | ||
| int | maxAmp ) | 
Definition at line 90 of file pns_meander_placer_base.cpp.
References std::abs(), PNS::MEANDER_SHAPE::CurrentLength(), findAmplitudeBinarySearch(), left, LENGTH_TARGET_TOLERANCE, PNS::MEANDER_SHAPE::Resize(), and right.
Referenced by findAmplitudeBinarySearch(), and findAmplitudeForLength().
| int PNS::findAmplitudeForLength | ( | MEANDER_SHAPE * | m, | 
| int | targetLength, | ||
| int | minAmp, | ||
| int | maxAmp ) | 
Definition at line 134 of file pns_meander_placer_base.cpp.
References std::abs(), PNS::MEANDER_SHAPE::Amplitude(), PNS::MEANDER_SHAPE::BaselineLength(), copy, PNS::MEANDER_SHAPE::CurrentLength(), findAmplitudeBinarySearch(), and LENGTH_TARGET_TOLERANCE.
Referenced by PNS::MEANDER_PLACER_BASE::tuneLineLength().
| int PNS::findCoupledVertices | ( | const VECTOR2I & | aVertex, | 
| const SEG & | aOrigSeg, | ||
| const SHAPE_LINE_CHAIN & | aCoupled, | ||
| DIFF_PAIR * | aPair, | ||
| int * | aIndices ) | 
Definition at line 1169 of file pns_optimizer.cpp.
References SEG::ApproxParallel(), SHAPE_LINE_CHAIN::CSegment(), PNS::DIFF_PAIR::GapConstraint(), SEG::LineProject(), RANGED_NUM< T >::Matches(), SHAPE_LINE_CHAIN::SegmentCount(), and PNS::DIFF_PAIR::Width().
Referenced by coupledBypass().
| OPT_VECTOR2I PNS::getDanglingAnchor | ( | NODE * | aNode, | 
| ITEM * | aItem ) | 
Definition at line 460 of file pns_diff_pair_placer.cpp.
References SEG::A, PNS::ITEM::Anchor(), PNS::ARC::Arc(), PNS::ITEM::ARC_T, SEG::B, PNS::LINE::CPoint(), PNS::NODE::FindJoint(), SHAPE_ARC::GetP0(), SHAPE_ARC::GetP1(), PNS::ITEM::Kind(), PNS::ITEM::LINE_T, PNS::JOINT::LinkCount(), PNS::LINE::PointCount(), PNS::SEGMENT::Seg(), PNS::ITEM::SEGMENT_T, PNS::ITEM::SOLID_T, and PNS::ITEM::VIA_T.
Referenced by PNS::DIFF_PAIR_PLACER::FindDpPrimitivePair().
| void PNS::HullIntersection | ( | const SHAPE_LINE_CHAIN & | hull, | 
| const SHAPE_LINE_CHAIN & | line, | ||
| SHAPE_LINE_CHAIN::INTERSECTIONS & | ips ) | 
Definition at line 395 of file pns_utils.cpp.
References SEG::A, SEG::B, SHAPE_LINE_CHAIN::CSegment(), SHAPE_LINE_CHAIN::Intersect(), SHAPE_LINE_CHAIN::PointCount(), SHAPE_LINE_CHAIN::SegmentCount(), and SHAPE_LINE_CHAIN::INTERSECTION::valid.
Referenced by PNS::NODE::NearestObstacle(), and PNS::LINE::Walkaround().
      
  | 
  static | 
Definition at line 156 of file pns_utils.cpp.
References SEG::A, std::abs(), SEG::B, delta, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SegmentHull().
Definition at line 336 of file pns_item.h.
References T.
Referenced by PNS::NODE::FixupVirtualVias().
Definition at line 401 of file pns_diff_pair.cpp.
References VECTOR2< T >::EuclideanNorm(), and VECTOR2< T >::Resize().
Referenced by PNS::DP_GATEWAYS::BuildForCursor(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), and PNS::DP_GATEWAYS::BuildGeneric().
      
  | 
  static | 
Definition at line 289 of file pns_utils.cpp.
References SEG::A, SEG::B, and SHAPE_LINE_CHAIN::NearestPoint().
Referenced by ConvexHull().
| void PNS::NodeStats | ( | DEBUG_DECORATOR * | dbg, | 
| wxString | label, | ||
| PNS::NODE * | node ) | 
Definition at line 535 of file pns_utils.cpp.
References BLUE, PNS::NODE::Depth(), PNS::NODE::GetUpdatedItems(), PNS_DBG, PNS_DBGN, and RED.
| const SHAPE_LINE_CHAIN PNS::OctagonalHull | ( | const VECTOR2I & | aP0, | 
| const VECTOR2I & | aSize, | ||
| int | aClearance, | ||
| int | aChamfer ) | 
Definition at line 37 of file pns_utils.cpp.
References SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::SetClosed(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by ArcHull(), BuildHullForPrimitiveShape(), PNS::HOLE::Hull(), PNS::VIA::Hull(), and SegmentHull().
      
  | 
  inline | 
Definition at line 373 of file pns_joint.h.
References PNS::JOINT::HASH_TAG::net, and PNS::JOINT::HASH_TAG::pos.
      
  | 
  static | 
Determine if a point is located within a given polygon.
| aL | Polygon | 
| aP | Point to check for location within the polygon | 
Definition at line 318 of file pns_optimizer.cpp.
References SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::IsClosed(), SHAPE_LINE_CHAIN::PointCount(), result, SHAPE_LINE_CHAIN::SegmentCount(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::KEEP_TOPOLOGY_CONSTRAINT::Check().
      
  | 
  static | 
Definition at line 93 of file pns_walkaround.cpp.
References PNS::WALKAROUND::WP_CCW, PNS::WALKAROUND::WP_CW, and PNS::WALKAROUND::WP_SHORTEST.
Definition at line 2261 of file pns_shove.cpp.
References PNS::LINK_HOLDER::Links(), and PNS::NODE::Remove().
| const SHAPE_LINE_CHAIN PNS::SegmentHull | ( | const SHAPE_SEGMENT & | aSeg, | 
| int | aClearance, | ||
| int | aWalkaroundThickness ) | 
Definition at line 180 of file pns_utils.cpp.
References SEG::A, std::abs(), SHAPE_LINE_CHAIN::Append(), SEG::B, SHAPE_LINE_CHAIN::CSegment(), SHAPE_SEGMENT::GetSeg(), SHAPE_SEGMENT::GetWidth(), IsSegment45Degree(), KiROUND(), SEG::Length(), OctagonalHull(), VECTOR2< T >::Perpendicular(), VECTOR2< T >::Resize(), SHAPE_LINE_CHAIN::Reverse(), SHAPE_LINE_CHAIN::SetClosed(), sgn(), SEG::Side(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by BuildHullForPrimitiveShape(), and PNS::SEGMENT::Hull().
Definition at line 49 of file pns_item.cpp.
References PNS::VIA::Drill(), dyn_cast(), PNS::ITEM::HOLE_T, PNS::ITEM::Net(), PNS::ITEM::OfKind(), PNS::VIA::PadstackMatches(), PNS::HOLE::ParentPadVia(), and PNS::VIA::Pos().
Referenced by PNS::ITEM::collideSimple().
      
  | 
  static | 
Definition at line 1390 of file pns_optimizer.cpp.
References std::abs(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::PointCount(), v1, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Tighten().
| void PNS::Tighten | ( | NODE * | aNode, | 
| const SHAPE_LINE_CHAIN & | aOldLine, | ||
| const LINE & | aNewLine, | ||
| LINE & | aOptimized ) | 
Definition at line 1510 of file pns_optimizer.cpp.
References std::abs(), PNS::LINE::CLine(), LINE, SHAPE_LINE_CHAIN::Replace(), PNS::LINE::SegmentCount(), SHAPE_LINE_CHAIN::SegmentCount(), shovedArea(), SHAPE_LINE_CHAIN::Simplify2(), SHAPE_LINE_CHAIN::Slice(), and tightenSegment().
| bool PNS::tightenSegment | ( | bool | dir, | 
| NODE * | aNode, | ||
| const LINE & | cur, | ||
| const SHAPE_LINE_CHAIN & | in, | ||
| SHAPE_LINE_CHAIN & | out ) | 
Definition at line 1412 of file pns_optimizer.cpp.
References SEG::A, DIRECTION_45::ANG_RIGHT, DIRECTION_45::Angle(), SHAPE_LINE_CHAIN::Append(), SEG::B, center, PNS::NODE::CheckColliding(), SHAPE_LINE_CHAIN::Clear(), SHAPE_LINE_CHAIN::CSegment(), DIRECTION_45::IsObtuse(), SEG::Length(), VECTOR2< T >::Resize(), and PNS::LINE::SetShape().
Referenced by Tighten().
| bool PNS::verifyDpBypass | ( | NODE * | aNode, | 
| DIFF_PAIR * | aPair, | ||
| bool | aRefIsP, | ||
| const SHAPE_LINE_CHAIN & | aNewRef, | ||
| const SHAPE_LINE_CHAIN & | aNewCoupled ) | 
Definition at line 1196 of file pns_optimizer.cpp.
References PNS::NODE::CheckColliding(), PNS::ITEM::Collide(), PNS::ITEM::Layer(), PNS::DIFF_PAIR::NLine(), and PNS::DIFF_PAIR::PLine().
Referenced by coupledBypass(), and PNS::OPTIMIZER::mergeDpStep().
      
  | 
  constexpr | 
Definition at line 34 of file pns_utils.h.
| const int PNS::LENGTH_TARGET_TOLERANCE = 20 | 
Definition at line 30 of file pns_meander_placer_base.cpp.
Referenced by findAmplitudeBinarySearch(), and findAmplitudeForLength().
| const int PNS::pnsSchemaVersion = 0 | 
Definition at line 29 of file pns_routing_settings.cpp.
Referenced by PNS::ROUTING_SETTINGS::ROUTING_SETTINGS().
      
  | 
  static | 
Definition at line 58 of file pns_router.cpp.
Referenced by PNS::ROUTER::GetInstance(), PNS::ROUTER::ROUTER(), and PNS::ROUTER::~ROUTER().