v0.14.0 |
Classes | |
class | Clipper |
class | ClipperBase |
class | clipperException |
class | ClipperOffset |
struct | DoublePoint |
class | Int128 |
struct | IntersectNode |
struct | IntPoint |
struct | IntRect |
struct | Join |
struct | LocalMinimum |
struct | LocMinSorter |
struct | OutPt |
struct | OutRec |
class | PolyNode |
class | PolyTree |
struct | TEdge |
Typedefs | |
typedef signed long long | cInt |
typedef signed long long | long64 |
typedef unsigned long long | ulong64 |
typedef std::vector< IntPoint > | Path |
typedef std::vector< Path > | Paths |
typedef std::vector< PolyNode * > | PolyNodes |
typedef std::vector< OutRec * > | PolyOutList |
typedef std::vector< TEdge * > | EdgeList |
typedef std::vector< Join * > | JoinList |
typedef std::vector< IntersectNode * > | IntersectList |
Enumerations | |
enum | ClipType { ctIntersection, ctUnion, ctDifference, ctXor } |
enum | PolyType { ptSubject, ptClip } |
enum | PolyFillType { pftEvenOdd, pftNonZero, pftPositive, pftNegative } |
enum | InitOptions { ioReverseSolution = 1, ioStrictlySimple = 2, ioPreserveCollinear = 4 } |
enum | JoinType { jtSquare, jtRound, jtMiter } |
enum | EndType { etClosedPolygon, etClosedLine, etOpenButt, etOpenSquare, etOpenRound } |
enum | EdgeSide { esLeft = 1, esRight = 2 } |
enum | Direction { dRightToLeft, dLeftToRight } |
enum | NodeType { ntAny, ntOpen, ntClosed } |
Functions | |
Path & | operator<< (Path &poly, const IntPoint &p) |
Paths & | operator<< (Paths &polys, const Path &p) |
std::ostream & | operator<< (std::ostream &s, const IntPoint &p) |
std::ostream & | operator<< (std::ostream &s, const Path &p) |
std::ostream & | operator<< (std::ostream &s, const Paths &p) |
bool | Orientation (const Path &poly) |
double | Area (const Path &poly) |
int | PointInPolygon (const IntPoint &pt, const Path &path) |
void | SimplifyPolygon (const Path &in_poly, Paths &out_polys, PolyFillType fillType=pftEvenOdd) |
void | SimplifyPolygons (const Paths &in_polys, Paths &out_polys, PolyFillType fillType=pftEvenOdd) |
void | SimplifyPolygons (Paths &polys, PolyFillType fillType=pftEvenOdd) |
void | CleanPolygon (const Path &in_poly, Path &out_poly, double distance=1.415) |
void | CleanPolygon (Path &poly, double distance=1.415) |
void | CleanPolygons (const Paths &in_polys, Paths &out_polys, double distance=1.415) |
void | CleanPolygons (Paths &polys, double distance=1.415) |
void | MinkowskiSum (const Path &pattern, const Path &path, Paths &solution, bool pathIsClosed) |
void | MinkowskiSum (const Path &pattern, const Paths &paths, Paths &solution, bool pathIsClosed) |
void | MinkowskiDiff (const Path &poly1, const Path &poly2, Paths &solution) |
void | PolyTreeToPaths (const PolyTree &polytree, Paths &paths) |
void | ClosedPathsFromPolyTree (const PolyTree &polytree, Paths &paths) |
void | OpenPathsFromPolyTree (PolyTree &polytree, Paths &paths) |
void | ReversePath (Path &p) |
void | ReversePaths (Paths &p) |
cInt | Round (double val) |
cInt | Abs (cInt val) |
Int128 | Int128Mul (long64 lhs, long64 rhs) |
double | Area (const OutPt *op) |
double | Area (const OutRec &outRec) |
bool | PointIsVertex (const IntPoint &Pt, OutPt *pp) |
int | PointInPolygon (const IntPoint &pt, OutPt *op) |
bool | Poly2ContainsPoly1 (OutPt *OutPt1, OutPt *OutPt2) |
bool | SlopesEqual (const TEdge &e1, const TEdge &e2, bool UseFullInt64Range) |
bool | SlopesEqual (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, bool UseFullInt64Range) |
bool | SlopesEqual (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, const IntPoint pt4, bool UseFullInt64Range) |
bool | IsHorizontal (TEdge &e) |
double | GetDx (const IntPoint pt1, const IntPoint pt2) |
void | SetDx (TEdge &e) |
void | SwapSides (TEdge &Edge1, TEdge &Edge2) |
void | SwapPolyIndexes (TEdge &Edge1, TEdge &Edge2) |
cInt | TopX (TEdge &edge, const cInt currentY) |
void | IntersectPoint (TEdge &Edge1, TEdge &Edge2, IntPoint &ip) |
void | ReversePolyPtLinks (OutPt *pp) |
void | DisposeOutPts (OutPt *&pp) |
void | InitEdge (TEdge *e, TEdge *eNext, TEdge *ePrev, const IntPoint &Pt) |
void | InitEdge2 (TEdge &e, PolyType Pt) |
TEdge * | RemoveEdge (TEdge *e) |
void | ReverseHorizontal (TEdge &e) |
void | SwapPoints (IntPoint &pt1, IntPoint &pt2) |
bool | GetOverlapSegment (IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, IntPoint pt2b, IntPoint &pt1, IntPoint &pt2) |
bool | FirstIsBottomPt (const OutPt *btmPt1, const OutPt *btmPt2) |
OutPt * | GetBottomPt (OutPt *pp) |
bool | Pt2IsBetweenPt1AndPt3 (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3) |
bool | HorzSegmentsOverlap (cInt seg1a, cInt seg1b, cInt seg2a, cInt seg2b) |
void | RangeTest (const IntPoint &Pt, bool &useFullRange) |
TEdge * | FindNextLocMin (TEdge *E) |
OutRec * | GetLowermostRec (OutRec *outRec1, OutRec *outRec2) |
bool | OutRec1RightOfOutRec2 (OutRec *outRec1, OutRec *outRec2) |
bool | IsMinima (TEdge *e) |
bool | IsMaxima (TEdge *e, const cInt Y) |
bool | IsIntermediate (TEdge *e, const cInt Y) |
TEdge * | GetMaximaPair (TEdge *e) |
TEdge * | GetMaximaPairEx (TEdge *e) |
TEdge * | GetNextInAEL (TEdge *e, Direction dir) |
void | GetHorzDirection (TEdge &HorzEdge, Direction &Dir, cInt &Left, cInt &Right) |
bool | IntersectListSort (IntersectNode *node1, IntersectNode *node2) |
bool | EdgesAdjacent (const IntersectNode &inode) |
int | PointCount (OutPt *Pts) |
void | SwapIntersectNodes (IntersectNode &int1, IntersectNode &int2) |
bool | E2InsertsBeforeE1 (TEdge &e1, TEdge &e2) |
bool | GetOverlap (const cInt a1, const cInt a2, const cInt b1, const cInt b2, cInt &Left, cInt &Right) |
void | UpdateOutPtIdxs (OutRec &outrec) |
OutPt * | DupOutPt (OutPt *outPt, bool InsertAfter) |
bool | JoinHorz (OutPt *op1, OutPt *op1b, OutPt *op2, OutPt *op2b, const IntPoint Pt, bool DiscardLeft) |
static OutRec * | ParseFirstLeft (OutRec *FirstLeft) |
DoublePoint | GetUnitNormal (const IntPoint &pt1, const IntPoint &pt2) |
double | DistanceSqrd (const IntPoint &pt1, const IntPoint &pt2) |
double | DistanceFromLineSqrd (const IntPoint &pt, const IntPoint &ln1, const IntPoint &ln2) |
bool | SlopesNearCollinear (const IntPoint &pt1, const IntPoint &pt2, const IntPoint &pt3, double distSqrd) |
bool | PointsAreClose (IntPoint pt1, IntPoint pt2, double distSqrd) |
OutPt * | ExcludeOp (OutPt *op) |
void | Minkowski (const Path &poly, const Path &path, Paths &solution, bool isSum, bool isClosed) |
void | TranslatePath (const Path &input, Path &output, const IntPoint delta) |
void | AddPolyNodeToPaths (const PolyNode &polynode, NodeType nodetype, Paths &paths) |
Variables | |
static const cInt | loRange = 0x3FFFFFFF |
static const cInt | hiRange = 0x3FFFFFFFFFFFFFFFLL |
static const double | pi = 3.141592653589793238 |
static const double | two_pi = pi *2 |
static const double | def_arc_tolerance = 0.25 |
static const int | Unassigned = -1 |
static const int | Skip = -2 |
typedef signed long long ClipperLib::cInt |
Definition at line 77 of file clipper.hpp.
typedef std::vector< TEdge* > ClipperLib::EdgeList |
Definition at line 209 of file clipper.hpp.
typedef std::vector< IntersectNode* > ClipperLib::IntersectList |
Definition at line 211 of file clipper.hpp.
typedef std::vector< Join* > ClipperLib::JoinList |
Definition at line 210 of file clipper.hpp.
typedef signed long long ClipperLib::long64 |
Definition at line 80 of file clipper.hpp.
typedef std::vector< IntPoint > ClipperLib::Path |
Definition at line 106 of file clipper.hpp.
typedef std::vector< Path > ClipperLib::Paths |
Definition at line 107 of file clipper.hpp.
typedef std::vector< PolyNode* > ClipperLib::PolyNodes |
Definition at line 133 of file clipper.hpp.
typedef std::vector< OutRec* > ClipperLib::PolyOutList |
Definition at line 206 of file clipper.hpp.
typedef unsigned long long ClipperLib::ulong64 |
Definition at line 81 of file clipper.hpp.
enum ClipperLib::ClipType |
enum ClipperLib::EdgeSide |
Enumerator | |
---|---|
esLeft | |
esRight |
Definition at line 198 of file clipper.hpp.
enum ClipperLib::EndType |
Enumerator | |
---|---|
etClosedPolygon | |
etClosedLine | |
etOpenButt | |
etOpenSquare | |
etOpenRound |
Definition at line 131 of file clipper.hpp.
Enumerator | |
---|---|
ioReverseSolution | |
ioStrictlySimple | |
ioPreserveCollinear |
Definition at line 129 of file clipper.hpp.
enum ClipperLib::JoinType |
Enumerator | |
---|---|
jtSquare | |
jtRound | |
jtMiter |
Definition at line 130 of file clipper.hpp.
enum ClipperLib::NodeType |
Enumerator | |
---|---|
ntAny | |
ntOpen | |
ntClosed |
Definition at line 4589 of file clipper.cpp.
enum ClipperLib::PolyType |
Definition at line 179 of file clipper.cpp.
Definition at line 4591 of file clipper.cpp.
Definition at line 442 of file clipper.cpp.
Definition at line 455 of file clipper.cpp.
Definition at line 427 of file clipper.cpp.
Definition at line 4419 of file clipper.cpp.
Definition at line 4479 of file clipper.cpp.
void ClipperLib::CleanPolygons | ( | const Paths & | in_polys, |
Paths & | out_polys, | ||
double | distance = 1.415 |
||
) |
Definition at line 4485 of file clipper.cpp.
Definition at line 4493 of file clipper.cpp.
void ClipperLib::DisposeOutPts | ( | OutPt *& | pp | ) |
Definition at line 742 of file clipper.cpp.
double ClipperLib::DistanceFromLineSqrd | ( | const IntPoint & | pt, |
const IntPoint & | ln1, | ||
const IntPoint & | ln2 | ||
) |
Definition at line 4357 of file clipper.cpp.
Definition at line 4349 of file clipper.cpp.
Definition at line 3377 of file clipper.cpp.
Definition at line 3307 of file clipper.cpp.
|
inline |
Definition at line 2959 of file clipper.cpp.
Definition at line 4409 of file clipper.cpp.
Definition at line 834 of file clipper.cpp.
Definition at line 858 of file clipper.cpp.
Definition at line 620 of file clipper.cpp.
Definition at line 2646 of file clipper.cpp.
Definition at line 2363 of file clipper.cpp.
Definition at line 2574 of file clipper.cpp.
Definition at line 2584 of file clipper.cpp.
Definition at line 2640 of file clipper.cpp.
bool ClipperLib::GetOverlap | ( | const cInt | a1, |
const cInt | a2, | ||
const cInt | b1, | ||
const cInt | b2, | ||
cInt & | Left, | ||
cInt & | Right | ||
) |
Definition at line 3319 of file clipper.cpp.
bool ClipperLib::GetOverlapSegment | ( | IntPoint | pt1a, |
IntPoint | pt1b, | ||
IntPoint | pt2a, | ||
IntPoint | pt2b, | ||
IntPoint & | pt1, | ||
IntPoint & | pt2 | ||
) |
Definition at line 812 of file clipper.cpp.
DoublePoint ClipperLib::GetUnitNormal | ( | const IntPoint & | pt1, |
const IntPoint & | pt2 | ||
) |
Definition at line 3798 of file clipper.cpp.
Definition at line 908 of file clipper.cpp.
Definition at line 755 of file clipper.cpp.
Definition at line 765 of file clipper.cpp.
Definition at line 390 of file clipper.cpp.
bool ClipperLib::IntersectListSort | ( | IntersectNode * | node1, |
IntersectNode * | node2 | ||
) |
Definition at line 2953 of file clipper.cpp.
Definition at line 658 of file clipper.cpp.
Definition at line 614 of file clipper.cpp.
Definition at line 2568 of file clipper.cpp.
Definition at line 2562 of file clipper.cpp.
Definition at line 2556 of file clipper.cpp.
bool ClipperLib::JoinHorz | ( | OutPt * | op1, |
OutPt * | op1b, | ||
OutPt * | op2, | ||
OutPt * | op2b, | ||
const IntPoint | Pt, | ||
bool | DiscardLeft | ||
) |
Definition at line 3400 of file clipper.cpp.
void ClipperLib::Minkowski | ( | const Path & | poly, |
const Path & | path, | ||
Paths & | solution, | ||
bool | isSum, | ||
bool | isClosed | ||
) |
Definition at line 4499 of file clipper.cpp.
Definition at line 4580 of file clipper.cpp.
void ClipperLib::MinkowskiSum | ( | const Path & | pattern, |
const Path & | path, | ||
Paths & | solution, | ||
bool | pathIsClosed | ||
) |
Definition at line 4543 of file clipper.cpp.
void ClipperLib::MinkowskiSum | ( | const Path & | pattern, |
const Paths & | paths, | ||
Paths & | solution, | ||
bool | pathIsClosed | ||
) |
Definition at line 4561 of file clipper.cpp.
Definition at line 4620 of file clipper.cpp.
Definition at line 109 of file clipper.hpp.
Definition at line 110 of file clipper.hpp.
std::ostream & ClipperLib::operator<< | ( | std::ostream & | s, |
const IntPoint & | p | ||
) |
Definition at line 4631 of file clipper.cpp.
std::ostream & ClipperLib::operator<< | ( | std::ostream & | s, |
const Path & | p | ||
) |
Definition at line 4638 of file clipper.cpp.
std::ostream & ClipperLib::operator<< | ( | std::ostream & | s, |
const Paths & | p | ||
) |
Definition at line 4649 of file clipper.cpp.
Definition at line 421 of file clipper.cpp.
Definition at line 2383 of file clipper.cpp.
Definition at line 3646 of file clipper.cpp.
int ClipperLib::PointCount | ( | OutPt * | Pts | ) |
Definition at line 3213 of file clipper.cpp.
Definition at line 476 of file clipper.cpp.
Definition at line 520 of file clipper.cpp.
Definition at line 461 of file clipper.cpp.
Definition at line 4401 of file clipper.cpp.
Definition at line 562 of file clipper.cpp.
Definition at line 4604 of file clipper.cpp.
bool ClipperLib::Pt2IsBetweenPt1AndPt3 | ( | const IntPoint | pt1, |
const IntPoint | pt2, | ||
const IntPoint | pt3 | ||
) |
Definition at line 896 of file clipper.cpp.
Definition at line 932 of file clipper.cpp.
Definition at line 781 of file clipper.cpp.
|
inline |
Definition at line 792 of file clipper.cpp.
void ClipperLib::ReversePath | ( | Path & | p | ) |
Definition at line 4312 of file clipper.cpp.
void ClipperLib::ReversePaths | ( | Paths & | p | ) |
Definition at line 4318 of file clipper.cpp.
void ClipperLib::ReversePolyPtLinks | ( | OutPt * | pp | ) |
Definition at line 728 of file clipper.cpp.
Definition at line 172 of file clipper.cpp.
|
inline |
Definition at line 627 of file clipper.cpp.
void ClipperLib::SimplifyPolygon | ( | const Path & | in_poly, |
Paths & | out_polys, | ||
PolyFillType | fillType = pftEvenOdd |
||
) |
Definition at line 4325 of file clipper.cpp.
void ClipperLib::SimplifyPolygons | ( | const Paths & | in_polys, |
Paths & | out_polys, | ||
PolyFillType | fillType = pftEvenOdd |
||
) |
Definition at line 4334 of file clipper.cpp.
void ClipperLib::SimplifyPolygons | ( | Paths & | polys, |
PolyFillType | fillType = pftEvenOdd |
||
) |
Definition at line 4343 of file clipper.cpp.
bool ClipperLib::SlopesEqual | ( | const IntPoint | pt1, |
const IntPoint | pt2, | ||
const IntPoint | pt3, | ||
bool | UseFullInt64Range | ||
) |
Definition at line 590 of file clipper.cpp.
bool ClipperLib::SlopesEqual | ( | const IntPoint | pt1, |
const IntPoint | pt2, | ||
const IntPoint | pt3, | ||
const IntPoint | pt4, | ||
bool | UseFullInt64Range | ||
) |
Definition at line 602 of file clipper.cpp.
Definition at line 577 of file clipper.cpp.
bool ClipperLib::SlopesNearCollinear | ( | const IntPoint & | pt1, |
const IntPoint & | pt2, | ||
const IntPoint & | pt3, | ||
double | distSqrd | ||
) |
Definition at line 4374 of file clipper.cpp.
void ClipperLib::SwapIntersectNodes | ( | IntersectNode & | int1, |
IntersectNode & | int2 | ||
) |
Definition at line 3294 of file clipper.cpp.
Definition at line 804 of file clipper.cpp.
Definition at line 643 of file clipper.cpp.
Definition at line 635 of file clipper.cpp.
Definition at line 651 of file clipper.cpp.
Definition at line 4552 of file clipper.cpp.
|
inline |
Definition at line 3336 of file clipper.cpp.
|
static |
Definition at line 91 of file clipper.cpp.
|
static |
Definition at line 79 of file clipper.hpp.
|
static |
Definition at line 78 of file clipper.hpp.
|
static |
Definition at line 89 of file clipper.cpp.
|
static |
Definition at line 96 of file clipper.cpp.
Definition at line 90 of file clipper.cpp.
|
static |
Definition at line 95 of file clipper.cpp.