Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
clipper.hpp File Reference
#include <inttypes.h>
#include <functional>
#include <Eigen/Geometry>
#include <oneapi/tbb/scalable_allocator.h>
#include <array>
#include <vector>
#include <deque>
#include <stdexcept>
#include <cstring>
#include <cstdlib>
#include <ostream>
#include <queue>
+ Include dependency graph for clipper.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ClipperLib::PolyNode
 
class  ClipperLib::PolyTree
 
struct  ClipperLib::IntRect
 
struct  ClipperLib::TEdge
 
struct  ClipperLib::IntersectNode
 
struct  ClipperLib::LocalMinimum
 
struct  ClipperLib::OutPt
 
struct  ClipperLib::OutRec
 
struct  ClipperLib::Join
 
class  ClipperLib::ClipperBase
 
class  ClipperLib::Clipper
 
class  ClipperLib::ClipperOffset
 
class  ClipperLib::clipperException
 

Namespaces

namespace  ClipperLib
 

Macros

#define CLIPPER_VERSION   "6.2.6"
 
#define use_lines
 
#define CLIPPERLIB_INT32
 

Typedefs

using ClipperLib::cInt = int32_t
 
using ClipperLib::CrossProductType = int64_t
 
using ClipperLib::IntPoint = Eigen::Matrix< cInt, 2, 1, Eigen::DontAlign >
 
using ClipperLib::DoublePoint = Eigen::Matrix< double, 2, 1, Eigen::DontAlign >
 
template<typename BaseType >
using ClipperLib::Allocator = tbb::scalable_allocator< BaseType >
 
using ClipperLib::Path = std::vector< IntPoint, Allocator< IntPoint > >
 
using ClipperLib::Paths = std::vector< Path, Allocator< Path > >
 
typedef std::vector< PolyNode *, Allocator< PolyNode * > > ClipperLib::PolyNodes
 
using ClipperLib::OutPts = std::vector< OutPt, Allocator< OutPt > >
 

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

PathClipperLib::operator<< (Path &poly, const IntPoint &p)
 
PathsClipperLib::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)
 
double ClipperLib::Area (const Path &poly)
 
bool ClipperLib::Orientation (const Path &poly)
 
int ClipperLib::PointInPolygon (const IntPoint &pt, const Path &path)
 
Paths ClipperLib::SimplifyPolygon (const Path &in_poly, PolyFillType fillType, bool strictly_simple)
 
void ClipperLib::CleanPolygon (const Path &in_poly, Path &out_poly, double distance)
 
void ClipperLib::CleanPolygon (Path &poly, double distance)
 
void ClipperLib::CleanPolygons (const Paths &in_polys, Paths &out_polys, double distance)
 
void ClipperLib::CleanPolygons (Paths &polys, double distance)
 
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::PolyTreeToPaths (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)
 
template<typename PathsProvider >
Paths ClipperLib::SimplifyPolygons (PathsProvider &&in_polys, PolyFillType fillType=pftNonZero, bool strictly_simple=true)
 

Class Documentation

◆ ClipperLib::IntRect

struct ClipperLib::IntRect
Class Members
cInt bottom
cInt left
cInt right
cInt top

◆ ClipperLib::TEdge

struct ClipperLib::TEdge
+ Collaboration diagram for ClipperLib::TEdge:
Class Members
IntPoint Bot
IntPoint Curr
IntPoint Delta
double Dx
TEdge * Next
TEdge * NextInAEL
TEdge * NextInLML
TEdge * NextInSEL
int OutIdx
PolyType PolyTyp
TEdge * Prev
TEdge * PrevInAEL
TEdge * PrevInSEL
EdgeSide Side
IntPoint Top
int WindCnt
int WindCnt2
int WindDelta

◆ ClipperLib::LocalMinimum

struct ClipperLib::LocalMinimum
+ Collaboration diagram for ClipperLib::LocalMinimum:
Class Members
TEdge * LeftBound
TEdge * RightBound
cInt Y

◆ ClipperLib::OutPt

struct ClipperLib::OutPt
+ Collaboration diagram for ClipperLib::OutPt:
Class Members
int Idx
OutPt * Next
OutPt * Prev
IntPoint Pt

◆ ClipperLib::OutRec

struct ClipperLib::OutRec
+ Collaboration diagram for ClipperLib::OutRec:
Class Members
OutPt * BottomPt
OutRec * FirstLeft
int Idx
bool IsHole
bool IsOpen
PolyNode * PolyNd
OutPt * Pts

Macro Definition Documentation

◆ CLIPPER_VERSION

#define CLIPPER_VERSION   "6.2.6"

◆ CLIPPERLIB_INT32

#define CLIPPERLIB_INT32

◆ use_lines

#define use_lines