Assimp  v4.1. (December 2018)
clipper.cpp File Reference

Classes

struct  ClipperLib::DoublePoint
 
class  ClipperLib::Int128
 
class  ClipperLib::PolyOffsetBuilder
 

Namespaces

 ClipperLib
 

Macros

#define HORIZONTAL   (-1.0E+40)
 
#define NEAR_EQUAL(a, b)   NEAR_ZERO((a) - (b))
 
#define NEAR_ZERO(val)   (((val) > -TOLERANCE) && ((val) < TOLERANCE))
 
#define TOLERANCE   (1.0e-20)
 

Enumerations

enum  ClipperLib::Direction { ClipperLib::dRightToLeft, ClipperLib::dLeftToRight }
 

Functions

long64 ClipperLib::Abs (long64 val)
 
double ClipperLib::Area (const Polygon &poly)
 
double ClipperLib::Area (const OutRec &outRec, bool UseFullInt64Range)
 
Polygon ClipperLib::BuildArc (const IntPoint &pt, const double a1, const double a2, const double r)
 
void ClipperLib::DisposeOutPts (OutPt *&pp)
 
bool ClipperLib::E2InsertsBeforeE1 (TEdge &e1, TEdge &e2)
 
OutRec * ClipperLib::FindAppendLinkEnd (OutRec *outRec)
 
bool ClipperLib::FindSegment (OutPt *&pp, IntPoint &pt1, IntPoint &pt2)
 
bool ClipperLib::FirstIsBottomPt (const OutPt *btmPt1, const OutPt *btmPt2)
 
bool ClipperLib::FullRangeNeeded (const Polygon &pts)
 
OutPt * ClipperLib::GetBottomPt (OutPt *pp)
 
double ClipperLib::GetDx (const IntPoint pt1, const IntPoint pt2)
 
OutRec * ClipperLib::GetLowermostRec (OutRec *outRec1, OutRec *outRec2)
 
TEdge * ClipperLib::GetMaximaPair (TEdge *e)
 
TEdge * ClipperLib::GetNextInAEL (TEdge *e, Direction dir)
 
bool ClipperLib::GetOverlapSegment (IntPoint pt1a, IntPoint pt1b, IntPoint pt2a, IntPoint pt2b, IntPoint &pt1, IntPoint &pt2)
 
DoublePoint ClipperLib::GetUnitNormal (const IntPoint &pt1, const IntPoint &pt2)
 
void ClipperLib::InitEdge (TEdge *e, TEdge *eNext, TEdge *ePrev, const IntPoint &pt, PolyType polyType)
 
OutPt * ClipperLib::InsertPolyPtBetween (OutPt *p1, OutPt *p2, const IntPoint pt)
 
bool ClipperLib::IntersectPoint (TEdge &edge1, TEdge &edge2, IntPoint &ip, bool UseFullInt64Range)
 
bool ClipperLib::IsIntermediate (TEdge *e, const long64 Y)
 
bool ClipperLib::IsMaxima (TEdge *e, const long64 Y)
 
bool ClipperLib::IsMinima (TEdge *e)
 
void ClipperLib::OffsetPolygons (const Polygons &in_polys, Polygons &out_polys, double delta, JoinType jointype, double MiterLimit)
 
std::ostream & ClipperLib::operator<< (std::ostream &s, IntPoint &p)
 
std::ostream & ClipperLib::operator<< (std::ostream &s, Polygon &p)
 
std::ostream & ClipperLib::operator<< (std::ostream &s, Polygons &p)
 
bool ClipperLib::Orientation (const Polygon &poly)
 
bool ClipperLib::Orientation (OutRec *outRec, bool UseFullInt64Range)
 
bool ClipperLib::Param1RightOfParam2 (OutRec *outRec1, OutRec *outRec2)
 
bool ClipperLib::PointInPolygon (const IntPoint &pt, OutPt *pp, bool UseFullInt64Range)
 
bool ClipperLib::PointIsVertex (const IntPoint &pt, OutPt *pp)
 
bool ClipperLib::PointsEqual (const IntPoint &pt1, const IntPoint &pt2)
 
bool ClipperLib::PolySort (OutRec *or1, OutRec *or2)
 
bool ClipperLib::ProcessParam1BeforeParam2 (IntersectNode &node1, IntersectNode &node2)
 
bool ClipperLib::Pt3IsBetweenPt1AndPt2 (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3)
 
void ClipperLib::ReversePolygon (Polygon &p)
 
void ClipperLib::ReversePolygons (Polygons &p)
 
void ClipperLib::ReversePolyPtLinks (OutPt &pp)
 
long64 ClipperLib::Round (double val)
 
void ClipperLib::SetDx (TEdge &e)
 
void ClipperLib::SimplifyPolygon (const Polygon &in_poly, Polygons &out_polys, PolyFillType fillType)
 
void ClipperLib::SimplifyPolygons (const Polygons &in_polys, Polygons &out_polys, PolyFillType fillType)
 
void ClipperLib::SimplifyPolygons (Polygons &polys, PolyFillType fillType)
 
bool ClipperLib::SlopesEqual (TEdge &e1, TEdge &e2, bool UseFullInt64Range)
 
bool ClipperLib::SlopesEqual (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, bool UseFullInt64Range)
 
bool ClipperLib::SlopesEqual (const IntPoint pt1, const IntPoint pt2, const IntPoint pt3, const IntPoint pt4, bool UseFullInt64Range)
 
void ClipperLib::SwapIntersectNodes (IntersectNode &int1, IntersectNode &int2)
 
void ClipperLib::SwapPoints (IntPoint &pt1, IntPoint &pt2)
 
void ClipperLib::SwapPolyIndexes (TEdge &edge1, TEdge &edge2)
 
void ClipperLib::SwapSides (TEdge &edge1, TEdge &edge2)
 
void ClipperLib::SwapX (TEdge &e)
 
long64 ClipperLib::TopX (TEdge &edge, const long64 currentY)
 
long64 ClipperLib::TopX (const IntPoint pt1, const IntPoint pt2, const long64 currentY)
 

Variables

static long64 const ClipperLib::hiRange = 0x3FFFFFFFFFFFFFFFLL
 
static long64 const ClipperLib::loRange = 0x3FFFFFFF
 
static double const ClipperLib::pi = 3.141592653589793238
 

Macro Definition Documentation

◆ HORIZONTAL

#define HORIZONTAL   (-1.0E+40)

◆ NEAR_EQUAL

#define NEAR_EQUAL (   a,
 
)    NEAR_ZERO((a) - (b))

◆ NEAR_ZERO

#define NEAR_ZERO (   val)    (((val) > -TOLERANCE) && ((val) < TOLERANCE))

◆ TOLERANCE

#define TOLERANCE   (1.0e-20)