1<html> 2 3<head> 4 5 <script type="text/javascript" src="../../Scripts/jquery.js"> 6 </script> 7 8 <script type="text/javascript" src="../../Scripts/SyntaxHighlighter/scripts/shCore.js"> 9 </script> 10 11 <script type="text/javascript" src="../../Scripts/SyntaxHighlighter/scripts/shBrushDelphi.js"> 12 </script> 13 14 <script type="text/javascript" src="../../Scripts/SyntaxHighlighter/scripts/shBrushCpp.js"> 15 </script> 16 17 <script type="text/javascript" src="../../Scripts/SyntaxHighlighter/scripts/shBrushCSharp.js"> 18 </script> 19 20 <link type="text/css" rel="stylesheet" href="../../Scripts/SyntaxHighlighter/styles/shCoreDefault.css"> 21 22 <link type="text/css" rel="stylesheet" href="../../Scripts/SyntaxHighlighter/styles/shThemeDefault.css"> 23 24 25 <title>Changes</title> 26 27 28 <link rel="stylesheet" href="../../Styles/default.css" type="text/css"> 29 30 31 <script src="../../Scripts/expandable.js" type="text/javascript"> 32 </script> 33 34 35 <style> 36 /* barebones expandable list */ 37 38 ul.barebones { 39 margin-left: 30px; 40 padding: 0; 41 } 42 43 ul.barebones ul { 44 margin: 0; 45 padding-left: 1.5em; 46 } 47 48 ul.barebones li { 49 list-style-type: none; 50 position: relative; 51 } 52 53 ul.barebones a.switch { 54 font-size: 2px; 55 text-indent: -500px; 56 background: transparent url(../../Images/_buttons.gif) no-repeat top left; 57 height: 9px; 58 width: 9px; 59 left: -13px; 60 top: 2px; 61 position: absolute; 62 } 63 64 ul.barebones a { text-decoration: none; } 65 ul.barebones a:hover { text-decoration: underline; } 66 ul.barebones a.switch:hover { text-decoration: none; } 67 68 ul.barebones a.on { background-position: top left; } 69 ul.barebones a.off { background-position: bottom left; } 70 71 ul.barebones h2 { 72 margin: 0px; 73 padding: 0px; 74 display: inline; 75 } 76 77 ul.dots li { 78 list-style-type: square; 79 } 80 81 blockquote { 82 margin: 0px 0px 0px 20px; 83 } 84 85 86 </style> 87 88 89 <script type="text/javascript" src="../../Scripts/bootstrap.js"> 90 </script> 91 92 93 <script type="text/javascript" src="../../Scripts/bootstrap.js"> 94 </script> 95 96</head> 97 98<body style="background-color: rgb(255, 255, 255);"> 99 100 <!-- THIS FILE HAS BEEN AUTOMATICALLY PROCESSED FROM A SOURCE COPY --> 101 102 <!-- DO NOT EDIT MANUALLY !!! --> 103 104 <table class="Banner" cellspacing="0" cellpadding="0" border="1" bordercolorlight="#303080" bordercolordark="#7070B0"> 105 <tr> 106 <td class="Banner" nowrap=""><a href="../_Body.htm" class="Banner"><img src="../../Images/_Home.gif" align="absmiddle">Home</a> 107 </td> 108 <td class="Banner" nowrap=""><a href="_Body.htm" class="Banner">Overview</a> 109 </td> 110 <td class="Banner" width="100%" align="right"><img src="../../Images/_Project_Logo.gif" align="absmiddle"> 111 </td> 112 </tr> 113 </table> 114 <h1>Changes</h1> 115 116 <ul class="barebones expandable"> 117 118 119 <!-- 120<li> 121 <h2>v6.2.X (XX December 2015)</h2><br> 122 <ul> 123 <li> 124 <h2>Bugfix:</h2> 125 <ul class="dots"> 126 xxxxxxxxxxxxxxxxxxxxxxxxxxx 127 </ul> 128 </li> 129 </ul> 130</li> 131<li> 132 --> 133 134 135 <li> 136 <h2>v6.2.1 (31 October 2014)</h2><br> 137 <ul> 138 139 <li> 140 <h2>Bugfix:</h2> 141 <ul class="dots"> 142 Bugfix in <strong><a href="../Units/ClipperLib/Classes/ClipperOffset/Methods/Execute.htm">ClipperOffset.Execute</a></strong> where the Polytree.IsHole property was returning incorrect values with negative offsets 143 144 </ul> </li> 145 146 </ul> 147 <ul> 148 149 <li> 150 <h2>Modified:</h2> 151 <ul class="dots"> 152 Very minor improvement to join rounding in ClipperOffset 153 154 </ul> </li> 155 156 </ul> 157 <ul> 158 159 <li> 160 <h2>Bugfix:</h2> 161 <ul class="dots"> 162 Fixed CPP OpenGL demo 163 164 </ul> </li> 165 166 </ul> </li> 167 168 169 <li> 170 <h2>v6.2.0 (26 September 2014)</h2><br> 171 <ul> 172 173 <li> 174 <h2>Bugfix:</h2> 175 <ul class="dots"> 176 Numerous minor bugfixes - too many to list. (See revisions 454-475 in Sourceforge Repository.) 177 178 </ul> </li> 179 180 <li> 181 <h2>Modified:</h2> 182 <ul class="dots"> 183 Parameters have changed in the <a href="../Units/ClipperLib/Types/ZFillCallback.htm"><b>custom callback function</b></a> that can be assigned to <a href="../Units/ClipperLib/Classes/Clipper/Properties/ZFillFunction.htm"><strong>ZFillFunction</strong></a>. 184 185 </ul> </li> 186 187 <li> 188 <h2>Modified:</h2> 189 <ul class="dots"> 190 Deprecated functions have been removed. 191 192 </ul> </li> 193 194 <li> 195 <h2>Modified:</h2> 196 <ul class="dots"> 197 The Curves demo has been temporarily removed. (It needs to be updated but that was holding up this latest release of the Clipper library.) 198 199 </ul> </li> 200 201 </ul> </li> 202 203 204 <li> 205 <h2>v6.1.3 (18 January 2014)</h2><br> 206 <ul> 207 208 <li> 209 <h2>Bugfix:</h2> 210 <ul class="dots"> 211 Fixed potential endless loop condition when adding open paths to Clipper. 212 213 </ul> </li> 214 215 <li> 216 <h2>Bugfix:</h2> 217 <ul class="dots"> 218 Fixed missing implementation of <a href="../Units/ClipperLib/Functions/SimplifyPolygon.htm"><b>SimplifyPolygon</b></a> function in C++ code. 219 220 </ul> </li> 221 222 <li> 223 <h2>Bugfix:</h2> 224 <ul class="dots"> 225 Fixed incorrect upper range constant for polygon coordinates in Delphi code. 226 227 </ul> </li> 228 229 <li> 230 <h2>Added:</h2> 231 <ul class="dots"> 232 Added <a href="../Units/ClipperLib/Functions/PointInPolygon.htm"><b>PointInPolygon</b></a> function. 233 234 </ul> </li> 235 236 <li> 237 <h2>Added:</h2> 238 <ul class="dots"> 239 Overloaded <a href="../Units/ClipperLib/Functions/MinkowskiSum.htm"><b>MinkowskiSum</b></a> function to accommodate multi-contour paths. 240 241 </ul> </li> 242 243 <li> 244 <h2>Modified:</h2> 245 <ul class="dots"> 246 Documentation updated. 247 248 </ul> </li> 249 250 </ul> </li> 251 252 253 <li> 254 <h2>v6.1.2 (15 December 2013)</h2><br> 255 <ul> 256 257 <li> 258 <h2>Bugfix:</h2> 259 <ul class="dots"> 260Fixed broken C++ header file. 261 262 </ul> </li> 263 264 <li> 265 <h2>Modified:</h2> 266 <ul class="dots"> 267Minor improvement to joining polygons. 268 269 </ul> </li> 270 271 </ul> </li> 272 273 274 <li> 275 <h2>v6.1.1 (13 December 2013)</h2><br> 276 <ul> 277 278 <li> 279 <h2>Bugfix:</h2> 280 <ul class="dots"> 281Fixed a couple of bugs affecting open paths that could raise unhandled exceptions. 282 283 </ul> </li> 284 285 </ul> </li> 286 287 288 <li> 289 <h2>v6.1.0 (2 December 2013)</h2><br> 290 <ul> 291 292 <li> 293 <h2>Deleted:</h2> 294 <ul class="dots">Previously deprecated code has been removed. 295 </ul> </li> 296 297 <li> 298 <h2>Modified:</h2> 299 <ul class="dots"> 300The <a href="../Units/ClipperLib/Functions/OffsetPaths.htm">OffsetPaths</a> function is now deprecated as it has been replaced by the <a href="../Units/ClipperLib/Classes/ClipperOffset/_Body.htm"><b>ClipperOffset</b></a> class which is much more flexible. 301 302 </ul> </li> 303 304 <li> 305 <h2>Bugfix:</h2> 306 <ul class="dots"> 307Several minor bugs have been fixed including occasionally an incorrect nesting within the PolyTree structure. 308 309 </ul> </li> 310 311 </ul> </li> 312 313 314 <li> 315 <h2>v6.0.0 (30 October 2013)</h2><br> 316 <ul> 317 318 <li><span class="maroon"><b>Ver 6 is a MAJOR update that adds support for open path clipping.</b></span></li> 319 320 </ul> 321 <ul> 322 323 <li> 324 <h2>Added:</h2> 325 <ul class="dots"> 326Open path (polyline) clipping. A new 'Curves' demo application showcases this (see the 'Curves' directory). 327 328 </ul> </li> 329 330 </ul> 331 <ul> 332 333 <li> 334 <h2>Update:</h2> 335 <ul class="dots"> 336Major improvement in the merging of shared/collinear edges in clip solutions (see <a href="../Units/ClipperLib/Classes/Clipper/Methods/Execute.htm">Execute</a>). 337 338 </ul> </li> 339 340 </ul> 341 <ul> 342 343 <li> 344 <h2>Added:</h2> 345 <ul class="dots"> 346The <a href="../Units/ClipperLib/Types/IntPoint.htm"><b>IntPoint</b></a> 347structure now has an optional 'Z' member. (See the precompiler directive 348 <a href="../Units/ClipperLib/PreProcessor/Defines.htm"><b><b>use_xyz</b></b></a>.) 349 350 </ul> </li> 351 352 </ul> 353 <ul> 354 355 <li> 356 <h2>Added:</h2> 357 <ul class="dots"> 358Users can now force Clipper to use 32bit integers (via the precompiler 359directive <a href="../Units/ClipperLib/PreProcessor/Defines.htm"><b>use_int32</b></a>) 360instead of using 64bit integers. Using 32bit integers improves clipping 361performance by about 20-30%. (This has required the introduction of a 362new <a href="../Units/ClipperLib/Types/CInt.htm"><b>cInt</b></a> 363integer type.) The trade-off to this speed up in performance is a very 364restricted vertex coordinate range of � 46340. 365 366 </ul> </li> 367 368 </ul> 369 <ul> 370 371 <li> 372 <h2>Modified:</h2> 373 <ul class="dots"> 374To accommodate open paths, the <b>Polygon</b> and <b>Polygons</b> structures have been renamed <a href="../Units/ClipperLib/Types/Path.htm"><b>Path</b></a> and <a href="../Units/ClipperLib/Types/Paths.htm"><b>Paths</b></a> 375respectively. The <b>AddPolygon</b> and <b>AddPolygons</b> methods of the ClipperBase class have been renamed <a href="../Units/ClipperLib/Classes/ClipperBase/Methods/AddPath.htm"><b>AddPath</b></a> and <a href="../Units/ClipperLib/Classes/ClipperBase/Methods/AddPaths.htm"><b>AddPaths</b></a> respectively. Several other functions have been similarly renamed. 376 377 </ul> </li> 378 379 </ul> 380 <ul> 381 382 <li> 383 <h2>Modified:</h2> 384 <ul class="dots"> 385The PolyNode Class has a new IsOpen property (to support open paths). 386 387 </ul> </li> 388 389 </ul> 390 <ul> 391 392 <li> 393 <h2>Modified:</h2> 394 <ul class="dots"> 395The Clipper class has a new <a href="../Units/ClipperLib/Classes/Clipper/Properties/ZFillFunction.htm"><b>ZFillFunction</b></a> 396property. 397 398 </ul> </li> 399 400 </ul> 401 <ul> 402 403 <li> 404 <h2>Added:</h2> 405 <ul class="dots"> 406 <a href="../Units/ClipperLib/Functions/MinkowskiSum.htm"><b>MinkowskiSum</b></a> and 407 <a href="../Units/ClipperLib/Functions/MinkowskiDiff.htm"><b>MinkowskiDiff</b></a> functions added. 408 409 </ul> </li> 410 411 </ul> 412 <ul> 413 414 <li> 415 <h2>Added:</h2> 416 <ul class="dots"> 417Several other new functions have been added including <a href="../Units/ClipperLib/Functions/PolyTreeToPaths.htm"><b>PolyTreeToPaths</b></a>, 418 <a href="../Units/ClipperLib/Functions/OpenPathsFromPolyTree.htm"><b>OpenPathsFromPolyTree</b></a> 419and <a href="../Units/ClipperLib/Functions/ClosedPathsFromPolyTree.htm"><b>ClosedPathsFromPolyTree</b></a>. 420 421 </ul> </li> 422 423 </ul> 424 <ul> 425 426 <li> 427 <h2>Added:</h2> 428 <ul class="dots"> 429The <a href="../Units/ClipperLib/Classes/Clipper/Methods/Constructor.htm">Clipper constructor</a> now accepts an optional <a href="../Units/ClipperLib/Types/InitOptions.htm">InitOptions</a> parameter to simplify setting properties. 430 431 </ul> </li> 432 433 </ul> 434 <ul> 435 436 <li> 437 <h2>Bugfix:</h2> 438 <ul class="dots"> 439Numerous minor bugs have been fixed. 440 441 </ul> </li> 442 443 </ul> 444 <ul> 445 446 <li> 447 <h2>Deprecated:</h2> 448 <ul class="dots"> 449Version 6 is a major upgrade from previous versions and <span class="maroon"><b>quite a number of changes have been made to exposed structures and functions</b></span>. To minimize inconvenience to existing library users, some code has been retained and some added 450to maintain backward compatibility. However, because this code will be 451removed in a future update, it has been marked as deprecated and a 452precompiler directive <a href="./Deprecated.htm"><b>use_deprecated</b></a> 453has been defined. 454 455 </ul> </li> 456 457 </ul> </li> 458 459 460 <li> 461 <h2>v5.1.6 (23 May 2013)</h2> 462 <ul> 463 464 <li> 465 <h2>BugFix:</h2> 466 <ul class="dots"> 467The <a href="../Units/ClipperLib/Functions/CleanPolygon.htm">CleanPolygon</a> 468function was buggy. 469 470 </ul> </li> 471 472 <li> 473 <h2>Added:</h2> 474 <ul class="dots"> 475New OffsetPolyLines function. (Replaced with OffsetPaths function in 476ver 6.) 477 478 </ul> </li> 479 480 <li> 481 <h2>Changed:</h2> 482 <ul class="dots"> 483The behaviour of the 'miter' JoinType has 484been changed so that when squaring occurs, it's no longer extended up 485to the miter limit but is squared off at exactly 'delta' units. (This 486improves the look of mitering with larger limits at acute angles.) 487 488 </ul> </li> 489 490 <li> 491 <h2>Update:</h2> 492 <ul class="dots"> 493Minor code refactoring and optimisations. 494 495 </ul> </li> 496 497 </ul> </li> 498 499 <li> 500 <h2>v5.1.5 (5 May 2013)</h2> 501 <ul> 502 503 <li> 504 <h2>Update:</h2> 505 <ul class="dots"> 506ForceSimple property added to the Clipper Class. (Renamed 507StrictlySimple in ver 6.) 508 509 </ul> </li> 510 511 <li> 512 <h2>Update:</h2> 513 <ul class="dots"> 514Further improvements to this documentation. 515 516 </ul> </li> 517 518 <li> 519 <h2>Update:</h2> 520 <ul class="dots"> 521Minor code optimisations and trivial bug fixes. 522 523 </ul> </li> 524 525 </ul> </li> 526 527 <li> 528 <h2>v5.1.4 (24 March 2013)</h2> 529 <ul> 530 531 <li> 532 <h2>Update:</h2> 533 <ul class="dots"> 534 <a href="../Units/ClipperLib/Functions/CleanPolygon.htm">CleanPolygon</a> 535function enhanced. 536 537 </ul> </li> 538 539 <li> 540 <h2>Update:</h2> 541 <ul class="dots"> 542Documentation improved. 543 544 </ul> </li> 545 546 </ul> </li> 547 548 <li> 549 <h2>v5.1.3 (12 March 2013)</h2> 550 <ul> 551 552 <li> 553 <h2>Bugfix:</h2> 554 <ul class="dots"> 555Minor bug fixes. 556 557 </ul> </li> 558 559 <li> 560 <h2>Update:</h2> 561 <ul class="dots"> 562Documentation significantly improved. 563 564 </ul> </li> 565 566 </ul> </li> 567 568 <li> 569 <h2>v5.1.2 (26 February 2013)</h2> 570 <ul> 571 572 <li> 573 <h2>Bugfix:</h2> 574 <ul class="dots"> 575PolyNode class was missing a constructor. 576 577 </ul> </li> 578 579 <li> 580 <h2>Update:</h2> 581 <ul class="dots"> 582The <i>MiterLimit</i> parameter in the <a href="../Units/ClipperLib/Functions/OffsetPaths.htm">OffsetPolygons</a> 583function has been renamed <i>Limit</i> and can now also be used to 584limit the number of vertices used to construct arcs when JoinType is 585set to jtRound. 586 587 </ul> </li> 588 589 </ul> </li> 590 591 <li> 592 <h2>v5.1.0 (17 February 2013)</h2> 593 <ul> 594 595 <li> 596 <h2>Update:</h2> 597 <ul class="dots"> 598ExPolygons has been replaced with the <a href="../Units/ClipperLib/Classes/PolyTree/_Body.htm">PolyTree</a> / <a href="../Units/ClipperLib/Classes/PolyNode/_Body.htm">PolyNode</a> 599classes to more fully represent the parent-child relationships of the 600polygons returned by Clipper's <a href="../Units/ClipperLib/Classes/Clipper/Methods/Execute.htm">Execute</a> 601method. 602 603 </ul> </li> 604 605 <li> 606 <h2>Added:</h2> 607 <ul class="dots"> 608New <a href="../Units/ClipperLib/Functions/CleanPolygon.htm">CleanPolygon</a> 609and <a href="../Units/ClipperLib/Functions/CleanPolygons.htm">CleanPolygons</a> 610functions. 611 612 </ul> </li> 613 614 <li> 615 <h2>Bugfix:</h2> 616 <ul class="dots"> 617Another orientation bug fixed. 618 619 </ul> </li> 620 621 </ul> </li> 622 623 <li> 624 <h2>v5.0.2 (30 December 2012)</h2> 625 <ul> 626 627 <li> 628 <h2>Bugfix:</h2> 629 <ul class="dots"> 630Significant fixes in and tidy of the internal Int128 class (which is 631used only when polygon coordinate values are greater than �0x3FFFFFFF 632(~1.07e9)). 633 634 </ul> </li> 635 636 <li> 637 <h2>Update:</h2> 638 <ul class="dots"> 639The <a href="../Units/ClipperLib/Functions/Area.htm">Area</a> function 640has been updated with a faster algorithm. 641 642 </ul> </li> 643 644 <li> 645 <h2>Update:</h2> 646 <ul class="dots"> 647Documentation updates. The newish but undocumented 'CheckInputs' 648parameter of the <a href="../Units/ClipperLib/Functions/OffsetPaths.htm">OffsetPolygons</a> 649function has been renamed 'AutoFix' and documented too. The comments on 650 <a href="./Rounding.htm">rounding</a> have also been improved 651(ie clearer and expanded). 652 653 </ul> </li> 654 655 </ul> </li> 656 657 <li> 658 <h2>v4.10.0 (25 December 2012)</h2> 659 <ul> 660 661 <li> 662 <h2>Bugfix:</h2> 663 <ul class="dots"> 664Orientation bugs should now be resolved (finally!). 665 666 </ul> </li> 667 668 <li> 669 <h2>Bugfix:</h2> 670 <ul class="dots"> 671Bug in Int128 class. 672 673 </ul> </li> 674 675 </ul> </li> 676 677 <li> 678 <h2>v4.9.8 (2 December 2012)</h2> 679 <ul> 680 681 <li> 682 <h2>Bugfix:</h2> 683 <ul class="dots"> 684Further fixes to rare Orientation bug. 685 686 </ul> </li> 687 688 </ul> </li> 689 690 <li> 691 <h2>v4.9.7 (29 November 2012)</h2> 692 <ul> 693 694 <li> 695 <h2>Bugfix:</h2> 696 <ul class="dots"> 697Bug that very rarely returned a wrong polygon orientation. 698 699 </ul> </li> 700 701 <li> 702 <h2>Bugfix:</h2> 703 <ul class="dots"> 704Obscure bug affecting OffsetPolygons when using jtRound for the 705JoinType parameter and when polygons also contain very large coordinate 706values. 707 708 </ul> </li> 709 710 </ul> </li> 711 712 <li> 713 <h2>v4.9.6 (9 November 2012)</h2> 714 <ul> 715 716 <li> 717 <h2>Bugfix:</h2> 718 <ul class="dots"> 719Another obscure bug related to joining intersections. 720 721 </ul> </li> 722 723 </ul> </li> 724 725 <li> 726 <h2>v4.9.4 (2 November 2012)</h2> 727 <ul> 728 729 <li> 730 <h2>Bugfix:</h2> 731 <ul class="dots"> 732Bugs in Int128 class occasionally causing wrong orientations. 733 734 </ul> </li> 735 736 <li> 737 <h2>Bugfix:</h2> 738 <ul class="dots"> 739Further fixes related to joining intersections. 740 741 </ul> </li> 742 743 </ul> </li> 744 745 <li> 746 <h2>v4.9.0 (9 October 2012)</h2> 747 <ul> 748 749 <li> 750 <h2>Bugfix:</h2> 751 <ul class="dots"> 752Obscure bug related to joining intersections. 753 754 </ul> </li> 755 756 </ul> </li> 757 758 <li> 759 <h2>v4.8.9 (25 September 2012)</h2> 760 <ul> 761 762 <li> 763 <h2>Bugfix:</h2> 764 <ul class="dots"> 765Obscure bug related to precision of intersections. 766 767 </ul> </li> 768 769 </ul> </li> 770 771 <li> 772 <h2>v4.8.8 (30 August 2012)</h2> 773 <ul> 774 775 <li> 776 <h2>Bugfix:</h2> 777 <ul class="dots"> 778Fixed bug in OffsetPolygons function introduced in version 4.8.5. 779 780 </ul> </li> 781 782 </ul> </li> 783 784 <li> 785 <h2>v4.8.7 (24 August 2012)</h2> 786 <ul> 787 788 <li> 789 <h2>Bugfix:</h2> 790 <ul class="dots"> 791ReversePolygon function in C++ translation was broken. 792 793 </ul> </li> 794 795 <li> 796 <h2>Bugfix:</h2> 797 <ul class="dots"> 798Two obscure bugs affecting orientation fixed too. 799 800 </ul> </li> 801 802 </ul> </li> 803 804 <li> 805 <h2>v4.8.6 (11 August 2012)</h2> 806 <ul> 807 808 <li> 809 <h2>Bugfix:</h2> 810 <ul class="dots"> 811Potential for memory overflow errors when using ExPolygons structure. 812 813 </ul> </li> 814 815 </ul> 816 <ul> 817 818 <li> 819 <h2>Bugfix:</h2> 820 <ul class="dots"> 821The polygon coordinate range has been reduced to � 0x3FFFFFFFFFFFFFFF 822(4.6e18). 823 824 </ul> </li> 825 826 </ul> 827 <ul> 828 829 <li> 830 <h2>Update:</h2> 831 <ul class="dots"> 832ReversePolygons function was misnamed ReversePoints in C++. 833 834 </ul> </li> 835 836 </ul> 837 <ul> 838 839 <li> 840 <h2>Update:</h2> 841 <ul class="dots"> 842SimplifyPolygon function now takes a PolyFillType parameter. 843 844 </ul> </li> 845 846 </ul> </li> 847 848 <li> 849 <h2>v4.8.5 (15 July 2012)</h2> 850 <ul> 851 852 <li> 853 <h2>Bugfix:</h2> 854 <ul class="dots"> 855Potential for memory overflow errors in <a href="../Units/ClipperLib/Functions/OffsetPaths.htm">OffsetPolygons</a>(). 856 857 </ul> </li> 858 859 </ul> </li> 860 861 <li> 862 <h2>v4.8.4 (1 June 2012)</h2> 863 <ul> 864 865 <li> 866 <h2>Bugfix:</h2> 867 <ul class="dots"> 868Another obscure bug affecting ExPolygons structure. 869 870 </ul> </li> 871 872 </ul> </li> 873 874 <li> 875 <h2>v4.8.3 (27 May 2012)</h2> 876 <ul> 877 878 <li> 879 <h2>Bugfix:</h2> 880 <ul class="dots"> 881Obscure bug causing incorrect removal of a vertex. 882 883 </ul> </li> 884 885 </ul> </li> 886 887 <li> 888 <h2>v4.8.2 (21 May 2012)</h2> 889 <ul> 890 891 <li> 892 <h2>Bugfix:</h2> 893 <ul class="dots"> 894Obscure bug could cause an exception when using ExPolygon structure. 895 896 </ul> </li> 897 898 </ul> </li> 899 900 <li> 901 <h2>v4.8.1 (12 May 2012)</h2> 902 <ul> 903 904 <li> 905 <h2>Update:</h2> 906 <ul class="dots"> 907Code tidy and minor bug fixes. 908 909 </ul> </li> 910 911 </ul> </li> 912 913 <li> 914 <h2>v4.8.0 (30 April 2012)</h2> 915 <ul> 916 917 <li> 918 <h2>Bugfix:</h2> 919 <ul class="dots"> 920Occasional errors in orientation fixed. 921 922 </ul> </li> 923 924 <li> 925 <h2>Update:</h2> 926 <ul class="dots"> 927Added notes on <a href="Rounding.htm">rounding</a> to the 928documentation. 929 930 </ul> </li> 931 932 </ul> </li> 933 934 <li> 935 <h2>v4.7.6 (11 April 2012)</h2> 936 <ul> 937 938 <li> 939 <h2>Bugfix:</h2> 940 <ul class="dots"> 941Fixed a bug in the <a href="../Units/ClipperLib/Functions/Orientation.htm">Orientation</a> 942function (affecting C# translations only). 943 944 </ul> </li> 945 946 <li> 947 <h2>Update:</h2> 948 <ul class="dots"> 949Minor documentation update. 950 951 </ul> </li> 952 953 </ul> </li> 954 955 <li> 956 <h2>v4.7.5 (28 March 2012)</h2> 957 <ul> 958 959 <li> 960 <h2>Bugfix:</h2> 961 <ul class="dots"> 962Fixed a recently introduced bug that occasionally caused an unhandled 963exception in C++ and C# translations. 964 965 </ul> </li> 966 967 </ul> </li> 968 969 <li> 970 <h2>v4.7.1 (3 March 2012)</h2> 971 <ul> 972 973 <li> 974 <h2>Bugfix:</h2> 975 <ul class="dots"> 976Rare crash when JoinCommonEdges joined polygons that 'cancelled' each 977other. 978 979 </ul> </li> 980 981 <li> 982 <h2>Bugfix:</h2> 983 <ul class="dots"> 984Clipper's internal Orientation method occasionally returned wrong 985result. 986 987 </ul> </li> 988 989 <li> 990 <h2>Update:</h2> 991 <ul class="dots"> 992Improved C# code (thanks to numerous suggestions from David Piepgrass) 993 994 </ul> </li> 995 996 </ul> </li> 997 998 <li> 999 <h2>v4.7 (10 February 2012)</h2> 1000 <ul> 1001 1002 <li> 1003 <h2>Update:</h2> 1004 <ul class="dots"> 1005Improved the joining of output polygons sharing a common edge. 1006 1007 </ul> </li> 1008 1009 </ul> </li> 1010 1011 <li> 1012 <h2>v4.6.4 (8 December 2011)</h2> 1013 <ul> 1014 1015 <li> 1016 <h2>Added:</h2> 1017 <ul class="dots"> 1018Added <a href="../Units/ClipperLib/Functions/SimplifyPolygon.htm">SimplifyPolygon</a> 1019and <a href="../Units/ClipperLib/Functions/SimplifyPolygons.htm">SimplifyPolygons</a> 1020functions. 1021 1022 </ul> </li> 1023 1024 </ul> </li> 1025 1026 <li> 1027 <h2>v4.6 (29 October 2011)</h2> 1028 <ul> 1029 1030 <li> 1031 <h2>Added:</h2> 1032 <ul class="dots"> 1033Support for <b>Positive</b> and <b>Negative</b> <a href="../Units/ClipperLib/Types/PolyFillType.htm">polygon fill types </a>(in addition to the EvenOdd and NonZero fill types). 1034 1035 </ul> </li> 1036 1037 <li> 1038 <h2>Bugfix:</h2> 1039 <ul class="dots"> 1040The <a href="../Units/ClipperLib/Functions/OffsetPaths.htm">OffsetPolygons</a> 1041function was generating the occasional artefact when 'shrinking' 1042polygons. 1043 1044 </ul> </li> 1045 1046 </ul> </li> 1047 1048 <li> 1049 <h2>v4.5.5 (6 October 2011)</h2> 1050 <ul> 1051 1052 <li> 1053 <h2>Bugfix:</h2> 1054 <ul class="dots"> 1055Fixed an obscure bug in Clipper's JoinCommonEdges method. 1056 1057 </ul> </li> 1058 1059 <li> 1060 <h2>Update:</h2> 1061 <ul class="dots"> 1062Replaced IsClockwise function with <a href="../Units/ClipperLib/Functions/Orientation.htm">Orientation</a> 1063function. The orientation issues affecting OffsetPolygons should 1064finally be resolved. 1065 1066 </ul> </li> 1067 1068 <li> 1069 <h2>Change:</h2> 1070 <ul class="dots"> 1071The <a href="../Units/ClipperLib/Functions/Area.htm">Area</a> function 1072once again returns the <em>signed</em> area. 1073 1074 </ul> </li> 1075 1076 </ul> </li> 1077 1078 <li> 1079 <h2>v4.4.0 (6 August 2011)</h2> 1080 <ul> 1081 1082 <li> 1083 <h2>BugFix:</h2> 1084 <ul class="dots"> 1085A number of minor bugfixes that mostly affected the new ExPolygons 1086structure. 1087 1088 </ul> </li> 1089 1090 </ul> </li> 1091 1092 <li> 1093 <h2>v4.3.0 (17 June 2011)</h2> 1094 <ul> 1095 1096 <li> 1097 <h2>Added:</h2> 1098 <ul class="dots"> 1099ExPolygons structure that explicitly associates 'hole' polygons with 1100their 'outer' container polygons. 1101 1102 </ul> </li> 1103 1104 <li> 1105 <h2>Added:</h2> 1106 <ul class="dots"> 1107 <a href="../Units/ClipperLib/Classes/Clipper/Methods/Execute.htm">Execute</a> 1108method now overloaded so the solution parameter can be either <a href="../Units/ClipperLib/Types/Paths.htm">Polygons</a> or 1109ExPolygons. 1110 1111 </ul> </li> 1112 1113 <li> 1114 <h2>Bug fix:</h2> 1115 <ul class="dots"> 1116Fixed a rare bug in the orientation of solution polygons. 1117 1118 </ul> </li> 1119 1120 </ul> </li> 1121 1122 <li> 1123 <h2>v4.2.4 (26 April 2011)</h2> 1124 <ul> 1125 1126 <li> 1127 <h2>Update:</h2> 1128 <ul class="dots"> 1129Input polygon coordinates can now contain the full range of signed 113064bit integers (ie +/-9,223,372,036,854,775,807). This means that 1131floating point values can be converted to and from Clipper's 64bit 1132vertex structure (<a href="../Units/ClipperLib/Types/IntPoint.htm">IntPoint</a>) 1133and still retain a precision of up to 18 decimal places. However, since 1134the large-integer math that supports this expanded range imposes a 1135small cost on performance (~15%), a new property UseFullCoordinateRange 1136has been added to the Clipper class to allow users the choice of 1137whether or not to use this expanded coordinate range. If this property 1138is disabled, coordinate values are restricted to +/-1,500,000,000. (By 1139default, this property is enabled.) 1140 1141 </ul> </li> 1142 1143 </ul> </li> 1144 1145 <li> 1146 <h2>v4.0 (4 April 2011)</h2> 1147 <ul> 1148 1149 <li> 1150 <h2>Major update:</h2> 1151 <ul class="dots"> 1152Clipper is a major rewrite of earlier versions. The biggest change is 1153that floating point values are no longer used, except for the storing 1154of edge slope values. The main benefit of this is the issue of 1155numerical robustness has been addressed. Due to other major code 1156improvements Clipper v4 is approximately 40% faster than Clipper v3. 1157 1158 </ul> </li> 1159 1160 <li> 1161 <h2>Changes:</h2> 1162 <ul class="dots"> 1163The AddPolyPolygon method has been renamed to AddPolygons, and the 1164IgnoreOrientation property has been removed. The clipper_misc library 1165has been merged back into the clipper library. 1166 1167 </ul> </li> 1168 1169 </ul> </li> 1170 1171 <li> 1172 <h2>v2.8 (20 November 2010)</h2> 1173 <ul> 1174 1175 <li> 1176 <h2>Updated:</h2> 1177 <ul class="dots"> 1178Output polygons which previously shared a common edge are now merged. 1179 1180 </ul> </li> 1181 1182 <li> 1183 <h2>Added:</h2> 1184 <ul class="dots"> 1185Added support module for Cairo Graphics Library (with accompanying 1186demo). 1187 1188 </ul> </li> 1189 1190 <li> 1191 <h2>Added:</h2> 1192 <ul class="dots"> 1193Added C# and C++ demos. 1194 1195 </ul> </li> 1196 1197 </ul> </li> 1198 1199 <li> 1200 <h2>v2.522 (15 October 2010)</h2> 1201 <ul> 1202 1203 <li> 1204 <h2>Added:</h2> 1205 <ul class="dots"> 1206Added C# translation (thanks to Olivier Lejeune) and a link to Ruby 1207bindings (thanks to Mike Owens). 1208 1209 </ul> </li> 1210 1211 </ul> </li> 1212 1213 <li> 1214 <h2>v2.0 (31 July 2010)</h2> 1215 <ul> 1216 1217 <li> 1218 <h2>Major update:</h2> 1219 <ul class="dots"> 1220Clipper now processes polygons using both the Even-Odd (alternate) and 1221Non-Zero (winding) filling rules. 1222 1223 </ul> </li> 1224 1225 </ul> </li> 1226 1227 <li> 1228 <h2>v1.4c (16 June 2010)</h2> 1229 <ul> 1230 1231 <li> 1232 <h2>Additions:</h2> 1233 <ul class="dots"> 1234Added Delphi and C++ units to support the AGG graphics library 1235 1236 </ul> </li> 1237 1238 </ul> </li> 1239 1240 <li> 1241 <h2>v1.2s (2 June 2010)</h2> 1242 <ul> 1243 1244 <li> 1245 <h2>Additions:</h2> 1246 <ul class="dots"> 1247C++ translation of Delphi code 1248 1249 </ul> </li> 1250 1251 </ul> </li> 1252 1253 <li> 1254 <h2>v1.0 (9 May 2010) - Initial public release</h2> </li> 1255 1256 1257 </ul> 1258 1259<img src="../../Images/_buttons.gif" height="1" width="1"> 1260 1261 1262 <h2 id="Auto-SeeAlso">See Also</h2> 1263 <p class="Body"><a href="Deprecated.htm">Deprecated</a>, <a href="Rounding.htm">Rounding</a>, <a href="../Units/ClipperLib/Classes/Clipper/Methods/Constructor.htm">Clipper.Constructor</a>, <a href="../Units/ClipperLib/Classes/Clipper/Methods/Execute.htm">Clipper.Execute</a>, <a href="../Units/ClipperLib/Classes/Clipper/Properties/ZFillFunction.htm">Clipper.ZFillFunction</a>, <a href="../Units/ClipperLib/Classes/ClipperBase/Methods/AddPath.htm">ClipperBase.AddPath</a>, <a href="../Units/ClipperLib/Classes/ClipperBase/Methods/AddPaths.htm">ClipperBase.AddPaths</a>, <a href="../Units/ClipperLib/Classes/ClipperOffset/_Body.htm">ClipperOffset</a>, <a href="../Units/ClipperLib/Classes/ClipperOffset/Methods/Execute.htm">ClipperOffset.Execute</a>, <a href="../Units/ClipperLib/Classes/PolyNode/_Body.htm">PolyNode</a>, <a href="../Units/ClipperLib/Classes/PolyTree/_Body.htm">PolyTree</a>, <a href="../Units/ClipperLib/Functions/Area.htm">Area</a>, <a href="../Units/ClipperLib/Functions/CleanPolygon.htm">CleanPolygon</a>, <a href="../Units/ClipperLib/Functions/CleanPolygons.htm">CleanPolygons</a>, <a href="../Units/ClipperLib/Functions/ClosedPathsFromPolyTree.htm">ClosedPathsFromPolyTree</a>, <a href="../Units/ClipperLib/Functions/MinkowskiDiff.htm">MinkowskiDiff</a>, <a href="../Units/ClipperLib/Functions/MinkowskiSum.htm">MinkowskiSum</a>, <a href="../Units/ClipperLib/Functions/OffsetPaths.htm">OffsetPaths</a>, <a href="../Units/ClipperLib/Functions/OpenPathsFromPolyTree.htm">OpenPathsFromPolyTree</a>, <a href="../Units/ClipperLib/Functions/Orientation.htm">Orientation</a>, <a href="../Units/ClipperLib/Functions/PointInPolygon.htm">PointInPolygon</a>, <a href="../Units/ClipperLib/Functions/PolyTreeToPaths.htm">PolyTreeToPaths</a>, <a href="../Units/ClipperLib/Functions/SimplifyPolygon.htm">SimplifyPolygon</a>, <a href="../Units/ClipperLib/Functions/SimplifyPolygons.htm">SimplifyPolygons</a>, <a href="../Units/ClipperLib/PreProcessor/Defines.htm">Defines</a>, <a href="../Units/ClipperLib/Types/CInt.htm">CInt</a>, <a href="../Units/ClipperLib/Types/InitOptions.htm">InitOptions</a>, <a href="../Units/ClipperLib/Types/IntPoint.htm">IntPoint</a>, <a href="../Units/ClipperLib/Types/Path.htm">Path</a>, <a href="../Units/ClipperLib/Types/Paths.htm">Paths</a>, <a href="../Units/ClipperLib/Types/PolyFillType.htm">PolyFillType</a>, <a href="../Units/ClipperLib/Types/ZFillCallback.htm">ZFillCallback</a></p> 1264 1265 <p class="Copyright" id="auto"> <br><br> Copyright ©2010-2014 Angus Johnson - Clipper 6.2.1 - Help file built on 1-November-2014 <br><br> </p> 1266 1267</body> 1268 1269</html>