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 std::vector< TEdge * > | EdgeList |
| typedef std::vector< IntersectNode * > | IntersectList |
| typedef std::vector< Join * > | JoinList |
| typedef signed long long | long64 |
| typedef std::vector< IntPoint > | Path |
| typedef std::vector< Path > | Paths |
| typedef std::vector< PolyNode * > | PolyNodes |
| typedef std::vector< OutRec * > | PolyOutList |
| typedef unsigned long long | ulong64 |
Enumerations | |
| enum | ClipType { ctIntersection , ctUnion , ctDifference , ctXor } |
| enum | Direction { dRightToLeft , dLeftToRight } |
| enum | EdgeSide { esLeft = 1 , esRight = 2 } |
| enum | EndType { etClosedPolygon , etClosedLine , etOpenButt , etOpenSquare , etOpenRound } |
| enum | InitOptions { ioReverseSolution = 1 , ioStrictlySimple = 2 , ioPreserveCollinear = 4 } |
| enum | JoinType { jtSquare , jtRound , jtMiter } |
| enum | NodeType { ntAny , ntOpen , ntClosed } |
| enum | PolyFillType { pftEvenOdd , pftNonZero , pftPositive , pftNegative } |
| enum | PolyType { ptSubject , ptClip } |
Functions | |
| cInt | Abs (cInt val) |
| void | AddPolyNodeToPaths (const PolyNode &polynode, NodeType nodetype, Paths &paths) |
| double | Area (const OutRec &outRec) |
| double | Area (const Path &poly) |
| void | CleanPolygon (const Path &in_poly, Path &out_poly, double distance) |
| void | CleanPolygon (Path &poly, double distance) |
| void | CleanPolygons (const Paths &in_polys, Paths &out_polys, double distance) |
| void | CleanPolygons (Paths &polys, double distance) |
| void | ClosedPathsFromPolyTree (const PolyTree &polytree, Paths &paths) |
| void | DisposeOutPts (OutPt *&pp) |
| double | DistanceFromLineSqrd (const IntPoint &pt, const IntPoint &ln1, const IntPoint &ln2) |
| double | DistanceSqrd (const IntPoint &pt1, const IntPoint &pt2) |
| OutPt * | DupOutPt (OutPt *outPt, bool InsertAfter) |
| bool | E2InsertsBeforeE1 (TEdge &e1, TEdge &e2) |
| bool | EdgesAdjacent (const IntersectNode &inode) |
| OutPt * | ExcludeOp (OutPt *op) |
| TEdge * | FindNextLocMin (TEdge *E) |
| bool | FirstIsBottomPt (const OutPt *btmPt1, const OutPt *btmPt2) |
| OutPt * | GetBottomPt (OutPt *pp) |
| double | GetDx (const IntPoint pt1, const IntPoint pt2) |
| void | GetHorzDirection (TEdge &HorzEdge, Direction &Dir, cInt &Left, cInt &Right) |
| OutRec * | GetLowermostRec (OutRec *outRec1, OutRec *outRec2) |
| TEdge * | GetMaximaPair (TEdge *e) |
| TEdge * | GetNextInAEL (TEdge *e, Direction dir) |
| bool | GetOverlap (const cInt a1, const cInt a2, const cInt b1, const cInt b2, cInt &Left, cInt &Right) |
| bool | GetOverlapSegment (IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, IntPoint pt2b, IntPoint &pt1, IntPoint &pt2) |
| DoublePoint | GetUnitNormal (const IntPoint &pt1, const IntPoint &pt2) |
| bool | HorzSegmentsOverlap (cInt seg1a, cInt seg1b, cInt seg2a, cInt seg2b) |
| void | InitEdge (TEdge *e, TEdge *eNext, TEdge *ePrev, const IntPoint &Pt) |
| void | InitEdge2 (TEdge &e, PolyType Pt) |
| Int128 | Int128Mul (long64 lhs, long64 rhs) |
| bool | IntersectListSort (IntersectNode *node1, IntersectNode *node2) |
| void | IntersectPoint (TEdge &Edge1, TEdge &Edge2, IntPoint &ip) |
| bool | IsHorizontal (TEdge &e) |
| bool | IsIntermediate (TEdge *e, const cInt Y) |
| bool | IsMaxima (TEdge *e, const cInt Y) |
| bool | IsMinima (TEdge *e) |
| bool | JoinHorz (OutPt *op1, OutPt *op1b, OutPt *op2, OutPt *op2b, const IntPoint Pt, bool DiscardLeft) |
| void | Minkowski (const Path &poly, const Path &path, Paths &solution, bool isSum, bool isClosed) |
| void | MinkowskiDiff (const Path &poly1, const Path &poly2, Paths &solution) |
| 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 | OpenPathsFromPolyTree (PolyTree &polytree, Paths &paths) |
| 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) |
| bool | Param1RightOfParam2 (OutRec *outRec1, OutRec *outRec2) |
| static OutRec * | ParseFirstLeft (OutRec *FirstLeft) |
| int | PointCount (OutPt *Pts) |
| int | PointInPolygon (const IntPoint &pt, const Path &path) |
| int | PointInPolygon (const IntPoint &pt, OutPt *op) |
| bool | PointIsVertex (const IntPoint &Pt, OutPt *pp) |
| bool | PointsAreClose (IntPoint pt1, IntPoint pt2, double distSqrd) |
| bool | Poly2ContainsPoly1 (OutPt *OutPt1, OutPt *OutPt2) |
| void | PolyTreeToPaths (const PolyTree &polytree, Paths &paths) |
| bool | Pt2IsBetweenPt1AndPt3 (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3) |
| void | RangeTest (const IntPoint &Pt, bool &useFullRange) |
| TEdge * | RemoveEdge (TEdge *e) |
| void | ReverseHorizontal (TEdge &e) |
| void | ReversePath (Path &p) |
| void | ReversePaths (Paths &p) |
| void | ReversePolyPtLinks (OutPt *pp) |
| cInt | Round (double val) |
| void | SetDx (TEdge &e) |
| void | SimplifyPolygon (const Path &in_poly, Paths &out_polys, PolyFillType fillType) |
| void | SimplifyPolygons (const Paths &in_polys, Paths &out_polys, PolyFillType fillType) |
| void | SimplifyPolygons (Paths &polys, PolyFillType fillType) |
| 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 | SlopesEqual (const TEdge &e1, const TEdge &e2, bool UseFullInt64Range) |
| bool | SlopesNearCollinear (const IntPoint &pt1, const IntPoint &pt2, const IntPoint &pt3, double distSqrd) |
| void | Swap (cInt &val1, cInt &val2) |
| void | SwapIntersectNodes (IntersectNode &int1, IntersectNode &int2) |
| void | SwapPoints (IntPoint &pt1, IntPoint &pt2) |
| void | SwapPolyIndexes (TEdge &Edge1, TEdge &Edge2) |
| void | SwapSides (TEdge &Edge1, TEdge &Edge2) |
| cInt | TopX (TEdge &edge, const cInt currentY) |
| void | TranslatePath (const Path &input, Path &output, IntPoint delta) |
| void | UpdateOutPtIdxs (OutRec &outrec) |
Variables | |
| static double const | def_arc_tolerance = 0.25 |
| static cInt const | hiRange = 0x3FFFFFFFFFFFFFFFLL |
| static cInt const | loRange = 0x3FFFFFFF |
| static double const | pi = 3.141592653589793238 |
| static int const | Skip = -2 |
| static double const | two_pi = pi *2 |
| static int const | Unassigned = -1 |
| typedef signed long long ClipperLib::cInt |
| typedef std::vector< TEdge* > ClipperLib::EdgeList |
| typedef std::vector< IntersectNode* > ClipperLib::IntersectList |
| typedef std::vector< Join* > ClipperLib::JoinList |
| typedef signed long long ClipperLib::long64 |
| typedef std::vector< IntPoint > ClipperLib::Path |
| typedef std::vector< Path > ClipperLib::Paths |
| typedef std::vector< PolyNode* > ClipperLib::PolyNodes |
| typedef std::vector< OutRec* > ClipperLib::PolyOutList |
| typedef unsigned long long ClipperLib::ulong64 |
| enum ClipperLib::ClipType |
| enum ClipperLib::EdgeSide |
| enum ClipperLib::EndType |
| enum ClipperLib::JoinType |
| enum ClipperLib::NodeType |
| enum ClipperLib::PolyType |
Referenced by GetOverlapSegment(), and SlopesNearCollinear().
| double ClipperLib::Area | ( | const OutRec & | outRec | ) |
| double ClipperLib::Area | ( | const Path & | poly | ) |
Referenced by ClipperLib::Clipper::ExecuteInternal(), and Orientation().
References ExcludeOp(), ClipperLib::OutPt::Idx, ClipperLib::OutPt::Next, PointsAreClose(), ClipperLib::OutPt::Prev, ClipperLib::OutPt::Pt, and SlopesNearCollinear().
Referenced by AdaptivePath::CleanPath(), CleanPolygon(), and CleanPolygons().
| void ClipperLib::CleanPolygon | ( | Path & | poly, |
| double | distance | ||
| ) |
References CleanPolygon().
References CleanPolygon().
Referenced by CleanPolygons(), and AdaptivePath::ClearedArea::ExpandCleared().
| void ClipperLib::CleanPolygons | ( | Paths & | polys, |
| double | distance | ||
| ) |
References CleanPolygons().
References AddPolyNodeToPaths(), ntClosed, and ClipperLib::PolyTree::Total().
Referenced by CArea::Clip().
| void ClipperLib::DisposeOutPts | ( | OutPt *& | pp | ) |
References ClipperLib::OutPt::Next, and ClipperLib::OutPt::Prev.
| double ClipperLib::DistanceFromLineSqrd | ( | const IntPoint & | pt, |
| const IntPoint & | ln1, | ||
| const IntPoint & | ln2 | ||
| ) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by SlopesNearCollinear().
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
References ClipperLib::OutPt::Idx, ClipperLib::OutPt::Next, ClipperLib::OutPt::Prev, and ClipperLib::OutPt::Pt.
Referenced by JoinHorz().
| bool ClipperLib::EdgesAdjacent | ( | const IntersectNode & | inode | ) |
References ClipperLib::OutPt::Idx, ClipperLib::OutPt::Next, and ClipperLib::OutPt::Prev.
Referenced by CleanPolygon().
References GetDx(), ClipperLib::OutPt::Next, ClipperLib::OutPt::Prev, and ClipperLib::OutPt::Pt.
Referenced by GetBottomPt(), and GetLowermostRec().
References FirstIsBottomPt(), ClipperLib::OutPt::Next, ClipperLib::OutPt::Prev, ClipperLib::OutPt::Pt, ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by GetLowermostRec().
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by FirstIsBottomPt().
References ClipperLib::TEdge::Bot, dLeftToRight, dRightToLeft, ClipperLib::TEdge::Top, and ClipperLib::IntPoint::X.
References IsHorizontal(), and Skip.
References dLeftToRight.
| bool ClipperLib::GetOverlap | ( | const cInt | a1, |
| const cInt | a2, | ||
| const cInt | b1, | ||
| const cInt | b2, | ||
| cInt & | Left, | ||
| cInt & | Right | ||
| ) |
| bool ClipperLib::GetOverlapSegment | ( | IntPoint | pt1a, |
| IntPoint | pt1b, | ||
| IntPoint | pt2a, | ||
| IntPoint | pt2b, | ||
| IntPoint & | pt1, | ||
| IntPoint & | pt2 | ||
| ) |
References Abs(), SwapPoints(), ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
| DoublePoint ClipperLib::GetUnitNormal | ( | const IntPoint & | pt1, |
| const IntPoint & | pt2 | ||
| ) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
References Swap().
References Unassigned.
Referenced by ClipperLib::ClipperBase::AddPath().
References SetDx().
Referenced by ClipperLib::ClipperBase::AddPath().
References ClipperLib::Int128::hi, and ClipperLib::Int128::lo.
Referenced by SlopesEqual().
| bool ClipperLib::IntersectListSort | ( | IntersectNode * | node1, |
| IntersectNode * | node2 | ||
| ) |
References ClipperLib::IntersectNode::Pt, and ClipperLib::IntPoint::Y.
Referenced by FindNextLocMin(), GetMaximaPair(), IntersectPoint(), and ClipperLib::ClipperBase::ProcessBound().
| void ClipperLib::Minkowski | ( | const Path & | poly, |
| const Path & | path, | ||
| Paths & | solution, | ||
| bool | isSum, | ||
| bool | isClosed | ||
| ) |
References Orientation(), and ReversePath().
Referenced by MinkowskiDiff(), and MinkowskiSum().
References ClipperLib::ClipperBase::AddPaths(), ctUnion, Minkowski(), pftNonZero, and ptSubject.
| void ClipperLib::MinkowskiSum | ( | const Path & | pattern, |
| const Path & | path, | ||
| Paths & | solution, | ||
| bool | pathIsClosed | ||
| ) |
References ClipperLib::ClipperBase::AddPaths(), ctUnion, Minkowski(), pftNonZero, and ptSubject.
| void ClipperLib::MinkowskiSum | ( | const Path & | pattern, |
| const Paths & | paths, | ||
| Paths & | solution, | ||
| bool | pathIsClosed | ||
| ) |
References ctUnion, Minkowski(), pftNonZero, ptClip, ptSubject, and TranslatePath().
References ClipperLib::PolyNode::ChildCount(), ClipperLib::PolyNode::Childs, and ClipperLib::PolyTree::Total().
Referenced by CArea::Clip().
| std::ostream & ClipperLib::operator<< | ( | std::ostream & | s, |
| const IntPoint & | p | ||
| ) |
| std::ostream & ClipperLib::operator<< | ( | std::ostream & | s, |
| const Path & | p | ||
| ) |
| std::ostream & ClipperLib::operator<< | ( | std::ostream & | s, |
| const Paths & | p | ||
| ) |
References Area().
Referenced by Minkowski().
References ClipperLib::OutRec::FirstLeft.
References ClipperLib::OutRec::FirstLeft, and ClipperLib::OutRec::Pts.
References ClipperLib::OutPt::Next.
References ClipperLib::OutPt::Next, and ClipperLib::OutPt::Pt.
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by CleanPolygon().
References ClipperLib::OutPt::Next, PointInPolygon(), and ClipperLib::OutPt::Pt.
References AddPolyNodeToPaths(), ntAny, and ClipperLib::PolyTree::Total().
| bool ClipperLib::Pt2IsBetweenPt1AndPt3 | ( | const IntPoint | pt1, |
| const IntPoint | pt2, | ||
| const IntPoint | pt3 | ||
| ) |
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by ClipperLib::ClipperBase::AddPath().
References hiRange, loRange, RangeTest(), ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by ClipperLib::ClipperBase::AddPath(), and RangeTest().
Referenced by ClipperLib::ClipperBase::AddPath().
| void ClipperLib::ReverseHorizontal | ( | TEdge & | e | ) |
References Swap().
Referenced by ClipperLib::ClipperBase::AddPath(), and ClipperLib::ClipperBase::ProcessBound().
| void ClipperLib::ReversePath | ( | Path & | p | ) |
Referenced by AdaptivePath::ConnectPaths(), Minkowski(), and ReversePaths().
| void ClipperLib::ReversePaths | ( | Paths & | p | ) |
References ReversePath().
Referenced by AdaptivePath::Adaptive2d::Execute().
| void ClipperLib::ReversePolyPtLinks | ( | OutPt * | pp | ) |
References ClipperLib::OutPt::Next, and ClipperLib::OutPt::Prev.
Referenced by ClipperLib::Clipper::ExecuteInternal().
| cInt ClipperLib::Round | ( | double | val | ) |
Referenced by IntersectPoint(), and TopX().
| void ClipperLib::SetDx | ( | TEdge & | e | ) |
Referenced by InitEdge2().
| void ClipperLib::SimplifyPolygon | ( | const Path & | in_poly, |
| Paths & | out_polys, | ||
| PolyFillType | fillType | ||
| ) |
References ctUnion, ptSubject, and ClipperLib::Clipper::StrictlySimple().
| void ClipperLib::SimplifyPolygons | ( | const Paths & | in_polys, |
| Paths & | out_polys, | ||
| PolyFillType | fillType | ||
| ) |
References ctUnion, ptSubject, and ClipperLib::Clipper::StrictlySimple().
Referenced by AdaptivePath::Adaptive2d::Execute(), and SimplifyPolygons().
| void ClipperLib::SimplifyPolygons | ( | Paths & | polys, |
| PolyFillType | fillType | ||
| ) |
References SimplifyPolygons().
| bool ClipperLib::SlopesEqual | ( | const IntPoint | pt1, |
| const IntPoint | pt2, | ||
| const IntPoint | pt3, | ||
| bool | UseFullInt64Range | ||
| ) |
References Int128Mul(), ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
| bool ClipperLib::SlopesEqual | ( | const IntPoint | pt1, |
| const IntPoint | pt2, | ||
| const IntPoint | pt3, | ||
| const IntPoint | pt4, | ||
| bool | UseFullInt64Range | ||
| ) |
References Int128Mul(), ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
References ClipperLib::TEdge::Delta, Int128Mul(), ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by ClipperLib::ClipperBase::AddPath().
| bool ClipperLib::SlopesNearCollinear | ( | const IntPoint & | pt1, |
| const IntPoint & | pt2, | ||
| const IntPoint & | pt3, | ||
| double | distSqrd | ||
| ) |
References Abs(), DistanceFromLineSqrd(), ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by CleanPolygon().
Referenced by HorzSegmentsOverlap(), and ReverseHorizontal().
| void ClipperLib::SwapIntersectNodes | ( | IntersectNode & | int1, |
| IntersectNode & | int2 | ||
| ) |
Referenced by GetOverlapSegment().
References ClipperLib::TEdge::OutIdx.
References ClipperLib::TEdge::Side.
References ClipperLib::TEdge::Bot, ClipperLib::TEdge::Dx, Round(), ClipperLib::TEdge::Top, ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by E2InsertsBeforeE1(), and IntersectPoint().
References ClipperLib::IntPoint::X, and ClipperLib::IntPoint::Y.
Referenced by AdaptivePath::Adaptive2d::Execute(), and MinkowskiSum().
| void ClipperLib::UpdateOutPtIdxs | ( | OutRec & | outrec | ) |
|
static |
|
static |
Referenced by RangeTest().
|
static |
Referenced by RangeTest().
|
static |
|
static |
Referenced by ClipperLib::ClipperBase::AddPath(), GetMaximaPair(), and ClipperLib::ClipperBase::ProcessBound().
|
static |
|
static |
Referenced by InitEdge(), and ClipperLib::ClipperBase::Reset().