clipper.hpp File Reference
#include <vector>
#include <list>
#include <set>
#include <stdexcept>
#include <cstring>
#include <cstdlib>
#include <ostream>
#include <functional>
#include <queue>
Include dependency graph for clipper.hpp:

Go to the source code of this file.

Classes

struct  ClipperLib::IntPoint
 
struct  ClipperLib::DoublePoint
 
class  ClipperLib::PolyNode
 
class  ClipperLib::PolyTree
 
struct  ClipperLib::IntRect
 
class  ClipperLib::ClipperBase
 
class  ClipperLib::Clipper
 
class  ClipperLib::ClipperOffset
 
class  ClipperLib::clipperException
 

Namespaces

namespace  ClipperLib
 

Macros

#define CLIPPER_VERSION   "6.4.2"
 
#define use_xyz
 
#define use_lines
 

Typedefs

typedef signed long long ClipperLib::cInt
 
typedef signed long long ClipperLib::long64
 
typedef unsigned long long ClipperLib::ulong64
 
typedef std::vector< IntPoint > ClipperLib::Path
 
typedef std::vector< Path > ClipperLib::Paths
 
typedef void(* ClipperLib::ZFillCallback) (IntPoint &e1bot, IntPoint &e1top, IntPoint &e2bot, IntPoint &e2top, IntPoint &pt)
 
typedef std::vector< PolyNode * > ClipperLib::PolyNodes
 
typedef std::vector< OutRec * > ClipperLib::PolyOutList
 
typedef std::vector< TEdge * > ClipperLib::EdgeList
 
typedef std::vector< Join * > ClipperLib::JoinList
 
typedef std::vector< IntersectNode * > ClipperLib::IntersectList
 

Enumerations

enum  ClipperLib::ClipType { ClipperLib::ctIntersection , ClipperLib::ctUnion , ClipperLib::ctDifference , ClipperLib::ctXor }
 
enum  ClipperLib::PolyType { ClipperLib::ptSubject , ClipperLib::ptClip }
 
enum  ClipperLib::PolyFillType { ClipperLib::pftEvenOdd , ClipperLib::pftNonZero , ClipperLib::pftPositive , ClipperLib::pftNegative }
 
enum  ClipperLib::InitOptions { ClipperLib::ioReverseSolution = 1 , ClipperLib::ioStrictlySimple = 2 , ClipperLib::ioPreserveCollinear = 4 }
 
enum  ClipperLib::JoinType { ClipperLib::jtSquare , ClipperLib::jtRound , ClipperLib::jtMiter }
 
enum  ClipperLib::EndType {
  ClipperLib::etClosedPolygon , ClipperLib::etClosedLine , ClipperLib::etOpenButt , ClipperLib::etOpenSquare ,
  ClipperLib::etOpenRound
}
 
enum  ClipperLib::EdgeSide { ClipperLib::esLeft = 1 , ClipperLib::esRight = 2 }
 

Functions

Path & ClipperLib::operator<< (Path &poly, const IntPoint &p)
 
Paths & ClipperLib::operator<< (Paths &polys, const Path &p)
 
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)
 
bool ClipperLib::Orientation (const Path &poly)
 
double ClipperLib::Area (const Path &poly)
 
int ClipperLib::PointInPolygon (const IntPoint &pt, const Path &path)
 
void ClipperLib::SimplifyPolygon (const Path &in_poly, Paths &out_polys, PolyFillType fillType=pftEvenOdd)
 
void ClipperLib::SimplifyPolygons (const Paths &in_polys, Paths &out_polys, PolyFillType fillType=pftEvenOdd)
 
void ClipperLib::SimplifyPolygons (Paths &polys, PolyFillType fillType=pftEvenOdd)
 
void ClipperLib::CleanPolygon (const Path &in_poly, Path &out_poly, double distance=1.415)
 
void ClipperLib::CleanPolygon (Path &poly, double distance=1.415)
 
void ClipperLib::CleanPolygons (const Paths &in_polys, Paths &out_polys, double distance=1.415)
 
void ClipperLib::CleanPolygons (Paths &polys, double distance=1.415)
 
void ClipperLib::MinkowskiSum (const Path &pattern, const Path &path, Paths &solution, bool pathIsClosed)
 
void ClipperLib::MinkowskiSum (const Path &pattern, const Paths &paths, Paths &solution, bool pathIsClosed)
 
void ClipperLib::MinkowskiDiff (const Path &poly1, const Path &poly2, Paths &solution)
 
void ClipperLib::PolyTreeToPaths (const PolyTree &polytree, Paths &paths)
 
void ClipperLib::ClosedPathsFromPolyTree (const PolyTree &polytree, Paths &paths)
 
void ClipperLib::OpenPathsFromPolyTree (PolyTree &polytree, Paths &paths)
 
void ClipperLib::ReversePath (Path &p)
 
void ClipperLib::ReversePaths (Paths &p)
 

Variables

static cInt const ClipperLib::loRange = 0x3FFFFFFF
 
static cInt const ClipperLib::hiRange = 0x3FFFFFFFFFFFFFFFLL
 

Macro Definition Documentation

◆ CLIPPER_VERSION

#define CLIPPER_VERSION   "6.4.2"

◆ use_lines

#define use_lines

◆ use_xyz

#define use_xyz