Changes

The Clipper Library

Changes

  • v5.1.0 (17 February 2013)

  • v5.0.2 (30 December 2012)

    • Bugfix:

        Significant fixes in and tidy of the internal Int128 class (which is used only when polygon coordinate values are greater than ±0x3FFFFFFF (~1.07e9)).
    • Update:

        The Area function has been updated with a faster algorithm.
    • Update:

        Documentation updates. The newish but undocumented 'CheckInputs' parameter of the OffsetPolygons function has been renamed 'AutoFix' and documented too. The comments on rounding have also been improved (ie clearer and expanded).
  • v4.10.0 (25 December 2012)

    • Bugfix:

        Orientation bugs should now be resolved (finally!).
    • Bugfix:

        Bug in Int128 class.
  • v4.9.8 (2 December 2012)

    • Bugfix:

        Further fixes to rare Orientation bug.
  • v4.9.7 (29 November 2012)

    • Bugfix:

        Bug that very rarely returned a wrong polygon orientation.
    • Bugfix:

        Obscure bug affecting OffsetPolygons when using jtRound for the JoinType parameter and when polygons also contain very large coordinate values.
  • v4.9.6 (9 November 2012)

    • Bugfix:

        Another obscure bug related to joining intersections.
  • v4.9.4 (2 November 2012)

    • Bugfix:

        Bugs in Int128 class occasionally causing wrong orientations.
    • Bugfix:

        Further fixes related to joining intersections.
  • v4.9.0 (9 October 2012)

    • Bugfix:

        Obscure bug related to joining intersections.
  • v4.8.9 (25 September 2012)

    • Bugfix:

        Obscure bug related to precision of intersections.
  • v4.8.8 (30 August 2012)

    • Bugfix:

        Fixed bug in OffsetPolygons function introduced in version 4.8.5.
  • v4.8.7 (24 August 2012)

    • Bugfix:

        ReversePolygon function in C++ translation was broken.
    • Bugfix:

        Two obscure bugs affecting orientation fixed too.
  • v4.8.6 (11 August 2012)

    • Bugfix:

        Potential for memory overflow errors when using ExPolygons structure.
    • Bugfix:

        The polygon coordinate range has been reduced to ± 0x3FFFFFFFFFFFFFFF (4.6e18).
    • Update:

        ReversePolygons function was misnamed ReversePoints in C++.
    • Update:

        SimplifyPolygon function now takes a PolyFillType parameter.
  • v4.8.5 (15 July 2012)

  • v4.8.4 (1 June 2012)

    • Bugfix:

        Another obscure bug affecting ExPolygons structure.
  • v4.8.3 (27 May 2012)

    • Bugfix:

        Obscure bug causing incorrect removal of a vertex.
  • v4.8.2 (21 May 2012)

    • Bugfix:

        Obscure bug could cause an exception when using ExPolygon structure.
  • v4.8.1 (12 May 2012)

    • Update:

        Code tidy and minor bug fixes.
  • v4.8.0 (30 April 2012)

    • Bugfix:

        Occasional errors in orientation fixed.
    • Update:

        Added notes on rounding to the documentation.
  • v4.7.6 (11 April 2012)

    • Bugfix:

        Fixed a bug in the Orientation function (affecting C# translations only).
    • Update:

        Minor documentation update.
  • v4.7.5 (28 March 2012)

    • Bugfix:

        Fixed a recently introduced bug that occasionally caused an unhandled exception in C++ and C# translations.
  • v4.7.1 (3 March 2012)

    • Bugfix:

        Rare crash when JoinCommonEdges joined polygons that 'cancelled' each other.
    • Bugfix:

        Clipper's internal Orientation method occasionally returned wrong result.
    • Update:

        Improved C# code (thanks to numerous suggestions from David Piepgrass)
  • v4.7 (10 February 2012)

    • Update:

        Improved the joining of output polygons sharing a common edge.
  • v4.6.4 (8 December 2011)

  • v4.6 (29 October 2011)

    • Added:

        Support for Positive and Negative polygon fill types (in addition to the EvenOdd and NonZero fill types).
    • Bugfix:

        The OffsetPolygons function was generating the occasional artefact when 'shrinking' polygons.
  • v4.5.5 (6 October 2011)

    • Bugfix:

        Fixed an obscure bug in Clipper's JoinCommonEdges method.
    • Update:

        Replaced IsClockwise function with Orientation function. The orientation issues affecting OffsetPolygons should finally be resolved.
    • Change:

        The Area function once again returns the signed area.
  • v4.4.0 (6 August 2011)

    • BugFix:

        A number of minor bugfixes that mostly affected the new ExPolygons structure.
  • v4.3.0 (17 June 2011)

    • Added:

        ExPolygons structure that explicitly associates 'hole' polygons with their 'outer' container polygons.
    • Added:

        Execute method now overloaded so the solution parameter can be either Polygons or ExPolygons.
    • Bug fix:

        Fixed a rare bug in the orientation of solution polygons.
  • v4.2.4 (26 April 2011)

    • Update:

        Input polygon coordinates can now contain the full range of signed 64bit integers (ie +/-9,223,372,036,854,775,807). This means that floating point values can be converted to and from Clipper's 64bit vertex structure (IntPoint) and still retain a precision of up to 18 decimal places. However, since the large-integer math that supports this expanded range imposes a small cost on performance (~15%), a new property UseFullCoordinateRange has been added to the Clipper class to allow users the choice of whether or not to use this expanded coordinate range. If this property is disabled, coordinate values are restricted to +/-1,500,000,000. (By default, this property is enabled.)
  • v4.0 (4 April 2011)

    • Major update:

        Clipper is a major rewrite of earlier versions. The biggest change is that floating point values are no longer used, except for the storing of edge slope values. The main benefit of this is the issue of numerical robustness has been addressed. Due to other major code improvements Clipper v4 is approximately 40% faster than Clipper v3.
    • Changes:

        The AddPolyPolygon method has been renamed to AddPolygons, and the IgnoreOrientation property has been removed. The clipper_misc library has been merged back into the clipper library.
  • v2.8 (20 November 2010)

    • Updated:

        Output polygons which previously shared a common edge are now merged.
    • Added:

        Added support module for Cairo Graphics Library (with accompanying demo).
    • Added:

        Added C# and C++ demos.
  • v2.522 (15 October 2010)

    • Added:

        Added C# translation (thanks to Olivier Lejeune) and a link to Ruby bindings (thanks to Mike Owens).
  • v2.0 (31 July 2010)

    • Major update:

        Clipper now processes polygons using both the Even-Odd (alternate) and Non-Zero (winding) filling rules.
  • v1.4c (16 June 2010)

    • Additions:

        Added Delphi and C++ units to support the AGG graphics library
  • v1.2s (2 June 2010)

    • Additions:

        C++ translation of Delphi code
  • v1.0 (9 May 2010) - Initial public release

See Also

Compatibility with Prior Versions, Rounding, Clipper.Execute, PolyNode, PolyTree, Area, CleanPolygon, CleanPolygons, OffsetPolygons, Orientation, SimplifyPolygon, SimplifyPolygons, IntPoint, PolyFillType, Polygons