Assimp  v3.1.1 (June 2014)
ClipperLib Namespace Reference

Classes

class  Clipper
 
class  ClipperBase
 
class  clipperException
 
struct  DoublePoint
 
struct  ExPolygon
 
struct  HorzJoinRec
 
class  Int128
 
struct  IntersectNode
 
struct  IntPoint
 
struct  IntRect
 
struct  JoinRec
 
struct  LocalMinima
 
struct  OutPt
 
struct  OutRec
 
class  PolyOffsetBuilder
 
struct  Scanbeam
 
struct  TEdge
 

Typedefs

typedef std::vector< TEdge * > EdgeList
 
typedef std::vector< ExPolygonExPolygons
 
typedef std::vector
< HorzJoinRec * > 
HorzJoinList
 
typedef std::vector< JoinRec * > JoinList
 
typedef signed long long long64
 
typedef std::vector< IntPointPolygon
 
typedef std::vector< PolygonPolygons
 
typedef std::vector< OutRec * > PolyOutList
 
typedef unsigned long long ulong64
 

Enumerations

enum  ClipType { ctIntersection, ctUnion, ctDifference, ctXor }
 
enum  Direction { dRightToLeft, dLeftToRight }
 
enum  EdgeSide { esNeither = 0, esLeft = 1, esRight = 2, esBoth = 3 }
 
enum  IntersectProtects { ipNone = 0, ipLeft = 1, ipRight = 2, ipBoth = 3 }
 
enum  JoinType { jtSquare, jtRound, jtMiter }
 
enum  PolyFillType { pftEvenOdd, pftNonZero, pftPositive, pftNegative }
 
enum  PolyType { ptSubject, ptClip }
 

Functions

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

Variables

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

Typedef Documentation

typedef std::vector< TEdge* > ClipperLib::EdgeList
typedef std::vector< ExPolygon > ClipperLib::ExPolygons
typedef std::vector< HorzJoinRec* > ClipperLib::HorzJoinList
typedef std::vector< JoinRec* > ClipperLib::JoinList
typedef signed long long ClipperLib::long64
typedef std::vector< IntPoint > ClipperLib::Polygon
typedef std::vector< Polygon > ClipperLib::Polygons
typedef std::vector< OutRec* > ClipperLib::PolyOutList
typedef unsigned long long ClipperLib::ulong64

Enumeration Type Documentation

Enumerator
ctIntersection 
ctUnion 
ctDifference 
ctXor 
Enumerator
dRightToLeft 
dLeftToRight 
Enumerator
esNeither 
esLeft 
esRight 
esBoth 
Enumerator
ipNone 
ipLeft 
ipRight 
ipBoth 
Enumerator
jtSquare 
jtRound 
jtMiter 
Enumerator
pftEvenOdd 
pftNonZero 
pftPositive 
pftNegative 
Enumerator
ptSubject 
ptClip 

Function Documentation

long64 ClipperLib::Abs ( long64  val)
inline
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 
)
inline
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)
inline
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)
inline
long64 ClipperLib::TopX ( TEdge &  edge,
const long64  currentY 
)
long64 ClipperLib::TopX ( const IntPoint  pt1,
const IntPoint  pt2,
const long64  currentY 
)

Variable Documentation

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