KiCad PCB EDA Suite
|
#include <seg.h>
Public Types | |
using | ecoord = VECTOR2I::extended_type |
Public Member Functions | |
SEG () | |
Create an empty (0, 0) segment. More... | |
SEG (int aX1, int aY1, int aX2, int aY2) | |
Create a segment between (aX1, aY1) and (aX2, aY2). More... | |
SEG (const VECTOR2I &aA, const VECTOR2I &aB) | |
Create a segment between (aA) and (aB). More... | |
SEG (const VECTOR2I &aA, const VECTOR2I &aB, int aIndex) | |
Create a segment between (aA) and (aB), referenced to a multi-segment shape. More... | |
SEG (const SEG &aSeg) | |
Copy constructor. More... | |
SEG & | operator= (const SEG &aSeg) |
bool | operator== (const SEG &aSeg) const |
bool | operator!= (const SEG &aSeg) const |
VECTOR2I | LineProject (const VECTOR2I &aP) const |
Compute the perpendicular projection point of aP on a line passing through ends of the segment. More... | |
int | Side (const VECTOR2I &aP) const |
Determine on which side of directed line passing via segment ends point aP lies. More... | |
int | LineDistance (const VECTOR2I &aP, bool aDetermineSide=false) const |
Return the closest Euclidean distance between point aP and the line defined by the ends of segment (this). More... | |
EDA_ANGLE | Angle (const SEG &aOther) const |
Determine the smallest angle between two segments. More... | |
const VECTOR2I | NearestPoint (const VECTOR2I &aP) const |
Compute a point on the segment (this) that is closest to point aP. More... | |
const VECTOR2I | NearestPoint (const SEG &aSeg) const |
Compute a point on the segment (this) that is closest to any point on aSeg. More... | |
const VECTOR2I | ReflectPoint (const VECTOR2I &aP) const |
Reflect a point using this segment as axis. More... | |
OPT_VECTOR2I | Intersect (const SEG &aSeg, bool aIgnoreEndpoints=false, bool aLines=false) const |
Compute intersection point of segment (this) with segment aSeg. More... | |
bool | Intersects (const SEG &aSeg) const |
OPT_VECTOR2I | IntersectLines (const SEG &aSeg) const |
Compute the intersection point of lines passing through ends of (this) and aSeg. More... | |
SEG | PerpendicularSeg (const VECTOR2I &aP) const |
Compute a segment perpendicular to this one, passing through point aP. More... | |
SEG | ParallelSeg (const VECTOR2I &aP) const |
Compute a segment parallel to this one, passing through point aP. More... | |
bool | Collide (const SEG &aSeg, int aClearance, int *aActual=nullptr) const |
ecoord | SquaredDistance (const SEG &aSeg) const |
int | Distance (const SEG &aSeg) const |
Compute minimum Euclidean distance to segment aSeg. More... | |
ecoord | SquaredDistance (const VECTOR2I &aP) const |
int | Distance (const VECTOR2I &aP) const |
Compute minimum Euclidean distance to point aP. More... | |
void | CanonicalCoefs (ecoord &qA, ecoord &qB, ecoord &qC) const |
bool | Collinear (const SEG &aSeg) const |
Check if segment aSeg lies on the same line as (this). More... | |
bool | ApproxCollinear (const SEG &aSeg, int aDistanceThreshold=1) const |
bool | ApproxParallel (const SEG &aSeg, int aDistanceThreshold=1) const |
bool | ApproxPerpendicular (const SEG &aSeg) const |
bool | Overlaps (const SEG &aSeg) const |
bool | Contains (const SEG &aSeg) const |
int | Length () const |
Return the length (this). More... | |
ecoord | SquaredLength () const |
ecoord | TCoef (const VECTOR2I &aP) const |
int | Index () const |
Return the index of this segment in its parent shape (applicable only to non-local segments). More... | |
bool | Contains (const VECTOR2I &aP) const |
void | Reverse () |
SEG | Reversed () const |
Returns the center point of the line. More... | |
VECTOR2I | Center () const |
Static Public Member Functions | |
static SEG::ecoord | Square (int a) |
Public Attributes | |
VECTOR2I | A |
VECTOR2I | B |
Private Member Functions | |
bool | ccw (const VECTOR2I &aA, const VECTOR2I &aB, const VECTOR2I &aC) const |
bool | intersects (const SEG &aSeg, bool aIgnoreEndpoints=false, bool aLines=false, VECTOR2I *aPt=nullptr) const |
bool | mutualDistance (const SEG &aSeg, ecoord &aD1, ecoord &aD2) const |
Private Attributes | |
int | m_index |
< index within the parent shape (used when m_is_local == false) More... | |
Friends | |
std::ostream & | operator<< (std::ostream &aStream, const SEG &aSeg) |
using SEG::ecoord = VECTOR2I::extended_type |
|
inline |
Create an empty (0, 0) segment.
Definition at line 55 of file seg.h.
References m_index.
Referenced by ParallelSeg(), PerpendicularSeg(), and Reversed().
|
inline |
|
inline |
Determine the smallest angle between two segments.
aOther | point to determine the orientation wrs to self |
Definition at line 97 of file seg.cpp.
References A, std::abs(), PNS::angle(), ANGLE_180, B, and EDA_ANGLE::Normalize180().
Referenced by EDIT_TOOL::DragArcTrack().
bool SEG::ApproxCollinear | ( | const SEG & | aSeg, |
int | aDistanceThreshold = 1 |
||
) | const |
Definition at line 382 of file seg.cpp.
References std::abs(), and mutualDistance().
Referenced by PCB_TRACK::ApproxCollinear(), and EDIT_TOOL::FilletTracks().
bool SEG::ApproxParallel | ( | const SEG & | aSeg, |
int | aDistanceThreshold = 1 |
||
) | const |
Definition at line 393 of file seg.cpp.
References std::abs(), and mutualDistance().
Referenced by ApproxPerpendicular(), PNS::MEANDERED_LINE::CheckSelfIntersections(), CIRCLE::ConstructFromTanTanPt(), PNS::DIFF_PAIR::CoupledLength(), PNS::DIFF_PAIR::CoupledSegmentPairs(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), extractDiffPairCoupledItems(), PNS::findCoupledVertices(), and SegParallelCorrect().
bool SEG::ApproxPerpendicular | ( | const SEG & | aSeg | ) | const |
Definition at line 404 of file seg.cpp.
References ApproxParallel(), and PerpendicularSeg().
Referenced by SegPerpendicularCorrect().
Definition at line 217 of file seg.cpp.
References VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Collide().
|
inline |
Definition at line 362 of file seg.h.
References A.
Referenced by Collide(), PCB_GRID_HELPER::computeAnchors(), CIRCLE::ConstructFromTanTanPt(), and SHAPE_ARC::SHAPE_ARC().
bool SEG::Collide | ( | const SEG & | aSeg, |
int | aClearance, | ||
int * | aActual = nullptr |
||
) | const |
Definition at line 223 of file seg.cpp.
References A, B, ccw(), VECTOR2< int >::ECOORD_MAX, isqrt(), and SquaredDistance().
Referenced by SHAPE_POLY_SET::IsPolygonSelfIntersecting(), SegCollideCorrect(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), and BOARD::TestZoneIntersection().
|
inline |
Check if segment aSeg lies on the same line as (this).
aSeg | the segment to check colinearity with |
Definition at line 269 of file seg.h.
References A, std::abs(), B, CanonicalCoefs(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::DP_GATEWAYS::BuildGeneric(), Contains(), EC_CONVERGING::EC_CONVERGING(), SHAPE_LINE_CHAIN::Intersect(), PNS::OPTIMIZER::mergeColinear(), Overlaps(), and SegCollinearCorrect().
|
inline |
Definition at line 307 of file seg.h.
References A, B, Collinear(), and Contains().
Referenced by SCH_EAGLE_PLUGIN::adjustNetLabels(), BuildFootprintPolygonOutlines(), PNS::LINE::ChangedArea(), Contains(), findEndSegments(), CIRCLE::Intersect(), SHAPE_LINE_CHAIN::Intersect(), PNS::MEANDERED_LINE::MeanderSegment(), Overlaps(), and PNS::LINE_PLACER::simplifyNewLine().
bool SEG::Contains | ( | const VECTOR2I & | aP | ) | const |
Definition at line 255 of file seg.cpp.
References Distance().
int SEG::Distance | ( | const SEG & | aSeg | ) | const |
Compute minimum Euclidean distance to segment aSeg.
aSeg | other segment |
Definition at line 319 of file seg.cpp.
References isqrt(), and SquaredDistance().
Referenced by PCB_POINT_EDITOR::addCorner(), SHAPE_LINE_CHAIN::Append(), SHAPE_LINE_CHAIN::CheckClearance(), PNS::checkGap(), Collide(), Contains(), PNS::DIFF_PAIR::CoupledLength(), PNS::DIFF_PAIR::CoupledSegmentPairs(), SHAPE_LINE_CHAIN_BASE::EdgeContainingPoint(), SHAPE_LINE_CHAIN::FindSegment(), SHAPE_LINE_CHAIN::NearestPoint(), SHAPE_LINE_CHAIN::NearestSegment(), pushoutForce(), test::DRC_TEST_PROVIDER_DIFF_PAIR_COUPLING::Run(), SegDistanceCorrect(), SegVecDistanceCorrect(), SHAPE_LINE_CHAIN::Split(), and TransformArcToPolygon().
int SEG::Distance | ( | const VECTOR2I & | aP | ) | const |
Compute minimum Euclidean distance to point aP.
aP | the point |
Definition at line 325 of file seg.cpp.
References isqrt(), and SquaredDistance().
|
inline |
Return the index of this segment in its parent shape (applicable only to non-local segments).
Definition at line 344 of file seg.h.
References m_index.
Referenced by SHAPE_POLY_SET::IsPolygonSelfIntersecting(), PNS::OPTIMIZER::mergeDpStep(), PNS::OPTIMIZER::mergeObtuse(), and PNS::OPTIMIZER::mergeStep().
OPT_VECTOR2I SEG::Intersect | ( | const SEG & | aSeg, |
bool | aIgnoreEndpoints = false , |
||
bool | aLines = false |
||
) | const |
Compute intersection point of segment (this) with segment aSeg.
aSeg | segment to intersect with |
aIgnoreEndpoints | don't treat corner cases (i.e. end of one segment touching the other) as intersections. |
aLines | treat segments as infinite lines |
Definition at line 188 of file seg.cpp.
References intersects().
Referenced by EC_CONVERGING::Apply(), PNS::LINE::dragSegment45(), DRAWING_TOOL::DrawVia(), ALTIUM_PCB::HelperParseDimensions6Linear(), SHAPE_LINE_CHAIN::Intersect(), IntersectLines(), SCH_EAGLE_PLUGIN::loadSegments(), NearestPoint(), SHAPE_LINE_CHAIN::SelfIntersecting(), SHAPE_ARC::SHAPE_ARC(), and DRC_TEST_PROVIDER_COPPER_CLEARANCE::testTrackAgainstItem().
|
inline |
Compute the intersection point of lines passing through ends of (this) and aSeg.
aSeg | segment defining the line to intersect with |
Definition at line 210 of file seg.h.
References Intersect().
Referenced by PCB_GRID_HELPER::AlignToSegment(), EC_CONVERGING::Apply(), EC_PERPLINE::Apply(), EC_LINE::Apply(), BuildFootprintPolygonOutlines(), PNS::DP_GATEWAYS::BuildGeneric(), CIRCLE::ConstructFromTanTanPt(), PNS::ConvexHull(), CornerListToPolygon(), EDIT_TOOL::DragArcTrack(), PNS::LINE::dragSegment45(), PCB_POINT_EDITOR::editArcCenterKeepEndpoints(), PNS::OPTIMIZER::mergeObtuse(), and PNS::LINE::snapDraggedCorner().
bool SEG::Intersects | ( | const SEG & | aSeg | ) | const |
|
private |
Definition at line 150 of file seg.cpp.
References A, B, VECTOR2< T >::Cross(), rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Intersect(), and Intersects().
|
inline |
Return the length (this).
Definition at line 326 of file seg.h.
Referenced by PNS::MEANDER_SHAPE::BaselineLength(), Collide(), TEARDROP_MANAGER::computeCurvedForRoundShape(), PNS::DIFF_PAIR::CoupledLength(), PNS::LINE_PLACER::cursorDistMinimum(), PNS::dragCornerInternal(), KIGFX::PCB_PAINTER::draw(), TEARDROP_MANAGER::findAnchorPointsOnTrack(), EDA_SHAPE::GetLength(), PNS::MOUSE_TRAIL_TRACER::GetPosture(), BOARD::GetTrackLength(), isLine45Degree(), SHAPE_LINE_CHAIN::Length(), PNS::MEANDERED_LINE::MeanderSegment(), SHAPE_LINE_CHAIN::PathLength(), playground_main_func(), SHAPE_LINE_CHAIN::PointAlong(), test::DRC_TEST_PROVIDER_DIFF_PAIR_COUPLING::Run(), PNS::SegmentHull(), SHAPE_ARC::SHAPE_ARC(), and PNS::tightenSegment().
int SEG::LineDistance | ( | const VECTOR2I & | aP, |
bool | aDetermineSide = false |
||
) | const |
Return the closest Euclidean distance between point aP and the line defined by the ends of segment (this).
aP | the point to test |
aDetermineSide | when true, the sign of the returned value indicates the side of the line at which we are (negative = left) |
Definition at line 331 of file seg.cpp.
References std::abs(), isqrt(), rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by CIRCLE::ConstructFromTanTanPt(), SHAPE_LINE_CHAIN::NearestPoint(), ZONE_CREATE_HELPER::OnComplete(), and PNS::LINE::snapToNeighbourSegments().
Compute the perpendicular projection point of aP on a line passing through ends of the segment.
aP | point to project |
Definition at line 302 of file seg.cpp.
References A, VECTOR2< T >::Dot(), rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PNS::LINE_PLACER::buildInitialLine(), PNS::DP_GATEWAYS::BuildOrthoProjections(), commonParallelProjection(), PNS::commonParallelProjection(), CIRCLE::ConstructFromTanTanPt(), EDIT_TOOL::DragArcTrack(), PNS::findCoupledVertices(), CIRCLE::IntersectLine(), PNS::DIFF_PAIR_PLACER::routeHead(), SHAPE_ARC::SHAPE_ARC(), and PNS::MEANDER_SHAPE::updateBaseSegment().
Definition at line 351 of file seg.cpp.
References A, B, isqrt(), rescale(), sgn(), SquaredLength(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by ApproxCollinear(), and ApproxParallel().
Compute a point on the segment (this) that is closest to any point on aSeg.
Definition at line 108 of file seg.cpp.
References A, B, Intersect(), and NearestPoint().
Compute a point on the segment (this) that is closest to point aP.
Definition at line 261 of file seg.cpp.
References A, B, VECTOR2< T >::Dot(), rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by PCB_POINT_EDITOR::addCorner(), PNS::LINE::ClipToNearestObstacle(), PNS::closestProjectedPoint(), SHAPE_ARC::Collide(), SHAPE_CIRCLE::Collide(), SHAPE_RECT::Collide(), SHAPE_SEGMENT::Collide(), Collide(), SHAPE_LINE_CHAIN_BASE::Collide(), SHAPE_LINE_CHAIN::Collide(), PNS::LINE_PLACER::cursorDistMinimum(), EDIT_TOOL::DragArcTrack(), DRAWING_TOOL::DrawVia(), PCB_POINT_EDITOR::editArcMidKeepEndpoints(), SCH_MOVE_TOOL::moveItem(), NearestPoint(), SHAPE_LINE_CHAIN::NearestPoint(), pushoutForce(), SCH_DRAWING_TOOLS::SingleClickPlace(), SquaredDistance(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), and PNS::LINE::Walkaround().
|
inline |
|
inline |
|
inline |
Definition at line 284 of file seg.h.
References A, B, Collinear(), and Contains().
Compute a segment parallel to this one, passing through point aP.
aP | Point through which the new segment will pass |
Definition at line 208 of file seg.cpp.
References SEG().
Referenced by BOOST_AUTO_TEST_CASE(), and CIRCLE::ConstructFromTanTanPt().
Compute a segment perpendicular to this one, passing through point aP.
aP | Point through which the new segment will pass |
Definition at line 199 of file seg.cpp.
References VECTOR2< T >::Perpendicular(), and SEG().
Referenced by ApproxPerpendicular(), BOOST_AUTO_TEST_CASE(), CIRCLE::ConstructFromTanTanPt(), and EDIT_TOOL::DragArcTrack().
Reflect a point using this segment as axis.
Definition at line 283 of file seg.cpp.
References A, VECTOR2< T >::Dot(), rescale(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by CornerListToPolygon(), SHAPE_ARC::Mirror(), and SHAPE_LINE_CHAIN::Mirror().
|
inline |
|
inline |
Returns the center point of the line.
Definition at line 356 of file seg.h.
References SEG().
Referenced by PNS::LINE_PLACER::Start().
|
inline |
Determine on which side of directed line passing via segment ends point aP lies.
aP | point to determine the orientation wrs to self |
Definition at line 143 of file seg.h.
References A.
Referenced by PNS::ArcHull(), PNS::DP_GATEWAYS::buildDpContinuation(), CornerListToPolygon(), PNS::MEANDER_PLACER::doMove(), EDIT_TOOL::DragArcTrack(), PNS::DP_MEANDER_PLACER::Move(), PNS::DP_MEANDER_PLACER::pairOrientation(), and PNS::SegmentHull().
|
inlinestatic |
Definition at line 123 of file seg.h.
Referenced by close_enough(), SHAPE_CIRCLE::Collide(), SHAPE_POLY_SET::Collide(), SHAPE_RECT::Collide(), SHAPE_SEGMENT::Collide(), Collide(), SHAPE_LINE_CHAIN_BASE::Collide(), SHAPE_LINE_CHAIN::Collide(), SHAPE_POLY_SET::CollideEdge(), SHAPE_POLY_SET::CollideVertex(), findNext(), POLYGON_TEST::getKink(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), PAD::HitTest(), CONVERT_TOOL::makePolysFromChainedSegs(), RN_NET::NearestBicoloredPair(), DRC_TEST_PROVIDER_SLIVER_CHECKER::Run(), PNS::TOOL_BASE::snapToItem(), DRC_TEST_PROVIDER_HOLE_TO_HOLE::testHoleAgainstHole(), TestSegmentHit(), and DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain().
SEG::ecoord SEG::SquaredDistance | ( | const SEG & | aSeg | ) | const |
Definition at line 75 of file seg.cpp.
References A, B, VECTOR2< int >::ECOORD_MAX, Intersects(), and NearestPoint().
Referenced by PNS::MOUSE_TRAIL_TRACER::AddTrailPoint(), PCB_GRID_HELPER::AlignToSegment(), PNS::PRESERVE_VERTEX_CONSTRAINT::Check(), Collide(), SHAPE_LINE_CHAIN_BASE::Collide(), SHAPE_LINE_CHAIN::Collide(), SHAPE_RECT::Collide(), SHAPE_SEGMENT::Collide(), SHAPE_POLY_SET::CollideEdge(), Distance(), PCB_POINT_EDITOR::editArcCenterKeepEndpoints(), SHAPE_LINE_CHAIN_BASE::SquaredDistance(), and TestSegmentHit().
Definition at line 243 of file seg.h.
References NearestPoint().
|
inline |
Definition at line 331 of file seg.h.
Referenced by commonParallelProjection(), PNS::commonParallelProjection(), extractDiffPairCoupledItems(), PNS::OPTIMIZER::mergeColinear(), mutualDistance(), and DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain().
|
inline |
Definition at line 380 of file seg.h.
References A, and VECTOR2< T >::Dot().
Referenced by commonParallelProjection(), and PNS::commonParallelProjection().
|
friend |
VECTOR2I SEG::A |
Definition at line 49 of file seg.h.
Referenced by PNS::NODE::Add(), PNS_KICAD_IFACE::AddItem(), PNS::NODE::addSegment(), BOARD_ADAPTER::addShape(), PNS::DEBUG_DECORATOR::AddShape(), SCH_EAGLE_PLUGIN::adjustNetLabels(), PCB_GRID_HELPER::AlignToSegment(), PNS::SEGMENT::Anchor(), Angle(), PNS::ApproximateSegmentAsRect(), PNS::TOPOLOGY::AssembleTuningPath(), PNS::DP_MEANDER_PLACER::baselineSegment(), SHAPE_SEGMENT::BBox(), BOOST_AUTO_TEST_CASE(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), Center(), SHAPE_LINE_CHAIN::CheckClearance(), PNS::DRAGGER::checkVirtualVia(), Collide(), SHAPE_LINE_CHAIN_BASE::Collide(), SHAPE_ARC::Collide(), SHAPE_LINE_CHAIN::Collide(), SHAPE_RECT::Collide(), SHAPE_SEGMENT::Collide(), Collide(), collideArc2Arc(), Collinear(), commonParallelProjection(), PNS::commonParallelProjection(), PCB_GRID_HELPER::computeAnchors(), CIRCLE::ConstructFromTanTanPt(), Contains(), BOARD_ADAPTER::createPadWithMargin(), PNS::LINE_PLACER::cursorDistMinimum(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), PNS::MEANDER_PLACER_BASE::cutTunedLine(), DIRECTION_45::DIRECTION_45(), PNS::MEANDER_PLACER::doMove(), PNS::COMPONENT_DRAGGER::Drag(), EDIT_TOOL::DragArcTrack(), PNS::LINE::dragSegment45(), KIGFX::PCB_PAINTER::draw(), ROUTER_PREVIEW_ITEM::drawLineChain(), KI_TEST::DrawSegment(), ROUTER_PREVIEW_ITEM::drawShape(), SHAPE_LINE_CHAIN_BASE::EdgeContainingPoint(), PCB_POINT_EDITOR::editArcCenterKeepEndpoints(), extractDiffPairCoupledItems(), findEndSegments(), PNS::NODE::findRedundantSegment(), PNS::MEANDER_SHAPE::Fit(), PNS::NODE::FixupVirtualVias(), SHAPE_SEGMENT::Format(), PNS::getDanglingAnchor(), BOARD::GetTrackLength(), ZONE::HatchBorder(), ALTIUM_PCB::HelperCreateBoardOutline(), PNS::HullIntersection(), SHAPE_LINE_CHAIN::Intersect(), CIRCLE::IntersectLine(), SHAPE_ARC::IntersectLine(), intersects(), SHAPE_SEGMENT::Is45Degree(), isLine45Degree(), SHAPE_POLY_SET::IsPolygonSelfIntersecting(), PNS::IsSegment45Degree(), KIGFX::VIEW_OVERLAY::Line(), LineProject(), SCH_EAGLE_PLUGIN::loadSegments(), CADSTAR_SCH_ARCHIVE_LOADER::loadShapeVertices(), PNS::MEANDER_SHAPE::MakeArc(), PNS::MEANDER_SHAPE::MakeCorner(), PNS::MEANDER_SHAPE::MakeEmpty(), PNS::MEANDERED_LINE::MeanderSegment(), PNS::OPTIMIZER::mergeDpStep(), PNS::OPTIMIZER::mergeObtuse(), PNS::OPTIMIZER::mergeStep(), SHAPE_SEGMENT::Move(), PNS::MoveDiagonal(), mutualDistance(), NearestPoint(), SHAPE_LINE_CHAIN::NearestPoint(), operator!=(), operator=(), operator==(), Overlaps(), PNS::DP_MEANDER_PLACER::pairOrientation(), SHAPE_LINE_CHAIN::PathLength(), playground_main_func(), BRDITEMS_PLOTTER::PlotDimension(), SHAPE_LINE_CHAIN::PointAlong(), PNS::MEANDER_SHAPE::Recalculate(), PNS::LINE_PLACER::reduceTail(), ReflectPoint(), PNS::NODE::removeSegmentIndex(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), PCB_DIMENSION_BASE::segCircleIntersection(), GEOM_TEST::SegmentCompletelyInQuadrant(), GEOM_TEST::SegmentCompletelyWithinRadius(), GEOM_TEST::SegmentEndsInQuadrant(), PNS::SegmentHull(), PCB_DIMENSION_BASE::segPolyIntersection(), SHAPE_LINE_CHAIN::SelfIntersecting(), SHAPE_ARC::SHAPE_ARC(), Side(), PNS::LINE::snapToNeighbourSegments(), SHAPE_LINE_CHAIN::Split(), PNS::LINE_PLACER::SplitAdjacentSegments(), SquaredDistance(), SHAPE_POLY_SET::SquaredDistanceToPolygon(), PNS::LINE_PLACER::Start(), PNS::DRAGGER::startDragSegment(), STROKE_PARAMS::Stroke(), PNS::SEGMENT::SwapEnds(), TCoef(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), PNS::tightenSegment(), PCB_DIMENSION_BASE::TransformShapeToPolygon(), unfracture(), SHAPE_POLY_SET::unfractureSingle(), PNS::MEANDER_SHAPE::updateBaseSegment(), PCB_DIM_ALIGNED::updateGeometry(), PCB_DIM_ORTHOGONAL::updateGeometry(), PNS_KICAD_IFACE::UpdateItem(), and HYPERLYNX_EXPORTER::writeBoardInfo().
VECTOR2I SEG::B |
Definition at line 50 of file seg.h.
Referenced by PNS::NODE::Add(), PCB_POINT_EDITOR::addCorner(), PNS_KICAD_IFACE::AddItem(), PNS::MEANDERED_LINE::AddMeander(), PNS::NODE::addSegment(), BOARD_ADAPTER::addShape(), PNS::DEBUG_DECORATOR::AddShape(), SCH_EAGLE_PLUGIN::adjustNetLabels(), PCB_GRID_HELPER::AlignToSegment(), PNS::SEGMENT::Anchor(), Angle(), PNS::ApproximateSegmentAsRect(), PNS::TOPOLOGY::AssembleTuningPath(), PNS::DP_MEANDER_PLACER::baselineSegment(), SHAPE_SEGMENT::BBox(), BOOST_AUTO_TEST_CASE(), PNS::DP_GATEWAYS::BuildFromPrimitivePair(), SHAPE_LINE_CHAIN::CheckClearance(), PNS::DRAGGER::checkVirtualVia(), PNS::SEGMENT::CLine(), Collide(), SHAPE_ARC::Collide(), SHAPE_RECT::Collide(), SHAPE_SEGMENT::Collide(), Collide(), collideArc2Arc(), Collinear(), commonParallelProjection(), PNS::commonParallelProjection(), PCB_GRID_HELPER::computeAnchors(), CIRCLE::ConstructFromTanTanPt(), Contains(), BOARD_ADAPTER::createPadWithMargin(), PNS::LINE_PLACER::cursorDistMinimum(), PNS::DP_PRIMITIVE_PAIR::CursorOrientation(), PNS::MEANDER_PLACER_BASE::cutTunedLine(), DIRECTION_45::DIRECTION_45(), PNS::MEANDER_PLACER::doMove(), PNS::COMPONENT_DRAGGER::Drag(), EDIT_TOOL::DragArcTrack(), PNS::LINE::dragSegment45(), KIGFX::PCB_PAINTER::draw(), ROUTER_PREVIEW_ITEM::drawLineChain(), KI_TEST::DrawSegment(), ROUTER_PREVIEW_ITEM::drawShape(), SHAPE_LINE_CHAIN_BASE::EdgeContainingPoint(), PCB_POINT_EDITOR::editArcCenterKeepEndpoints(), PNS::MEANDER_SHAPE::End(), PNS::DIFF_PAIR::EndingPrimitives(), findEndSegments(), PNS::NODE::findRedundantSegment(), PNS::MEANDER_SHAPE::Fit(), PNS::NODE::FixupVirtualVias(), SHAPE_SEGMENT::Format(), PNS::getDanglingAnchor(), BOARD::GetTrackLength(), ZONE::HatchBorder(), ALTIUM_PCB::HelperCreateBoardOutline(), PNS::HullIntersection(), SHAPE_LINE_CHAIN::Intersect(), CIRCLE::IntersectLine(), SHAPE_ARC::IntersectLine(), intersects(), SHAPE_SEGMENT::Is45Degree(), isLine45Degree(), SHAPE_POLY_SET::IsPolygonSelfIntersecting(), PNS::IsSegment45Degree(), KIGFX::VIEW_OVERLAY::Line(), SCH_EAGLE_PLUGIN::loadSegments(), CADSTAR_SCH_ARCHIVE_LOADER::loadShapeVertices(), PNS::MEANDER_SHAPE::MakeArc(), PNS::MEANDER_SHAPE::MakeCorner(), PNS::MEANDER_SHAPE::MakeEmpty(), PNS::MEANDERED_LINE::MeanderSegment(), PNS::OPTIMIZER::mergeDpStep(), PNS::OPTIMIZER::mergeObtuse(), PNS::OPTIMIZER::mergeStep(), SHAPE_SEGMENT::Move(), PNS::MoveDiagonal(), mutualDistance(), NearestPoint(), SHAPE_LINE_CHAIN::NearestPoint(), operator!=(), operator=(), operator==(), Overlaps(), playground_main_func(), BRDITEMS_PLOTTER::PlotDimension(), SHAPE_LINE_CHAIN::PointAlong(), PNS::MEANDER_SHAPE::Recalculate(), PNS::NODE::removeSegmentIndex(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::Run(), PCB_DIMENSION_BASE::segCircleIntersection(), GEOM_TEST::SegmentCompletelyInQuadrant(), GEOM_TEST::SegmentCompletelyWithinRadius(), GEOM_TEST::SegmentEndsInQuadrant(), PNS::SegmentHull(), PCB_DIMENSION_BASE::segPolyIntersection(), SHAPE_LINE_CHAIN::SelfIntersecting(), SHAPE_ARC::SHAPE_ARC(), SHAPE_LINE_CHAIN::Split(), PNS::LINE_PLACER::SplitAdjacentSegments(), SquaredDistance(), SHAPE_POLY_SET::SquaredDistanceToPolygon(), PNS::LINE_PLACER::Start(), PNS::DRAGGER::startDragSegment(), STROKE_PARAMS::Stroke(), PNS::SEGMENT::SwapEnds(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), PNS::tightenSegment(), PCB_DIMENSION_BASE::TransformShapeToPolygon(), unfracture(), SHAPE_POLY_SET::unfractureSingle(), PNS::MEANDER_SHAPE::updateBaseSegment(), PCB_DIM_ALIGNED::updateGeometry(), PCB_DIM_ORTHOGONAL::updateGeometry(), PCB_DIM_RADIAL::updateGeometry(), PNS_KICAD_IFACE::UpdateItem(), and HYPERLYNX_EXPORTER::writeBoardInfo().
|
private |
< index within the parent shape (used when m_is_local == false)
Definition at line 377 of file seg.h.
Referenced by Index(), operator=(), and SEG().