• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

C#/H03-May-2022-7,4726,058

Delphi/H03-May-2022-7,5326,148

Documentation/H03-May-2022-12,2609,348

Third Party/H03-May-2022-2,5272,151

cpp/H03-May-2022-7,9836,508

READMEH A D27-Feb-201716.1 KiB413343

README

1=====================================================================
2Clipper Change Log
3=====================================================================
4v6.4.2 (27 February 2017) Rev 512
5* Several minor bugfixes: #152 #160 #161 #162
6
7v6.4 (2 July 2015) Rev 495
8* Numerous generally minor bugfixes
9
10v6.2.1 (31 October 2014) Rev 482
11* Bugfix in ClipperOffset.Execute where the Polytree.IsHole property
12  was returning incorrect values with negative offsets
13* Very minor improvement to join rounding in ClipperOffset
14* Fixed CPP OpenGL demo.
15
16v6.2.0 (17 October 2014) Rev 477
17* Numerous minor bugfixes, too many to list.
18  (See revisions 454-475 in Sourceforge Repository)
19* The ZFillFunction (custom callback function) has had its parameters
20  changed.
21* Curves demo removed (temporarily).
22* Deprecated functions have been removed.
23
24v6.1.5 (26 February 2014) Rev 460
25* Improved the joining of output polygons sharing a common edge
26  when those common edges are horizontal.
27* Fixed a bug in ClipperOffset.AddPath() which would produce
28  incorrect solutions when open paths were added before closed paths.
29* Minor code tidy and performance improvement
30
31v6.1.4 (6 February 2014)
32* Fixed bugs in MinkowskiSum
33* Fixed minor bug when using Clipper.ForceSimplify.
34* Modified use_xyz callback so that all 4 vertices around an
35  intersection point are now passed to the callback function.
36
37v6.1.3a (22 January 2014) Rev 453
38* Fixed buggy PointInPolygon function (C++ and C# only).
39  Note this bug only affected the newly exported function, the
40  internal PointInPolygon function used by Clipper was OK.
41
42v6.1.3 (19 January 2014) Rev 452
43* Fixed potential endless loop condition when adding open
44  paths to Clipper.
45* Fixed missing implementation of SimplifyPolygon function
46  in C++ code.
47* Fixed incorrect upper range constant for polygon coordinates
48  in Delphi code.
49* Added PointInPolygon function.
50* Overloaded MinkowskiSum function to accommodate multi-contour
51  paths.
52
53v6.1.2 (15 December 2013) Rev 444
54* Fixed broken C++ header file.
55* Minor improvement to joining polygons.
56
57v6.1.1 (13 December 2013) Rev 441
58* Fixed a couple of bugs affecting open paths that could
59  raise unhandled exceptions.
60
61v6.1.0 (12 December 2013)
62* Deleted: Previously deprecated code has been removed.
63* Modified: The OffsetPaths function is now deprecated as it has
64  been replaced by the ClipperOffset class which is much more
65  flexible.
66* Bugfixes: Several minor bugs have been fixed including
67  occasionally an incorrect nesting within the PolyTree structure.
68
69v6.0.0 (30 October 2013)
70* Added: Open path (polyline) clipping. A new 'Curves' demo
71  application showcases this (see the 'Curves' directory).
72* Update: Major improvement in the merging of
73  shared/collinear edges in clip solutions (see Execute).
74* Added: The IntPoint structure now has an optional 'Z' member.
75  (See the precompiler directive use_xyz.)
76* Added: Users can now force Clipper to use 32bit integers
77  (via the precompiler directive use_int32) instead of using
78  64bit integers.
79* Modified: To accommodate open paths, the Polygon and Polygons
80  structures have been renamed Path and Paths respectively. The
81  AddPolygon and AddPolygons methods of the ClipperBase class
82  have been renamed AddPath and AddPaths respectively. Several
83  other functions have been similarly renamed.
84* Modified: The PolyNode Class has a new IsOpen property.
85* Modified: The Clipper class has a new ZFillFunction property.
86* Added: MinkowskiSum and MinkowskiDiff functions added.
87* Added: Several other new functions have been added including
88  PolyTreeToPaths, OpenPathsFromPolyTree and ClosedPathsFromPolyTree.
89* Added: The Clipper constructor now accepts an optional InitOptions
90  parameter to simplify setting properties.
91* Bugfixes: Numerous minor bugs have been fixed.
92* Deprecated: Version 6 is a major upgrade from previous versions
93  and quite a number of changes have been made to exposed structures
94  and functions. To minimize inconvenience to existing library users,
95  some code has been retained and some added to maintain backward
96  compatibility. However, because this code will be removed in a
97  future update, it has been marked as deprecated and a precompiler
98  directive use_deprecated has been defined.
99
100v5.1.6 (23 May 2013)
101* BugFix: CleanPolygon function was buggy.
102* Changed: The behaviour of the 'miter' JoinType has been
103  changed so that when squaring occurs, it's no longer
104  extended up to the miter limit but is squared off at
105  exactly 'delta' units. (This improves the look of mitering
106  with larger limits at acute angles.)
107* Added: New OffsetPolyLines function
108* Update: Minor code refactoring and optimisations
109
110v5.1.5 (5 May 2013)
111* Added: ForceSimple property to Clipper class
112* Update: Improved documentation
113
114v5.1.4 (24 March 2013)
115* Update: CleanPolygon function enhanced.
116* Update: Documentation improved.
117
118v5.1.3 (14 March 2013)
119* Bugfix: Minor bugfixes.
120* Update: Documentation significantly improved.
121
122v5.1.2 (26 February 2013)
123* Bugfix: PolyNode class was missing a constructor.
124* Update: The MiterLimit parameter in the OffsetPolygons
125  function has been renamed Limit and can now also be used to
126  limit the number of vertices used to construct arcs when
127  JoinType is set to jtRound.
128
129v5.1.0 (17 February 2013)
130* Update: ExPolygons has been replaced with the PolyTree &
131  PolyNode classes to more fully represent the parent-child
132  relationships of the polygons returned by Clipper.
133* Added: New CleanPolygon and CleanPolygons functions.
134* Bugfix: Another orientation bug fixed.
135
136v5.0.2 - 30 December 2012
137* Bugfix: Significant fixes in and tidy of the internal
138  Int128 class (which is used only when polygon coordinate
139  values are greater than �0x3FFFFFFF (~1.07e9)).
140* Update: The Area algorithm has been updated and is faster.
141* Update: Documentation updates. The newish but undocumented
142  'CheckInputs' parameter of the OffsetPolygons function has been
143  renamed 'AutoFix' and documented too. The comments on rounding
144  have also been improved (ie clearer and expanded).
145
146v4.10.0 - 25 December 2012
147* Bugfix: Orientation bugs should now be resolved (finally!).
148* Bugfix: Bug in Int128 class
149
150v4.9.8 - 2 December 2012
151* Bugfix: Further fixes to rare Orientation bug.
152
153v4.9.7 - 29 November 2012
154* Bugfix: Bug that very rarely returned the wrong polygon
155  orientation.
156* Bugfix: Obscure bug affecting OffsetPolygons when using
157  jtRound for the JoinType parameter and when polygons also
158  contain very large coordinate values (> +/-100000000000).
159
160v4.9.6 - 9 November 2012
161* Bugfix: Another obscure bug related to joining polygons.
162
163v4.9.4 - 2 November 2012
164* Bugfix: Bugs in Int128 class occasionally causing
165  wrong orientations.
166* Bugfix: Further fixes related to joining polygons.
167
168v4.9.0 - 9 October 2012
169* Bugfix: Obscure bug related to joining polygons.
170
171v4.8.9 - 25 September 2012
172* Bugfix: Obscure bug related to precision of intersections.
173
174v4.8.8 - 30 August 2012
175* Bugfix: Fixed bug in OffsetPolygons function introduced in
176  version 4.8.5.
177
178v4.8.7 - 24 August 2012
179* Bugfix: ReversePolygon function in C++ translation was broken.
180* Bugfix: Two obscure bugs affecting orientation fixed too.
181
182v4.8.6 - 11 August 2012
183* Bugfix: Potential for memory overflow errors when using
184  ExPolygons structure.
185* Bugfix: The polygon coordinate range has been reduced to
186  +/- 0x3FFFFFFFFFFFFFFF (4.6e18).
187* Update: ReversePolygons function was misnamed ReversePoints in C++.
188* Update: SimplifyPolygon function now takes a PolyFillType parameter.
189
190v4.8.5 - 15 July 2012
191* Bugfix: Potential for memory overflow errors in OffsetPolygons().
192
193v4.8.4 - 1 June 2012
194* Bugfix: Another obscure bug affecting ExPolygons structure.
195
196v4.8.3 - 27 May 2012
197* Bugfix: Obscure bug causing incorrect removal of a vertex.
198
199v4.8.2 - 21 May 2012
200* Bugfix: Obscure bug could cause an exception when using
201  ExPolygon structure.
202
203v4.8.1 - 12 May 2012
204* Update: Cody tidy and minor bug fixes.
205
206v4.8.0 - 30 April 2012
207* Bugfix: Occasional errors in orientation fixed.
208* Update: Added notes on rounding to the documentation.
209
210v4.7.6 - 11 April 2012
211* Fixed a bug in Orientation function (affecting C# translations only).
212* Minor documentation update.
213
214v4.7.5 - 28 March 2012
215* Bugfix: Fixed a recently introduced bug that occasionally caused an
216  unhandled exception in C++ and C# translations.
217
218v4.7.4 - 15 March 2012
219* Bugfix: Another minor bugfix.
220
221v4.7.2 - 4 March 2012
222* Bugfix: Fixed bug introduced in ver 4.7 which sometimes caused
223  an exception if ExPolygon structure was passed to Clipper's
224  Execute method.
225
226v4.7.1 - 3 March 2012
227* Bugfix: Rare crash when JoinCommonEdges joined polygons that
228  'cancelled' each other.
229* Bugfix: Clipper's internal Orientation method occasionally
230  returned wrong result.
231* Update: Improved C# code (thanks to numerous excellent suggestions
232  from David Piepgrass)
233
234v4.7 - 10 February 2012
235* Improved the joining of output polygons sharing a common edge.
236
237v4.6.6 - 3 February 2012
238* Bugfix: Another obscure bug occasionally causing incorrect
239  polygon orientation.
240
241v4.6.5 - 17 January 2012
242* Bugfix: Obscure bug occasionally causing incorrect hole
243  assignment in ExPolygon structure.
244
245v4.6.4 - 8 November 2011
246* Added: SimplifyPolygon and SimplifyPolygons functions.
247
248v4.6.3 - 11 November 2011
249* Bugfix: Fixed another minor mitering bug in OffsetPolygons.
250
251v4.6.2 - 10 November 2011
252* Bugfix: Fixed a rare bug in the orientation of polygons
253  returned by Clipper's Execute() method.
254* Bugfix: Previous update introduced a mitering bug in the
255  OffsetPolygons function.
256
257v4.6 - 29 October 2011
258* Added: Support for Positive and Negative polygon fill
259  types (in addition to the EvenOdd and NonZero fill types).
260* Bugfix: The OffsetPolygons function was generating the
261  occasional artefact when 'shrinking' polygons.
262
263v4.5.5 - 8 October 2011
264* Bugfix: Fixed an obscure bug in Clipper's JoinCommonEdges
265  method.
266* Update: Replaced IsClockwise function with Orientation
267  function. The orientation issues affecting OffsetPolygons
268  should now be finally resolved.
269* Change: The Area function once again returns a signed value.
270
271v4.5.1 - 28 September 2011
272* Deleted: The UseFullCoordinateRange property has been
273  deleted since integer range is now managed implicitly.
274* BugFix: Minor bug in OffsetPolygon mitering.
275* Change: C# JoinType enum moved from Clipper class to
276  ClipperLib namespace.
277* Change: The Area function now returns the absolute area
278  (irrespective of orientation).
279* Change: The IsClockwise function now requires a second
280  parameter - YAxisPositiveUpward - to accommodate displays
281  with Y-axis oriented in either direction
282
283v4.4.4 - 10 September 2011
284* Change: Deleted jtButt from JoinType (used by the
285  OffsetPolygons function).
286* BugFix: Fixed another minor bug in OffsetPolygons function.
287* Update: Further improvements to the help file
288
289v4.4.3 - 29 August 2011
290* BugFix: fixed a minor rounding issue in OffsetPolygons
291  function (affected C++ & C# translations).
292* BugFix: fixed a minor bug in OffsetPolygons' function
293  declaration (affected C++ translation only).
294* Change: 'clipper' namespace changed to 'ClipperLib'
295  namespace in both C++ and C# code to remove the ambiguity
296  between the Clipper class and the namespace. (This also
297  required numerous updates to the accompanying demos.)
298
299v4.4.2 - 26 August 2011
300* BugFix: minor bugfixes in Clipper.
301* Update: the OffsetPolygons function has been significantly
302  improved by offering 4 different join styles.
303
304v4.4.0 - 6 August 2011
305* BugFix: A number of minor bugs have been fixed that mostly
306  affected the new ExPolygons structure.
307
308v4.3.0 - 17 June 2011
309* New: ExPolygons structure that explicitly associates 'hole'
310  polygons with their 'outer' container polygons.
311* New: Execute method overloaded so the solution parameter
312  can now be either Polygons or ExPolygons.
313* BugFix: Fixed a rare bug in solution polygons orientation.
314
315v4.2.8 - 21 May 2011
316* Update: JoinCommonEdges() improved once more.
317* BugFix: Several minor bugs fixed.
318
319v4.2.6 - 1 May 2011
320* Bugfix: minor bug in SlopesEqual function.
321* Update: Merging of output polygons sharing common edges
322  has been significantly inproved
323
324v4.2.4 - 26 April 2011
325  Input polygon coordinates can now contain the full range of
326  signed 64bit integers (ie +/-9,223,372,036,854,775,807). This
327  means that floating point values can be converted to and from
328  Clipper's 64bit integer coordinates structure (IntPoint) and
329  still retain a precision of up to 18 decimal places. However,
330  since the large-integer math that supports this expanded range
331  imposes a small cost on performance (~15%), a new property
332  UseFullCoordinateRange has been added to the Clipper class to
333  allow users the choice of whether or not to use this expanded
334  coordinate range. If this property is disabled, coordinate values
335  are restricted to +/-1,500,000,000.
336
337v4.2 - 12 April 2011
338  JoinCommonEdges() code significantly improved plus other minor
339  improvements.
340
341v4.1.2 - 9 April 2011
342* Update: Minor code tidy.
343* Bugfix: Possible endless loop in JoinCommonEdges() in clipper.pas.
344
345v4.1.1 - 8 April 2011
346* Update: All polygon coordinates are now stored as 64bit integers
347  (though they're still restricted to range -1.5e9 to +1.5e9 pending
348  the inclusion of code supporting 64bit math).
349* Change: AddPolygon and AddPolygons methods now return boolean
350  values.
351* Bugfix: Bug in JoinCommonEdges() caused potential endless loop.
352* Bugfix: Bug in IsClockwise(). (C++ code only)
353
354v4.0 - 5 April 2011
355* Clipper 4 is a major rewrite of earlier versions. The biggest
356  change is that floating point values are no longer used,
357  except for the storing of edge slope values. The main benefit
358  of this is the issue of numerical robustness has been
359  addressed. Due to other major code improvements Clipper v4
360  is approximately 40% faster than Clipper v3.
361* The AddPolyPolygon method has been renamed to AddPolygons.
362* The IgnoreOrientation property has been removed.
363* The clipper_misc library has been merged back into the
364  main clipper library.
365
366v3.1.0 - 17 February 2011
367* Bugfix: Obscure bug in TClipperBase.SetDx method that caused
368  problems with very small edges ( edges <1/1000th pixel in size).
369
370v3.0.3 - 9 February 2011
371* Bugfix: Significant bug, but only in C# code.
372* Update: Minor refactoring.
373
374v3.0 - 31 January 2011
375* Update: Major rewrite of the portion of code that calculates
376  the output polygons' orientation.
377* Update: Help file significantly improved.
378* Change: Renamed ForceOrientation property to IgnoreOrientation.
379  If the orientation of output polygons is not important, or can
380  be managed separately, clipping routines can be sped up by about
381  60% by setting IgnoreOrientation to true. Defaults to false.
382* Change: The OffsetPolygon and Area functions have been moved to
383  the new unit - clipper_misc.
384
3852.99 - 15 January 2011
386* Bugfix: Obscure bug in AddPolygon method could cause an endless loop.
387
3882.8 - 20 November 2010
389* Updated: Output polygons which previously shared a common
390  edge are now merged.
391* Changed: The orientation of outer polygons is now clockwise
392  when the display's Y axis is positive downwards (as is
393  typical for most Windows applications). Inner polygons
394  (holes) have the opposite orientation.
395* Added: Support module for Cairo Graphics Library (with demo).
396* Updated: C# and C++ demos.
397
3982.522 - 15 October 2010
399* Added C# translation (thanks to Olivier Lejeune) and
400  a link to Ruby bindings (thanks to Mike Owens).
401
4022.0 - 30 July 2010
403* Clipper now clips using both the Even-Odd (alternate) and
404  Non-Zero (winding) polygon filling rules. (Previously Clipper
405  assumed the Even-Odd rule for polygon filling.)
406
4071.4c - 16 June 2010
408* Added C++ support for AGG graphics library
409
4101.2s - 2 June 2010
411* Added C++ translation of clipper.pas
412
4131.0 - 9 May 2010