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) |
static void | nodeStats (PNS::DEBUG_DECORATOR *dbg, NODE *node, wxString s) |
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) |
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 54 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 41 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 2464 of file pns_shove.cpp.
|
static |
Definition at line 171 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 355 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 67 of file pns_utils.cpp.
References 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 188 of file pns_line.cpp.
Referenced by PNS::LINE::Walkaround().
const SHAPE_LINE_CHAIN PNS::BuildHullForPrimitiveShape | ( | const SHAPE * | aShape, |
int | aClearance, | ||
int | aWalkaroundThickness | ||
) |
Definition at line 477 of file pns_utils.cpp.
References ArcHull(), ConvexHull(), SHAPE_CIRCLE::GetCenter(), SHAPE_RECT::GetPosition(), SHAPE_CIRCLE::GetRadius(), 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 368 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 388 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 1273 of file pns_optimizer.cpp.
References PNS::NODE::CheckColliding(), PNS::DIFF_PAIR::NLine(), and PNS::DIFF_PAIR::PLine().
|
static |
Definition at line 180 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 277 of file pns_multi_dragger.cpp.
References PNS::LINE::CLine(), PNS::ITEM::Collide(), PNS::ROUTER_IFACE::GetDebugDecorator(), PNS::ROUTER::GetInstance(), PNS::ROUTER::GetInterface(), 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 327 of file pns_item.h.
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 791 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(), 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 299 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 1216 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 623 of file pns_line.cpp.
References DIRECTION_45::BuildInitialTrace(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CSegment(), 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().
|
static |
Definition at line 34 of file pns_item.cpp.
Definition at line 1201 of file pns_line.cpp.
References BOX2< Vec >::Merge().
Referenced by PNS::LINE::ChangedArea().
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 1170 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 445 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 394 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 155 of file pns_utils.cpp.
References SEG::A, std::abs(), SEG::B, delta, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by SegmentHull().
std::unique_ptr< T > PNS::ItemCast | ( | std::unique_ptr< S > | aPtr | ) |
Definition at line 319 of file pns_item.h.
Definition at line 406 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 288 of file pns_utils.cpp.
References SEG::A, SEG::B, SHAPE_LINE_CHAIN::NearestPoint(), and VECTOR2< T >::Resize().
Referenced by ConvexHull().
|
static |
Definition at line 2104 of file pns_shove.cpp.
References PNS::NODE::Depth(), PNS::NODE::GetUpdatedItems(), and PNS_DBG.
const SHAPE_LINE_CHAIN PNS::OctagonalHull | ( | const VECTOR2I & | aP0, |
const VECTOR2I & | aSize, | ||
int | aClearance, | ||
int | aChamfer | ||
) |
Definition at line 36 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 367 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(), SHAPE_LINE_CHAIN::SegmentCount(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::KEEP_TOPOLOGY_CONSTRAINT::Check().
|
static |
Definition at line 91 of file pns_walkaround.cpp.
References PNS::WALKAROUND::WP_CCW, PNS::WALKAROUND::WP_CW, and PNS::WALKAROUND::WP_SHORTEST.
const SHAPE_LINE_CHAIN PNS::SegmentHull | ( | const SHAPE_SEGMENT & | aSeg, |
int | aClearance, | ||
int | aWalkaroundThickness | ||
) |
Definition at line 179 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().
int PNS::sgn | ( | T | val | ) |
Definition at line 174 of file pns_utils.cpp.
Referenced by SegmentHull().
Definition at line 49 of file pns_item.cpp.
References PNS::VIA::Drill(), 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 1391 of file pns_optimizer.cpp.
References std::abs(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::PointCount(), v1, VECTOR2< T >::x, VECTOR3< T >::x, VECTOR2< T >::y, and VECTOR3< T >::y.
Referenced by Tighten().
void PNS::Tighten | ( | NODE * | aNode, |
const SHAPE_LINE_CHAIN & | aOldLine, | ||
const LINE & | aNewLine, | ||
LINE & | aOptimized | ||
) |
Definition at line 1514 of file pns_optimizer.cpp.
References std::abs(), PNS::LINE::CLine(), SHAPE_LINE_CHAIN::Replace(), SHAPE_LINE_CHAIN::SegmentCount(), PNS::LINE::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 1413 of file pns_optimizer.cpp.
References SEG::A, DIRECTION_45::ANG_RIGHT, DIRECTION_45::Angle(), SHAPE_LINE_CHAIN::Append(), SEG::B, 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 1197 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.
|
static |
Definition at line 58 of file pns_router.cpp.
Referenced by PNS::ROUTER::GetInstance(), PNS::ROUTER::ROUTER(), and PNS::ROUTER::~ROUTER().