Classes | |
class | Adaptive2d |
struct | AdaptiveOutput |
class | BoundBox |
class | ClearedArea |
class | EngagePoint |
class | Interpolation |
class | PerfCounter |
Typedefs | |
typedef std::vector< DPoint > | DPath |
typedef std::vector< DPath > | DPaths |
typedef std::pair< double, double > | DPoint |
typedef std::pair< int, DPath > | TPath |
typedef std::vector< TPath > | TPaths |
Enumerations | |
enum | MotionType { mtCutting = 0, mtLinkClear = 1, mtLinkNotClear = 2, mtLinkClearAtPrevPass = 3 } |
enum | OperationType { otClearingInside = 0, otClearingOutside = 1, otProfilingInside = 2, otProfilingOutside = 3 } |
Functions | |
double | Angle3Points (const DoublePoint &p1, const DoublePoint &p2, const DoublePoint &p3) |
void | appendDirectChildPaths (Paths &outPaths, const Path &path, const Paths &paths) |
void | AverageDirection (const vector< DoublePoint > &unityVectors, DoublePoint &output) |
double | averageDV (const vector< double > &vec) |
bool | Circle2CircleIntersect (const IntPoint &c1, const IntPoint &c2, double radius, pair< DoublePoint, DoublePoint > &intersections) |
void | CleanPath (const Path &inp, Path &outpt, double tolerance) |
IntPoint | Compute2DPolygonCentroid (const Path &vertices) |
void | ConnectPaths (Paths input, Paths &output) |
void | DeduplicatePaths (const Paths &inputs, Paths &outputs) |
DoublePoint | DirectionV (const IntPoint &pt1, const IntPoint &pt2) |
double | DistancePointToLineSegSquared (const IntPoint &p1, const IntPoint &p2, const IntPoint &pt, IntPoint &closestPoint, double &ptParameter, bool clamp=true) |
double | DistancePointToPathsSqrd (const Paths &paths, const IntPoint &pt, IntPoint &closestPointOnPath, size_t &clpPathIndex, size_t &clpSegmentIndex, double &clpParameter) |
double | DistanceSqrd (const IntPoint &pt1, const IntPoint &pt2) |
DoublePoint | GetPathDirectionV (const Path &pth, size_t pointIndex) |
int | getPathNestingLevel (const Path &path, const Paths &paths) |
bool | HasAnyPath (const Paths &paths) |
bool | IntersectionPoint (const IntPoint &s1p1, const IntPoint &s1p2, const IntPoint &s2p1, const IntPoint &s2p2, IntPoint &intersection) |
bool | IntersectionPoint (const Paths &paths, const IntPoint &p1, const IntPoint &p2, IntPoint &intersection) |
bool | IsPointWithinCutRegion (const Paths &toolBoundPaths, const IntPoint &point) |
bool | Line2CircleIntersect (const IntPoint &c, double radius, const IntPoint &p1, const IntPoint &p2, vector< DoublePoint > &result, bool clamp=true) |
void | NormalizeV (DoublePoint &pt) |
std::ostream & | operator<< (std::ostream &s, const BoundBox &p) |
double | PathLength (const Path &path) |
double | PointSideOfLine (const IntPoint &p1, const IntPoint &p2, const IntPoint &pt) |
bool | PopPathWithClosestPoint (Paths &paths, IntPoint p1, Path &result) |
DoublePoint | rotate (const DoublePoint &in, double rad) |
void | ScaleDownPaths (Paths &paths, long scaleFactor) |
void | ScaleUpPaths (Paths &paths, long scaleFactor) |
bool | SetSegmentLength (const IntPoint &pt1, IntPoint &pt2, double new_length) |
void | SmoothPaths (Paths &paths, double stepSize, long pointCount, long iterations) |
Variables | |
PerfCounter | Perf_AppendToolPath ("AppendToolPath") |
PerfCounter | Perf_CalcCutAreaCirc ("CalcCutArea") |
PerfCounter | Perf_CalcCutAreaClip ("CalcCutAreaClip") |
PerfCounter | Perf_DistanceToBoundary ("DistanceToBoundary") |
PerfCounter | Perf_ExpandCleared ("ExpandCleared") |
PerfCounter | Perf_IsAllowedToCutTrough ("IsAllowedToCutTrough") |
PerfCounter | Perf_IsClearPath ("IsClearPath") |
PerfCounter | Perf_NextEngagePoint ("NextEngagePoint") |
PerfCounter | Perf_PointIterations ("PointIterations") |
PerfCounter | Perf_ProcessPolyNode ("ProcessPolyNode") |
Typedef Documentation
◆ DPath
typedef std::vector<DPoint> AdaptivePath::DPath |
◆ DPaths
typedef std::vector<DPath> AdaptivePath::DPaths |
◆ DPoint
typedef std::pair<double, double> AdaptivePath::DPoint |
◆ TPath
typedef std::pair<int, DPath> AdaptivePath::TPath |
◆ TPaths
typedef std::vector<TPath> AdaptivePath::TPaths |
Enumeration Type Documentation
◆ MotionType
◆ OperationType
Function Documentation
◆ Angle3Points()
double AdaptivePath::Angle3Points | ( | const DoublePoint & | p1, |
const DoublePoint & | p2, | ||
const DoublePoint & | p3 | ||
) |
References ClipperLib::DoublePoint::X, and ClipperLib::DoublePoint::Y.
◆ appendDirectChildPaths()
void AdaptivePath::appendDirectChildPaths | ( | Paths & | outPaths, |
const Path & | path, | ||
const Paths & | paths | ||
) |
References getPathNestingLevel(), and ClipperLib::PointInPolygon().
Referenced by AdaptivePath::Adaptive2d::Execute().
◆ AverageDirection()
void AdaptivePath::AverageDirection | ( | const vector< DoublePoint > & | unityVectors, |
DoublePoint & | output | ||
) |
References ClipperLib::DoublePoint::X, and ClipperLib::DoublePoint::Y.
◆ averageDV()
double AdaptivePath::averageDV | ( | const vector< double > & | vec | ) |
◆ Circle2CircleIntersect()
bool AdaptivePath::Circle2CircleIntersect | ( | const IntPoint & | c1, |
const IntPoint & | c2, | ||
double | radius, | ||
pair< DoublePoint, DoublePoint > & | intersections | ||
) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
◆ CleanPath()
References ClipperLib::CleanPolygon(), DistancePointToPathsSqrd(), and DistanceSqrd().
Referenced by AdaptivePath::Adaptive2d::Execute(), and SmoothPaths().
◆ Compute2DPolygonCentroid()
References ClipperLib::DoublePoint::X, and ClipperLib::DoublePoint::Y.
◆ ConnectPaths()
References DistanceSqrd(), and ClipperLib::ReversePath().
Referenced by AdaptivePath::Adaptive2d::Execute().
◆ DeduplicatePaths()
References DistanceSqrd().
Referenced by AdaptivePath::Adaptive2d::Execute().
◆ DirectionV()
DoublePoint AdaptivePath::DirectionV | ( | const IntPoint & | pt1, |
const IntPoint & | pt2 | ||
) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by GetPathDirectionV().
◆ DistancePointToLineSegSquared()
double AdaptivePath::DistancePointToLineSegSquared | ( | const IntPoint & | p1, |
const IntPoint & | p2, | ||
const IntPoint & | pt, | ||
IntPoint & | closestPoint, | ||
double & | ptParameter, | ||
bool | clamp = true |
||
) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by DistancePointToPathsSqrd().
◆ DistancePointToPathsSqrd()
double AdaptivePath::DistancePointToPathsSqrd | ( | const Paths & | paths, |
const IntPoint & | pt, | ||
IntPoint & | closestPointOnPath, | ||
size_t & | clpPathIndex, | ||
size_t & | clpSegmentIndex, | ||
double & | clpParameter | ||
) |
References DistancePointToLineSegSquared().
Referenced by CleanPath().
◆ DistanceSqrd()
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by CleanPath(), ConnectPaths(), DeduplicatePaths(), AdaptivePath::EngagePoint::getCurrentDir(), AdaptivePath::EngagePoint::getCurrentPoint(), AdaptivePath::EngagePoint::moveToClosestPoint(), PathLength(), PopPathWithClosestPoint(), and SmoothPaths().
◆ GetPathDirectionV()
DoublePoint AdaptivePath::GetPathDirectionV | ( | const Path & | pth, |
size_t | pointIndex | ||
) |
References DirectionV().
◆ getPathNestingLevel()
References ClipperLib::PointInPolygon().
Referenced by appendDirectChildPaths(), and AdaptivePath::Adaptive2d::Execute().
◆ HasAnyPath()
◆ IntersectionPoint() [1/2]
bool AdaptivePath::IntersectionPoint | ( | const IntPoint & | s1p1, |
const IntPoint & | s1p2, | ||
const IntPoint & | s2p1, | ||
const IntPoint & | s2p2, | ||
IntPoint & | intersection | ||
) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
◆ IntersectionPoint() [2/2]
◆ IsPointWithinCutRegion()
References ClipperLib::PointInPolygon().
◆ Line2CircleIntersect()
◆ NormalizeV()
void AdaptivePath::NormalizeV | ( | DoublePoint & | pt | ) |
References ClipperLib::DoublePoint::X, and ClipperLib::DoublePoint::Y.
◆ operator<<()
std::ostream& AdaptivePath::operator<< | ( | std::ostream & | s, |
const BoundBox & | p | ||
) |
◆ PathLength()
double AdaptivePath::PathLength | ( | const Path & | path | ) |
References DistanceSqrd().
◆ PointSideOfLine()
double AdaptivePath::PointSideOfLine | ( | const IntPoint & | p1, |
const IntPoint & | p2, | ||
const IntPoint & | pt | ||
) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
◆ PopPathWithClosestPoint()
References DraftVecUtils::dist(), and DistanceSqrd().
Referenced by AdaptivePath::EngagePoint::moveToClosestPoint().
◆ rotate()
DoublePoint AdaptivePath::rotate | ( | const DoublePoint & | in, |
double | rad | ||
) |
◆ ScaleDownPaths()
void AdaptivePath::ScaleDownPaths | ( | Paths & | paths, |
long | scaleFactor | ||
) |
Referenced by SmoothPaths().
◆ ScaleUpPaths()
void AdaptivePath::ScaleUpPaths | ( | Paths & | paths, |
long | scaleFactor | ||
) |
Referenced by SmoothPaths().
◆ SetSegmentLength()
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
◆ SmoothPaths()
void AdaptivePath::SmoothPaths | ( | Paths & | paths, |
double | stepSize, | ||
long | pointCount, | ||
long | iterations | ||
) |
Variable Documentation
◆ Perf_AppendToolPath
PerfCounter AdaptivePath::Perf_AppendToolPath("AppendToolPath") |
◆ Perf_CalcCutAreaCirc
PerfCounter AdaptivePath::Perf_CalcCutAreaCirc("CalcCutArea") |
◆ Perf_CalcCutAreaClip
PerfCounter AdaptivePath::Perf_CalcCutAreaClip("CalcCutAreaClip") |
◆ Perf_DistanceToBoundary
PerfCounter AdaptivePath::Perf_DistanceToBoundary("DistanceToBoundary") |
◆ Perf_ExpandCleared
PerfCounter AdaptivePath::Perf_ExpandCleared("ExpandCleared") |
Referenced by AdaptivePath::ClearedArea::ExpandCleared().
◆ Perf_IsAllowedToCutTrough
PerfCounter AdaptivePath::Perf_IsAllowedToCutTrough("IsAllowedToCutTrough") |
◆ Perf_IsClearPath
PerfCounter AdaptivePath::Perf_IsClearPath("IsClearPath") |
◆ Perf_NextEngagePoint
PerfCounter AdaptivePath::Perf_NextEngagePoint("NextEngagePoint") |
Referenced by AdaptivePath::EngagePoint::nextEngagePoint().
◆ Perf_PointIterations
PerfCounter AdaptivePath::Perf_PointIterations("PointIterations") |
◆ Perf_ProcessPolyNode
PerfCounter AdaptivePath::Perf_ProcessPolyNode("ProcessPolyNode") |