![]() |
KiCad PCB EDA Suite
|
Push and Shove diff pair dimensions (gap) settings dialog. More...
Enumerations | |
enum | LineMarker { MK_HEAD = ( 1 << 0 ), MK_VIOLATION = ( 1 << 3 ), MK_LOCKED = ( 1 << 4 ), MK_DP_COUPLED = ( 1 << 5 ) } |
enum | MEANDER_TYPE { MT_SINGLE, MT_START, MT_FINISH, MT_TURN, MT_CHECK_START, MT_CHECK_FINISH, MT_CORNER, MT_EMPTY } |
Shapes of available meanders. More... | |
enum | MEANDER_STYLE { MEANDER_STYLE_ROUND = 1, MEANDER_STYLE_CHAMFER } |
More... | |
enum | ROUTER_MODE { PNS_MODE_ROUTE_SINGLE = 1, PNS_MODE_ROUTE_DIFF_PAIR, PNS_MODE_TUNE_SINGLE, PNS_MODE_TUNE_DIFF_PAIR, PNS_MODE_TUNE_DIFF_PAIR_SKEW } |
enum | DRAG_MODE { DM_CORNER = 0x1, DM_SEGMENT = 0x2, DM_VIA = 0x4, DM_FREE_ANGLE = 0x8, DM_ANY = 0x7 } |
enum | PNS_MODE { RM_MarkObstacles = 0, RM_Shove, RM_Walkaround, RM_Smart } |
More... | |
enum | PNS_OPTIMIZATION_EFFORT { OE_LOW = 0, OE_MEDIUM = 1, OE_FULL = 2 } |
More... | |
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) |
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) |
SHAPE_LINE_CHAIN | dragCornerInternal (const SHAPE_LINE_CHAIN &aOrigin, const VECTOR2I &aP) |
static void | extendBox (BOX2I &aBox, bool &aDefined, const VECTOR2I &aP) |
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) |
const SHAPE_LINE_CHAIN | OctagonalHull (const VECTOR2I &aP0, const VECTOR2I &aSize, int aClearance, int aChamfer) |
Various utility functions. More... | |
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() More... | |
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) |
Variables | |
static ROUTER * | theRouter |
constexpr int | HULL_MARGIN = 10 |
Push and Shove diff pair dimensions (gap) settings dialog.
Push and Shove router settings dialog.
enum PNS::DRAG_MODE |
Enumerator | |
---|---|
DM_CORNER | |
DM_SEGMENT | |
DM_VIA | |
DM_FREE_ANGLE | |
DM_ANY |
Definition at line 72 of file pns_router.h.
enum PNS::LineMarker |
Enumerator | |
---|---|
MK_HEAD | |
MK_VIOLATION | |
MK_LOCKED | |
MK_DP_COUPLED |
Definition at line 39 of file pns_item.h.
enum PNS::MEANDER_STYLE |
meander corner shape
Enumerator | |
---|---|
MEANDER_STYLE_ROUND | |
MEANDER_STYLE_CHAMFER |
Definition at line 47 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_EMPTY |
Definition at line 35 of file pns_meander.h.
enum PNS::PNS_MODE |
Routing modes
Enumerator | |
---|---|
RM_MarkObstacles | |
RM_Shove |
|
RM_Walkaround |
|
RM_Smart |
|
Definition at line 35 of file pns_routing_settings.h.
Optimization effort
Enumerator | |
---|---|
OE_LOW | |
OE_MEDIUM | |
OE_FULL |
Definition at line 44 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 64 of file pns_router.h.
|
static |
Definition at line 180 of file pns_diff_pair.cpp.
References DIRECTION_45::Angle().
Referenced by DXF_IMPORT_PLUGIN::addArc(), DIMENSION::AdjustDimensionDetails(), EC_45DEGREE::Apply(), EC_CIRCLE::Apply(), HPGL_PLOTTER::Arc(), BuildCornersList_S_Shape(), BuildDimension(), PNS::DP_GATEWAYS::BuildGeneric(), D_PAD::BuildPadPolygon(), LIB_ARC::CalcEdit(), CalculateSegmentEndPoint(), PNS::OPTIMIZER::circleBreakouts(), DRAWSEGMENT::computeArcBBox(), ConvertOutlineToPolygon(), AM_PRIMITIVE::ConvertShapeToPolygon(), D_CODE::ConvertShapeToPolygon(), PCB_EDIT_FRAME::Create_MuWaveComponent(), SCH_GLOBALLABEL::CreateGraphicShape(), CreateThermalReliefPadPolygon(), PNS::OPTIMIZER::customBreakouts(), DRC::doTrackDrc(), DRAWING_TOOL::DrawDimension(), DrawSegmentQcq(), AR_MATRIX::drawSegmentQcq(), D_PAD::DrawShape(), TRACK::DrawShortNetname(), GBR_TO_PCB_EXPORTER::export_non_copper_item(), export_vrml_line(), DSN::SPECCTRA_DB::FromBOARD(), C3D_RENDER_OGL_LEGACY::generate_ring_contour(), TEXTE_MODULE::GetBoundingBox(), KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetStartAngle(), KIGFX::PREVIEW::ARC_GEOM_MANAGER::GetSubtended(), ARRAY_CIRCULAR_OPTIONS::GetTransform(), GRCSegm(), PNS::LINE_PLACER::handlePullback(), idf_export_module(), DIALOG_PAD_PROPERTIES::initValues(), DXF_IMPORT_PLUGIN::insertArc(), PNS::LINE::Is45Degree(), LEGACY_PLUGIN::loadMODULE_EDGE(), LEGACY_PLUGIN::loadPCB_LINE(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPolygon(), EAGLE_PLUGIN::loadSignals(), DSN::SPECCTRA_DB::makeIMAGE(), EAGLE_PLUGIN::packagePolygon(), GPCB_FPL_CACHE::parseMODULE(), ZONE_CONTAINER::Rotate(), PCB_BASE_FRAME::Rotate_Module(), AR_AUTOPLACER::rotateModule(), RotatePoint(), TEXTE_MODULE::SetDrawCoord(), D_PAD::SetDrawCoord(), EDGE_MODULE::SetLocalCoord(), TEXTE_MODULE::SetLocalCoord(), ShowBoundingBoxMicroWaveInductor(), TraceArc(), AR_MATRIX::traceArc(), TraceCircle(), AR_MATRIX::traceCircle(), AR_MATRIX::TraceFilledRectangle(), TraceFilledRectangle(), TransformCircleToPolygon(), D_PAD::TransformShapeWithClearanceToPolygon(), and TEXTE_MODULE::ViewBBox().
SHAPE_RECT PNS::ApproximateSegmentAsRect | ( | const SHAPE_SEGMENT & | aSeg | ) |
Definition at line 157 of file pns_utils.cpp.
References SEG::A, abs, SEG::B, delta, SHAPE_SEGMENT::GetSeg(), SHAPE_SEGMENT::GetWidth(), and min.
Referenced by PNS::OPTIMIZER::computeBreakouts().
Definition at line 231 of file pns_utils.cpp.
References PNS::VIA::ChangedArea(), PNS::LINE::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 251 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 1116 of file pns_optimizer.cpp.
References PNS::NODE::CheckColliding(), PNS::DIFF_PAIR::NLine(), and PNS::DIFF_PAIR::PLine().
|
static |
Definition at line 189 of file pns_diff_pair.cpp.
References SHAPE_LINE_CHAIN::CSegment(), dist, SEG::Distance(), i, and SHAPE_LINE_CHAIN::SegmentCount().
Referenced by PNS::DIFF_PAIR::BuildInitial().
std::unique_ptr< typename std::remove_const< T >::type > PNS::Clone | ( | const T & | aItem | ) |
Definition at line 385 of file pns_item.h.
Referenced by PNS::DRAGGER::dumbDragVia(), PNS::LINE_PLACER::FixRoute(), PNS::DIFF_PAIR_PLACER::FixRoute(), PNS::SHOVE::pushVia(), PNS::SHOVE::ShoveLines(), PNS::SHOVE::ShoveMultiLines(), and PNS::LINE_PLACER::SplitAdjacentSegments().
Definition at line 774 of file pns_diff_pair.cpp.
References SEG::A, SEG::B, SEG::LineProject(), numEval::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 101 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(), HULL_MARGIN, SEG::IntersectLines(), MoveDiagonal(), BOX2< Vec >::Normalize(), SHAPE_LINE_CHAIN::SetClosed(), and SHAPE_SIMPLE::Vertices().
Referenced by PNS::SOLID::Hull().
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 1063 of file pns_optimizer.cpp.
References abs, SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CSegment(), delta, findCoupledVertices(), i, 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 | ||
) |
Definition at line 368 of file pns_line.cpp.
References SHAPE_LINE_CHAIN::Append(), DIRECTION_45::BuildInitialTrace(), SHAPE_LINE_CHAIN::CPoint(), SHAPE_LINE_CHAIN::CSegment(), i, SEG::Length(), SHAPE_LINE_CHAIN::SegmentCount(), and SHAPE_LINE_CHAIN::Slice().
Referenced by PNS::LINE::dragCorner45().
Definition at line 859 of file pns_line.cpp.
References BOX2< Vec >::Merge().
Referenced by PNS::LINE::ChangedArea().
int PNS::findCoupledVertices | ( | const VECTOR2I & | aVertex, |
const SEG & | aOrigSeg, | ||
const SHAPE_LINE_CHAIN & | aCoupled, | ||
DIFF_PAIR * | aPair, | ||
int * | aIndices | ||
) |
Definition at line 1021 of file pns_optimizer.cpp.
References SEG::ApproxParallel(), SHAPE_LINE_CHAIN::CSegment(), dist, EuclideanNorm(), PNS::DIFF_PAIR::GapConstraint(), i, SEG::LineProject(), RANGED_NUM< T >::Matches(), SHAPE_LINE_CHAIN::SegmentCount(), and PNS::DIFF_PAIR::Width().
Referenced by coupledBypass().
std::unique_ptr< T > PNS::ItemCast | ( | std::unique_ptr< S > | aPtr | ) |
Definition at line 377 of file pns_item.h.
Definition at line 411 of file pns_diff_pair.cpp.
References EuclideanNorm(), VECTOR2< T >::EuclideanNorm(), and VECTOR2< T >::Resize().
Referenced by PNS::DP_GATEWAYS::buildDpContinuation(), PNS::DP_GATEWAYS::BuildForCursor(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), and PNS::DP_GATEWAYS::BuildGeneric().
|
static |
Definition at line 89 of file pns_utils.cpp.
References SEG::A, SEG::B, dist, HULL_MARGIN, SHAPE_LINE_CHAIN::NearestPoint(), and VECTOR2< T >::Resize().
Referenced by ConvexHull().
const SHAPE_LINE_CHAIN PNS::OctagonalHull | ( | const VECTOR2I & | aP0, |
const VECTOR2I & | aSize, | ||
int | aClearance, | ||
int | aChamfer | ||
) |
Various utility functions.
Definition at line 33 of file pns_utils.cpp.
References SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::SetClosed(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::SOLID::Hull(), and PNS::VIA::Hull().
|
inline |
Definition at line 260 of file pns_joint.h.
References PNS::JOINT::HASH_TAG::net, and PNS::JOINT::HASH_TAG::pos.
const SHAPE_LINE_CHAIN PNS::SegmentHull | ( | const SHAPE_SEGMENT & | aSeg, |
int | aClearance, | ||
int | aWalkaroundThickness | ||
) |
Definition at line 53 of file pns_utils.cpp.
References SEG::A, SHAPE_LINE_CHAIN::Append(), SEG::B, SHAPE_LINE_CHAIN::CSegment(), SHAPE_SEGMENT::GetSeg(), SHAPE_SEGMENT::GetWidth(), HULL_MARGIN, VECTOR2< T >::Perpendicular(), VECTOR2< T >::Resize(), SHAPE_LINE_CHAIN::Reverse(), SHAPE_LINE_CHAIN::SetClosed(), and SEG::Side().
Referenced by PNS::SOLID::Hull(), and PNS::SEGMENT::Hull().
bool PNS::verifyDpBypass | ( | NODE * | aNode, |
DIFF_PAIR * | aPair, | ||
bool | aRefIsP, | ||
const SHAPE_LINE_CHAIN & | aNewRef, | ||
const SHAPE_LINE_CHAIN & | aNewCoupled | ||
) |
Definition at line 1045 of file pns_optimizer.cpp.
References PNS::ITEM::ANY_T, PNS::NODE::CheckColliding(), PNS::DIFF_PAIR::Gap(), PNS::DIFF_PAIR::NLine(), and PNS::DIFF_PAIR::PLine().
Referenced by coupledBypass(), and PNS::OPTIMIZER::mergeDpStep().
constexpr int PNS::HULL_MARGIN = 10 |
Definition at line 34 of file pns_utils.h.
Referenced by ConvexHull(), MoveDiagonal(), and SegmentHull().
|
static |
Definition at line 59 of file pns_router.cpp.
Referenced by PNS::ROUTER::GetInstance(), EDIT_TOOL::invokeInlineRouter(), EDIT_TOOL::isInteractiveDragEnabled(), PNS::ROUTER::ROUTER(), and PNS::ROUTER::~ROUTER().