clipper.hpp | clipper.hpp | |||
---|---|---|---|---|
/************************************************************************** ***** | /************************************************************************** ***** | |||
* * | * * | |||
* Author : Angus Johnson * | * Author : Angus Johnson * | |||
* Version : 4.8.8 | * Version : 4.9.4 | |||
* | * | |||
* Date : 30 August 2012 | * Date : 2 November 2012 | |||
* | * | |||
* Website : http://www.angusj.com * | * Website : http://www.angusj.com * | |||
* Copyright : Angus Johnson 2010-2012 * | * Copyright : Angus Johnson 2010-2012 * | |||
* * | * * | |||
* License: * | * License: * | |||
* Use, modification & distribution is subject to Boost Software License Ver 1. * | * Use, modification & distribution is subject to Boost Software License Ver 1. * | |||
* http://www.boost.org/LICENSE_1_0.txt * | * http://www.boost.org/LICENSE_1_0.txt * | |||
* * | * * | |||
* Attributions: * | * Attributions: * | |||
* The code in this library is an extension of Bala Vatti's clipping algorit hm: * | * The code in this library is an extension of Bala Vatti's clipping algorit hm: * | |||
* "A generic solution to polygon clipping" * | * "A generic solution to polygon clipping" * | |||
skipping to change at line 101 | skipping to change at line 101 | |||
enum IntersectProtects { ipNone = 0, ipLeft = 1, ipRight = 2, ipBoth = 3 }; | enum IntersectProtects { ipNone = 0, ipLeft = 1, ipRight = 2, ipBoth = 3 }; | |||
struct TEdge { | struct TEdge { | |||
long64 xbot; | long64 xbot; | |||
long64 ybot; | long64 ybot; | |||
long64 xcurr; | long64 xcurr; | |||
long64 ycurr; | long64 ycurr; | |||
long64 xtop; | long64 xtop; | |||
long64 ytop; | long64 ytop; | |||
double dx; | double dx; | |||
long64 deltaX; | ||||
long64 deltaY; | ||||
long64 tmpX; | long64 tmpX; | |||
PolyType polyType; | PolyType polyType; | |||
EdgeSide side; | EdgeSide side; | |||
int windDelta; //1 or -1 depending on winding direction | int windDelta; //1 or -1 depending on winding direction | |||
int windCnt; | int windCnt; | |||
int windCnt2; //winding count of the opposite polytype | int windCnt2; //winding count of the opposite polytype | |||
int outIdx; | int outIdx; | |||
TEdge *next; | TEdge *next; | |||
TEdge *prev; | TEdge *prev; | |||
TEdge *nextInLML; | TEdge *nextInLML; | |||
skipping to change at line 279 | skipping to change at line 281 | |||
void ProcessIntersectList(); | void ProcessIntersectList(); | |||
void ProcessEdgesAtTopOfScanbeam(const long64 topY); | void ProcessEdgesAtTopOfScanbeam(const long64 topY); | |||
void BuildResult(Polygons& polys); | void BuildResult(Polygons& polys); | |||
void BuildResultEx(ExPolygons& polys); | void BuildResultEx(ExPolygons& polys); | |||
void SetHoleState(TEdge *e, OutRec *OutRec); | void SetHoleState(TEdge *e, OutRec *OutRec); | |||
void DisposeIntersectNodes(); | void DisposeIntersectNodes(); | |||
bool FixupIntersections(); | bool FixupIntersections(); | |||
void FixupOutPolygon(OutRec &outRec); | void FixupOutPolygon(OutRec &outRec); | |||
bool IsHole(TEdge *e); | bool IsHole(TEdge *e); | |||
void FixHoleLinkage(OutRec *outRec); | void FixHoleLinkage(OutRec *outRec); | |||
void CheckHoleLinkages1(OutRec *outRec1, OutRec *outRec2); | ||||
void CheckHoleLinkages2(OutRec *outRec1, OutRec *outRec2); | ||||
void AddJoin(TEdge *e1, TEdge *e2, int e1OutIdx = -1, int e2OutIdx = -1); | void AddJoin(TEdge *e1, TEdge *e2, int e1OutIdx = -1, int e2OutIdx = -1); | |||
void ClearJoins(); | void ClearJoins(); | |||
void AddHorzJoin(TEdge *e, int idx); | void AddHorzJoin(TEdge *e, int idx); | |||
void ClearHorzJoins(); | void ClearHorzJoins(); | |||
void JoinCommonEdges(bool fixHoleLinkages); | void JoinCommonEdges(bool fixHoleLinkages); | |||
}; | }; | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
//------------------------------------------------------------------------- ----- | //------------------------------------------------------------------------- ----- | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 6 lines changed or added | |||