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