|
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().