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 OutRec &outRec, bool UseFullInt64Range)
 
double Area (const Polygon &poly)
 
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 (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 (TEdge &e1, TEdge &e2, 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 (const IntPoint pt1, const IntPoint pt2, const long64 currentY)
 
long64 TopX (TEdge &edge, const long64 currentY)
 

Variables

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

Typedef Documentation

◆ EdgeList

typedef std::vector< TEdge* > ClipperLib::EdgeList

◆ ExPolygons

typedef std::vector< ExPolygon > ClipperLib::ExPolygons

◆ HorzJoinList

typedef std::vector< HorzJoinRec* > ClipperLib::HorzJoinList

◆ JoinList

typedef std::vector< JoinRec* > ClipperLib::JoinList

◆ long64

typedef signed long long ClipperLib::long64

◆ Polygon

typedef std::vector< IntPoint > ClipperLib::Polygon

◆ Polygons

typedef std::vector< Polygon > ClipperLib::Polygons

◆ PolyOutList

typedef std::vector< OutRec* > ClipperLib::PolyOutList

◆ ulong64

typedef unsigned long long ClipperLib::ulong64

Enumeration Type Documentation

◆ ClipType

Enumerator
ctIntersection 
ctUnion 
ctDifference 
ctXor 

◆ Direction

Enumerator
dRightToLeft 
dLeftToRight 

◆ EdgeSide

Enumerator
esNeither 
esLeft 
esRight 
esBoth 

◆ IntersectProtects

Enumerator
ipNone 
ipLeft 
ipRight 
ipBoth 

◆ JoinType

Enumerator
jtSquare 
jtRound 
jtMiter 

◆ PolyFillType

Enumerator
pftEvenOdd 
pftNonZero 
pftPositive 
pftNegative 

◆ PolyType

Enumerator
ptSubject 
ptClip 

Function Documentation

◆ Abs()

long64 ClipperLib::Abs ( long64  val)
inline

◆ Area() [1/2]

double ClipperLib::Area ( const OutRec outRec,
bool  UseFullInt64Range 
)

◆ Area() [2/2]

double ClipperLib::Area ( const Polygon poly)

◆ BuildArc()

Polygon ClipperLib::BuildArc ( const IntPoint pt,
const double  a1,
const double  a2,
const double  r 
)

◆ DisposeOutPts()

void ClipperLib::DisposeOutPts ( OutPt *&  pp)

◆ E2InsertsBeforeE1()

bool ClipperLib::E2InsertsBeforeE1 ( TEdge e1,
TEdge e2 
)

◆ FindAppendLinkEnd()

OutRec* ClipperLib::FindAppendLinkEnd ( OutRec outRec)

◆ FindSegment()

bool ClipperLib::FindSegment ( OutPt *&  pp,
IntPoint pt1,
IntPoint pt2 
)

◆ FirstIsBottomPt()

bool ClipperLib::FirstIsBottomPt ( const OutPt btmPt1,
const OutPt btmPt2 
)

◆ FullRangeNeeded()

bool ClipperLib::FullRangeNeeded ( const Polygon pts)

◆ GetBottomPt()

OutPt* ClipperLib::GetBottomPt ( OutPt pp)

◆ GetDx()

double ClipperLib::GetDx ( const IntPoint  pt1,
const IntPoint  pt2 
)

◆ GetLowermostRec()

OutRec* ClipperLib::GetLowermostRec ( OutRec outRec1,
OutRec outRec2 
)

◆ GetMaximaPair()

TEdge* ClipperLib::GetMaximaPair ( TEdge e)

◆ GetNextInAEL()

TEdge* ClipperLib::GetNextInAEL ( TEdge e,
Direction  dir 
)

◆ GetOverlapSegment()

bool ClipperLib::GetOverlapSegment ( IntPoint  pt1a,
IntPoint  pt1b,
IntPoint  pt2a,
IntPoint  pt2b,
IntPoint pt1,
IntPoint pt2 
)

◆ GetUnitNormal()

DoublePoint ClipperLib::GetUnitNormal ( const IntPoint pt1,
const IntPoint pt2 
)

◆ InitEdge()

void ClipperLib::InitEdge ( TEdge e,
TEdge eNext,
TEdge ePrev,
const IntPoint pt,
PolyType  polyType 
)

◆ InsertPolyPtBetween()

OutPt* ClipperLib::InsertPolyPtBetween ( OutPt p1,
OutPt p2,
const IntPoint  pt 
)

◆ IntersectPoint()

bool ClipperLib::IntersectPoint ( TEdge edge1,
TEdge edge2,
IntPoint ip,
bool  UseFullInt64Range 
)

◆ IsIntermediate()

bool ClipperLib::IsIntermediate ( TEdge e,
const long64  Y 
)

◆ IsMaxima()

bool ClipperLib::IsMaxima ( TEdge e,
const long64  Y 
)

◆ IsMinima()

bool ClipperLib::IsMinima ( TEdge e)

◆ OffsetPolygons()

void ClipperLib::OffsetPolygons ( const Polygons in_polys,
Polygons out_polys,
double  delta,
JoinType  jointype,
double  MiterLimit 
)

◆ operator<<() [1/3]

std::ostream& ClipperLib::operator<< ( std::ostream &  s,
IntPoint p 
)

◆ operator<<() [2/3]

std::ostream & ClipperLib::operator<< ( std::ostream &  s,
Polygon p 
)

◆ operator<<() [3/3]

std::ostream & ClipperLib::operator<< ( std::ostream &  s,
Polygons p 
)

◆ Orientation() [1/2]

bool ClipperLib::Orientation ( const Polygon poly)

◆ Orientation() [2/2]

bool ClipperLib::Orientation ( OutRec outRec,
bool  UseFullInt64Range 
)

◆ Param1RightOfParam2()

bool ClipperLib::Param1RightOfParam2 ( OutRec outRec1,
OutRec outRec2 
)

◆ PointInPolygon()

bool ClipperLib::PointInPolygon ( const IntPoint pt,
OutPt pp,
bool  UseFullInt64Range 
)

◆ PointIsVertex()

bool ClipperLib::PointIsVertex ( const IntPoint pt,
OutPt pp 
)

◆ PointsEqual()

bool ClipperLib::PointsEqual ( const IntPoint pt1,
const IntPoint pt2 
)
inline

◆ PolySort()

bool ClipperLib::PolySort ( OutRec or1,
OutRec or2 
)

◆ ProcessParam1BeforeParam2()

bool ClipperLib::ProcessParam1BeforeParam2 ( IntersectNode node1,
IntersectNode node2 
)

◆ Pt3IsBetweenPt1AndPt2()

bool ClipperLib::Pt3IsBetweenPt1AndPt2 ( const IntPoint  pt1,
const IntPoint  pt2,
const IntPoint  pt3 
)

◆ ReversePolygon()

void ClipperLib::ReversePolygon ( Polygon p)

◆ ReversePolygons()

void ClipperLib::ReversePolygons ( Polygons p)

◆ ReversePolyPtLinks()

void ClipperLib::ReversePolyPtLinks ( OutPt pp)

◆ Round()

long64 ClipperLib::Round ( double  val)
inline

◆ SetDx()

void ClipperLib::SetDx ( TEdge e)

◆ SimplifyPolygon()

void ClipperLib::SimplifyPolygon ( const Polygon in_poly,
Polygons out_polys,
PolyFillType  fillType 
)

◆ SimplifyPolygons() [1/2]

void ClipperLib::SimplifyPolygons ( const Polygons in_polys,
Polygons out_polys,
PolyFillType  fillType 
)

◆ SimplifyPolygons() [2/2]

void ClipperLib::SimplifyPolygons ( Polygons polys,
PolyFillType  fillType 
)

◆ SlopesEqual() [1/3]

bool ClipperLib::SlopesEqual ( const IntPoint  pt1,
const IntPoint  pt2,
const IntPoint  pt3,
bool  UseFullInt64Range 
)

◆ SlopesEqual() [2/3]

bool ClipperLib::SlopesEqual ( const IntPoint  pt1,
const IntPoint  pt2,
const IntPoint  pt3,
const IntPoint  pt4,
bool  UseFullInt64Range 
)

◆ SlopesEqual() [3/3]

bool ClipperLib::SlopesEqual ( TEdge e1,
TEdge e2,
bool  UseFullInt64Range 
)

◆ SwapIntersectNodes()

void ClipperLib::SwapIntersectNodes ( IntersectNode int1,
IntersectNode int2 
)

◆ SwapPoints()

void ClipperLib::SwapPoints ( IntPoint pt1,
IntPoint pt2 
)

◆ SwapPolyIndexes()

void ClipperLib::SwapPolyIndexes ( TEdge edge1,
TEdge edge2 
)

◆ SwapSides()

void ClipperLib::SwapSides ( TEdge edge1,
TEdge edge2 
)

◆ SwapX()

void ClipperLib::SwapX ( TEdge e)
inline

◆ TopX() [1/2]

long64 ClipperLib::TopX ( const IntPoint  pt1,
const IntPoint  pt2,
const long64  currentY 
)

◆ TopX() [2/2]

long64 ClipperLib::TopX ( TEdge edge,
const long64  currentY 
)

Variable Documentation

◆ hiRange

long64 const ClipperLib::hiRange = 0x3FFFFFFFFFFFFFFFLL
static

◆ loRange

long64 const ClipperLib::loRange = 0x3FFFFFFF
static

◆ pi

double const ClipperLib::pi = 3.141592653589793238
static