2
Generic Polygon Clipper (gpc) Revision History
3
==============================================
8
Fixed occasional memory leak occurring when processing some
9
degenerate polygon arrangements.
10
Added explicit type casting to memory allocator in support of
11
increased code portability.
15
Separated edge merging measure based on a user-defined GPC_EPSILON
16
value from general numeric equality testing and ordering, which now
17
uses direct arithmetic comparison rather an EPSILON based proximity
19
Fixed problem with numerical equality test during construction of
20
local minima and scanbeam tables, leading to occasional crash.
21
Fixed hole array memory leak in gpc_add_contour.
22
Fixed uninitialised hole field bug in gpc_polygon_clip result.
27
Minor API change: additional 'hole' array field added to gpc_polygon
28
datatype to indicate which constituent contours are internal holes,
29
and which form external boundaries.
30
Minor API change: additional 'hole' argument to gpc_add_contour
31
to indicate whether the new contour is a hole or external contour.
32
Minor API change: additional parameter to gpc_read_polygon and
33
gpc_write_polygon to indicate whether or not to read or write
35
Fixed NULL pointer bug in add/merge left/right operations.
36
Fixed numerical problem in intersection table generation.
37
Fixed zero byte malloc problem.
38
Fixed problem producing occasional 2 vertex contours.
39
Added bounding box test optimisations.
40
Simplified edge bundle creation, detection of scanbeam internal
41
edge intersections and tristrip scanbeam boundary code.
42
Renamed 'class' variable to be C++ friendly.
46
Re-implemented edge interpolation and intersection calculations
47
to improve numerical robustness.
48
Simplified setting of GPC_EPSILON.
52
Fixed problem causing occasional incorrect output when processing
53
self-intersecting polygons (bow-ties etc).
54
Removed bug which may lead to non-generation of uppermost triangle
60
Added exclusive-or polygon set operation.
61
Replaced table-based processing of edge intersections with
63
Replaced two-pass approach to scanbeam interior processing with
68
Minor bug-fixes to counter some v2.10 reliability problems.
73
Incorporated edge bundle processing of AET to overcome coincident
74
edge problems present in previous releases.
75
Replaced Vatti's method for processing scanbeam interior regions
76
with an adapted version of the scanbeam boundary processing
79
v2.02 16th Apr 1998 (unreleased)
80
----------------------------------
81
Fixed internal minimum vertex duplication in gpc_polygon_clip
83
Improved line intersection code discourage superfluous
84
intersections near line ends.
85
Removed limited precision number formatting in gpc_write_polygon.
86
Modification to allow subject or clip polygon to be reused as the
87
result in gpc_polygon_clip without memory leakage.
91
Removed bug causing duplicated vertices in output polygon.
92
Fixed scanbeam table index overrun problem.
97
Replaced temporary horizontal edge work-around (using tilting)
98
with true horizontal edge handling.
99
Trapezoidal output replaced by tristrips.
100
gpc_op constants now feature a `GPC_' prefix.
101
Data structures now passed by reference to gpc functions.
102
Replaced AET search by proxy addressing in polygon table.
103
Eliminated most (all?) coincident vertex / edge crashes.
105
v1.02 18th Oct 1997 (unreleased)
106
----------------------------------
107
Significantly reduced number of mallocs in build_lmt.
108
Scanbeam table now built using heapsort rather than insertion
112
---------------------
113
Fixed memory leak during output polygon build in
115
Removed superfluous logfile debug code.
116
Commented out malloc counts.
117
Added missing horizontal edge tilt-correction code in