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().