diff --git a/Installation/changes.html b/Installation/changes.html index 0fe6f682394..06ef3087529 100644 --- a/Installation/changes.html +++ b/Installation/changes.html @@ -1,5 +1,5 @@ - @@ -21,7 +21,7 @@ { counter-reset:subsection; } - + h3:before { content:counter(section) ". "; @@ -45,7 +45,7 @@ - + @@ -107,6 +107,27 @@ David A. Wheeler's 'SLOCCount', restricted to the include/CGAL/

Release date:

+

Installation

+ +

3D Fast Intersection and Distance Computation

Release 4.1

@@ -163,7 +184,7 @@ David A. Wheeler's 'SLOCCount', restricted to the include/CGAL/ trapezoidal decomposition point-location strategy. The new implementation enables point location in unbounded arrangements. It constructs a search structure of guaranteed linear size with - guaranteed logarithmic query time. + guaranteed logarithmic query time. @@ -267,7 +288,7 @@ the following has been changed since CGAL-4.0:

Surface Mesh Parameterization

@@ -289,8 +310,8 @@ CGAL 4.0 offers the following improvements and new functionality :

CGAL.

The CGAL project, driven by the CGAL Editorial Board, has decided to - change the license scheme of CGAL. We increased the major number - of the CGAL version to '4' in order to reflect this license change. + change the license scheme of CGAL. We increased the major number + of the CGAL version to '4' in order to reflect this license change. The CGAL-4.x series is released under:

@@ -352,7 +373,7 @@ CGAL 4.0 offers the following improvements and new functionality :

AABB Tree

@@ -361,7 +382,7 @@ CGAL 4.0 offers the following improvements and new functionality :

  • Add an extra template parameter to the class Alpha_shape_2 that allows a certified construction using a traits class with exact predicates and inexact constructions.
  • An object of type Alpha_shape_2 can now be constructed from a triangulation.
  • - +

    3D Alpha Shapes

    @@ -386,10 +407,10 @@ CGAL 4.0 offers the following improvements and new functionality :

  • The const-correctness of this package have been worked out. The transition for users should be smooth in general, however adding few const in user code might be needed in some cases.
  • -
  • The class Kd_tree is now guaranteed to be read-only thread-safe. As usual in CGAL, - this small overhead introduced for thread-safety can be deactivated by defining CGAL_HAS_NO_THREADS.
  • +
  • The class Kd_tree is now guaranteed to be read-only thread-safe. As usual in CGAL, + this small overhead introduced for thread-safety can be deactivated by defining CGAL_HAS_NO_THREADS.
  • Bug-fix in Orthogonal_incremental_neighbor_search and Incremental_neighbor_search classes. Several calls to begin() - now allow to make several nearest neighbor search queries independently.
  • + now allow to make several nearest neighbor search queries independently.

    STL Extension

    @@ -401,7 +422,7 @@ CGAL 4.0 offers the following improvements and new functionality :

    Triangulation_2

    @@ -418,7 +439,7 @@ CGAL 3.9 offers the following improvements and new functionality :

    General

    dD Kernel

    @@ -488,8 +509,8 @@ CGAL 3.9 offers the following improvements and new functionality :

  • The deprecated member function is_at_infinity() of Arrangement_2::Vertex has been removed. It has been previously replaced new function is_at_open_boundary(). - -
  • The tags in the geometry traits that indicate the type of boundary of + +
  • The tags in the geometry traits that indicate the type of boundary of the embedding surface were replaced by the following new tags:
              Left_side_category
    @@ -516,7 +537,7 @@ CGAL 3.8 offers the following improvements and new functionality :  

  • Initial support for the LLVM Clang compiler (prereleases of version 2.9).
  • Full support for the options -strict-ansi of the Intel Compiler 11, and -ansi of the GNU g++ compiler.
  • -
  • Adding a concept of ranges. In the following releases, it will be the +
  • Adding a concept of ranges. In the following releases, it will be the way to provide a set of objects (vs. a couple of iterators).
  • Fix a memory leak in CORE polynomials.
  • Various fixes in the manual.
  • @@ -532,7 +553,7 @@ CGAL 3.8 offers the following improvements and new functionality :

    2D Triangulations (major new feature added)

      -
    • Add a way to efficiently insert a range of points with information +
    • Add a way to efficiently insert a range of points with information into a 2D Delaunay and regular triangulation.
    • Add member function mirror_edge taking an edge as parameter.
    • Fix an infinite loop in constrained triangulation. @@ -542,7 +563,7 @@ CGAL 3.8 offers the following improvements and new functionality :

      • Add a way to efficiently insert a range of points with information into a 3D Delaunay and regular triangulation. -
      • Add a member function to remove a cluster of points from a Delaunay or +
      • Add a member function to remove a cluster of points from a Delaunay or regular triangulation.
      • function vertices_in_conflict is renamed vertices_on_conflict_zone_boundary for Delaunay and regular triangulation. Function vertices_inside_conflict_zone @@ -561,13 +582,13 @@ CGAL 3.8 offers the following improvements and new functionality :

        AABB tree

          -
        • Adding the possibility to iteratively add primitives to an existing +
        • Adding the possibility to iteratively add primitives to an existing tree and to build it only when no further insertion is needed.

        2D and 3D Kernel

          -
        • Better handling of 2D points with elevation (3D points projected onto +
        • Better handling of 2D points with elevation (3D points projected onto trivial planes). More general traits classes (Projection_traits_xy_3, Projection_traits_yz_3,Projection_traits_yz_3) are provided to work with triangulations, algorithms on polygons, alpha-shapes, convex hull algorithm... @@ -575,14 +596,14 @@ CGAL 3.8 offers the following improvements and new functionality :

        • Exact_predicates_exact_constructions_kernel now better use the static filters which leads to performance improvements.
        • Add an overload for the global function angle, taking three 3D points. -
        • In the 2D and 3D kernel concept, the constant Boolean Has_filtered_predicates +
        • In the 2D and 3D kernel concept, the constant Boolean Has_filtered_predicates is now deprecated. It is now required to use Has_filtered_predicates_tag (being either Tag_true or Tag_false).
        • Compare_distance_2 and Compare_distance_3 provide additional operators for 3 and 4 elements.
        • Add intersection test and intersection computation capabilities between an object of type Ray_3 and either an object of type Line_3, Segment_3 or Ray_3. -
        • Improve intersection test performance between an object of type Bbox_3 and an object of type +
        • Improve intersection test performance between an object of type Bbox_3 and an object of type Plane_3 or Triangle_3 by avoiding arithmetic filter failures.
        @@ -614,18 +635,18 @@ CGAL 3.8 offers the following improvements and new functionality :

        Algebraic Foundations

        • Algebraic_structure_traits now provides an Inverse functor for Fields. - There is also a new global function inverse. + There is also a new global function inverse.

        Bounding Volumes

          -
        • dD Min sphere of spheres has a new traits class for the min sphere of points. +
        • dD Min sphere of spheres has a new traits class for the min sphere of points.

        Triangulated Surface Mesh Simplification

          -
        • The priority queue internally used to prioritize edge simplifications is no longer - a relaxed heap but a binomial heap. This fix guarantees that all edges satisfying +
        • The priority queue internally used to prioritize edge simplifications is no longer + a relaxed heap but a binomial heap. This fix guarantees that all edges satisfying a simplification criteria are removed (if possible).
        @@ -638,12 +659,12 @@ CGAL 3.8 offers the following improvements and new functionality :

        • Fix a bug in the method insert_at_vertices of the Arrangement_2 class.
        • Fix several bugs in the traits class Arr_Bezier_curve_traits_2 for arrangement of Bezier curves. -
        +

      2D Minkowski Sums

      • A bug in the convolution method was fixed. -
      +

    Release 3.7

    @@ -698,7 +719,7 @@ CGAL 3.7 offers the following improvements and new functionality :

    Arithmetic and Algebra

    • New models Algebraic_kernel_d_1 and Algebraic_kernel_d_2 for the - corresponding concepts. They provide generic support for various + corresponding concepts. They provide generic support for various coefficient types
    @@ -714,12 +735,12 @@ CGAL 3.7 offers the following improvements and new functionality :

  • The Delaunay and regular 2D triangulations now use a symbolic perturbation to choose a particular triangulation in co-circular cases. -
  • The return type of the template member function +
  • The return type of the template member function insert(It beg, It end), taking an iterator range of points, has been changed from int to std::ptrdiff_t.
  • Classes Triangulation_euclidean_traits_xy_3, Triangulation_euclidean_traits_yz_3 - and Triangulation_euclidean_traits_xz_3 are now model of the concept + and Triangulation_euclidean_traits_xz_3 are now model of the concept ConstrainedTriangulationTraits_2. They can be used with and without intersection of constraints. @@ -732,7 +753,7 @@ CGAL 3.7 offers the following improvements and new functionality :

    3D Triangulations

      -
    • The return type of the template member function +
    • The return type of the template member function insert(It beg, It end), taking an iterator range of points, has been changed from int to std::ptrdiff_t.
    • 3D Delaunay triangulations now provide vertex relocation by the mean @@ -773,7 +794,7 @@ CGAL 3.7 offers the following improvements and new functionality :

    • Improved performance and minor bug fix.
    - +

    2D Range and Neighbor Search

    • The type int in the API has been changed to std::size_t @@ -911,7 +932,7 @@ CGAL 3.6 offers the following improvements and new functionality :

      2D Regularized Boolean Set-Operations

      • Fixed General_polygon_set_2::arrangement() to return the proper type - of object. + of object.
      @@ -942,7 +963,7 @@ CGAL 3.6 offers the following improvements and new functionality :

  • Fix the location of built plugins of demo/Polyhedron/, when CGAL is configured with WITH_demos=ON -
  • Fix a bug in test_facet function of the incremental builder: +
  • Fix a bug in test_facet function of the incremental builder: the function did not test if while a new facet makes a vertex manifold, no other facet incident to that vertex breaks the manifold property. @@ -976,11 +997,11 @@ CGAL 3.6 offers the following improvements and new functionality :

    • New demo: 3D periodic Lloyd algorithm. -
    • New functionality for Voronoi diagrams: dual of an edge and of a vertex, - volume and centroid of the dual of a vertex. +
    • New functionality for Voronoi diagrams: dual of an edge and of a vertex, + volume and centroid of the dual of a vertex. -
    • The package can now be used with the 3D Alpha Shapes package to compute - periodic alpha shapes. +
    • The package can now be used with the 3D Alpha Shapes package to compute + periodic alpha shapes.

    3D Alpha shapes

    @@ -988,8 +1009,8 @@ CGAL 3.6 offers the following improvements and new functionality :

    • The class Weighted_alpha_shape_euclidean_traits_3 is deprecated, the class Regular_triangulation_euclidean_traits_3 must be used instead. -
    • The package can now be used together with the 3D Periodic Triangulation - package to compute periodic alpha shapes. +
    • The package can now be used together with the 3D Periodic Triangulation + package to compute periodic alpha shapes.

    2D/3D Triangulations, 2D Segment Delaunay Graph, 2D Apollonius Graph, @@ -1127,7 +1148,7 @@ This is a bug fix release.

    new functions return an enumeration of a new type, namely Arr_parameter_space. -
  • The tags in the geometry traits that indicate the type of boundary of +
  • The tags in the geometry traits that indicate the type of boundary of the embedding surface were replaced by the following new tags: Arr_left_side_tag Arr_bottom_side_tag @@ -1256,7 +1277,7 @@ in functionality. There have also been a number of bug fixes for this release.
  • Qt3 based demos are still there but the documentation has been removed as the CGAL::Qt_Widget will be deprecated. -
  • Qt4 based demos use the Qt GraphicsView framework and the libQGLViewer. +
  • Qt4 based demos use the Qt GraphicsView framework and the libQGLViewer.

    Installation

    @@ -1274,7 +1295,7 @@ in functionality. There have also been a number of bug fixes for this release.

    Modular Arithmetic (new package)

      -
    • This package provides arithmetic over finite fields. +
    • This package provides arithmetic over finite fields.
    @@ -1284,7 +1305,7 @@ in functionality. There have also been a number of bug fixes for this release. a profiling counter enabled with CGAL_PROFILE. -
  • Fix of a bug in CORE/Expr.h; as a consequence, the arrangement demo works properly when handling +
  • Fix of a bug in CORE/Expr.h; as a consequence, the arrangement demo works properly when handling arrangements of conics, for example, when defining an arc with 5 points. @@ -1293,7 +1314,7 @@ in functionality. There have also been a number of bug fixes for this release.

    3D Spherical Geometry Kernel (new package)

      -
    • This package is an extension of the linear CGAL Kernel. It offers functionalities on spheres, +
    • This package is an extension of the linear CGAL Kernel. It offers functionalities on spheres, circles, circular arcs and line segments in the 3D space.
    @@ -1358,40 +1379,40 @@ in functionality. There have also been a number of bug fixes for this release.

    2D Arrangements

      -
    • Changed the name of the arrangement package from Arrangement_2 to Arrangement_on_surface_2 - to reflect the potential capabilities of the package to construct and maintain arrangements - induced by curves embedded on two dimensional surfaces in three space. Most of these capabilities +
    • Changed the name of the arrangement package from Arrangement_2 to Arrangement_on_surface_2 + to reflect the potential capabilities of the package to construct and maintain arrangements + induced by curves embedded on two dimensional surfaces in three space. Most of these capabilities will become available only in future releases though. -
    • Enhanced the geometry traits concept to handle arrangements embedded on surfaces. Each geometry-traits +
    • Enhanced the geometry traits concept to handle arrangements embedded on surfaces. Each geometry-traits class must now define the 'Boundary_category' tag. -
    • Fixed a bug in Arr_polyline_traits_2.h, where the operator that compares two curves failed to evaluate +
    • Fixed a bug in Arr_polyline_traits_2.h, where the operator that compares two curves failed to evaluate the correct result (true) when the curves are different, but their graphs are identical. -
    • Permanently removed IO/Arr_postscript_file_stream.h and IO/Polyline_2_postscript_file_stream.h, +
    • Permanently removed IO/Arr_postscript_file_stream.h and IO/Polyline_2_postscript_file_stream.h, as they depend on obsolete features and LEDA. -
    • Fixed several bugs in the arrangement demo and enhanced it. e.g., fixed background color change, +
    • Fixed several bugs in the arrangement demo and enhanced it. e.g., fixed background color change, allowed vertex coloring , enabled "smart" color selection, etc. -
    • Enhanced the arrangement demo with new features, such as allowing the abortion of the merge function +
    • Enhanced the arrangement demo with new features, such as allowing the abortion of the merge function (de-select), updated the how-to description, etc. -
    • Replace the functions CGAL::insert_curve(), CGAL::insert_curves(), CGAL::insert_x_monotone_curve(), - and CGAL::insert_x_monotone_curves() with a single overloaded function CGAL::insert(). The former - 4 functions are now deprecated, and may no longer be supported in future releases. +
    • Replace the functions CGAL::insert_curve(), CGAL::insert_curves(), CGAL::insert_x_monotone_curve(), + and CGAL::insert_x_monotone_curves() with a single overloaded function CGAL::insert(). The former + 4 functions are now deprecated, and may no longer be supported in future releases.

    Envelopes of Surfaces in 3D

      -
    • Fixed a bug in the computation of the envelope of unbounded planes caused by multiple removals +
    • Fixed a bug in the computation of the envelope of unbounded planes caused by multiple removals of vertices at infinity.

    2D Regularized Boolean Set-Operations

    • Fixed a bug in connect_holes() that caused failures when connecting holes touching the outer boundary. -
    • Fixed the concept GeneralPolygonSetTraits_2. Introduced two new concepts GpsTraitsGeneralPolygon_2 - and GpsTraitsGeneralPolygonWithHoles_2. Fixed the definition of the two nested required types Polygon_2 - and Polygon_with_holes_2 of the GeneralPolygonSetTraits_2 concept. They must model now the two new - concepts above. -
    • Added a default template parameter to 'General_polygon_set_2' to allow users to pass their specialized +
    • Fixed the concept GeneralPolygonSetTraits_2. Introduced two new concepts GpsTraitsGeneralPolygon_2 + and GpsTraitsGeneralPolygonWithHoles_2. Fixed the definition of the two nested required types Polygon_2 + and Polygon_with_holes_2 of the GeneralPolygonSetTraits_2 concept. They must model now the two new + concepts above. +
    • Added a default template parameter to 'General_polygon_set_2' to allow users to pass their specialized DCEL used to instantiate the underlying arrangement.
    • Enhanced the BOP demo to use multiple windows.
    @@ -1399,10 +1420,10 @@ in functionality. There have also been a number of bug fixes for this release.

    2D Minkowski Sums

    • Fixed a few bugs in the approximate offset function, making it robust to highly degenerate inputs. -
    • Fixed a bug in the exact Minkowski sum computation when processing degenerate inputs that induce overlapping +
    • Fixed a bug in the exact Minkowski sum computation when processing degenerate inputs that induce overlapping of contiguous segments in the convolution cycles.
    • Optimized the approximate offset function (reduced time consumption up to a factor of 2 in some cases). -
    • Added functionality to compute the offset (or to approximate the offset) of a Polygon_with_holes_2 +
    • Added functionality to compute the offset (or to approximate the offset) of a Polygon_with_holes_2 (and not just of a Polygon_2).
    • Added the functionality to compute (or to approximate) the inner offset of a polygon.
    @@ -1523,7 +1544,7 @@ in functionality. There have also been a number of bug fixes for this release.
  • Intel C++ compiler 9
  • Microsoft Visual C++ compiler 8.0 - +

    The following platforms are no longer supported:

      @@ -1536,7 +1557,7 @@ of GNU g++'s STL (-D_GLIBCXX_DEBUG).

      CGAL now works around the preprocessor macros 'min' and 'max' defined in <windows.h> which were clashing with min/max functions.

      - +

      Installation

      @@ -1572,8 +1593,8 @@ This package defines what algebra means for CGAL, in terms of concepts, classes

      • 2D Circular Kernel
        -Efficiency improved through geometric filtering of predicates, introduced with - the filtered kernel Filtered_bbox_circular_kernel_2<.>, and also chosen for the +Efficiency improved through geometric filtering of predicates, introduced with + the filtered kernel Filtered_bbox_circular_kernel_2<.>, and also chosen for the predefined kernel Exact_circular_kernel_2.
      • Linear Kernel
        @@ -1614,23 +1635,23 @@ Efficiency improved through geometric filtering of predicates, introduced with

      • Envelopes of Curves in 2D (new package)
        - This package contains two sets of functions that construct the lower and upper envelope diagram + This package contains two sets of functions that construct the lower and upper envelope diagram for a given range of bounded or unbounded curves.

      • Envelopes of Surfaces in 3D (new package)
        - This package contains two sets of functions that construct the lower and upper envelope diagram - for a given range of bounded or unbounded surfaces. The envelope diagram is realized as a + This package contains two sets of functions that construct the lower and upper envelope diagram + for a given range of bounded or unbounded surfaces. The envelope diagram is realized as a 2D arrangement.

      • Minkowski Sums in 2D (new package)
        - This package contains functions for computing planar Minkowski sums of two closed polygons, - and for a polygon and a disc (an operation also known as offsetting or dilating a polygon). - The package also contains an efficient approximation algorithm for the offset computation, - which provides a guaranteed approximation bound while significantly expediting the running + This package contains functions for computing planar Minkowski sums of two closed polygons, + and for a polygon and a disc (an operation also known as offsetting or dilating a polygon). + The package also contains an efficient approximation algorithm for the offset computation, + which provides a guaranteed approximation bound while significantly expediting the running times w.r.t. the exact computation procedure.

        @@ -1648,9 +1669,9 @@ Efficiency improved through geometric filtering of predicates, introduced with namely lines, rays and line segments.

      • Added traits classes that handle circular arcs based on the circular kernel.
      • Added a traits class that supports Bezier curves. -
      • Enhanced the traits class that supports rational functions to +
      • Enhanced the traits class that supports rational functions to handle unbounded (as well as bounded) arcs -
      • Added a free function called decompose() that produces the symbolic vertical decomposition of a +
      • Added a free function called decompose() that produces the symbolic vertical decomposition of a given arrangement, performing a batched vertical ray-shooting query from all arrangement vertices.
      • Fixed a memory leak in the sweep-line code.
      • Fixed a bug in computing the minor axis of non-degenerate hyperbolas. @@ -1658,18 +1679,18 @@ Efficiency improved through geometric filtering of predicates, introduced with
      • Boolean Set Operations
          -
        • Added the DCEL as a default template parameter to the General_polygon_set_2 and Polygon_set_2 classes. +
        • Added the DCEL as a default template parameter to the General_polygon_set_2 and Polygon_set_2 classes. This allows users to extend the DCEL of the underlying arrangement. -
        • Added a function template called connect_holes() that connects the holes in a given polygon with holes, +
        • Added a function template called connect_holes() that connects the holes in a given polygon with holes, turning it into a sequence of points, where the holes are connceted to the outer boundary using - zero-width passages. -
        • Added a non-const function member to General_polygon_set_2 that obtains the underlying arrangement. + zero-width passages. +
        • Added a non-const function member to General_polygon_set_2 that obtains the underlying arrangement.

      • 2D and 3D Triangulations
          -
        • The constructors and insert member functions which take an iterator range perform spatial sorting +
        • The constructors and insert member functions which take an iterator range perform spatial sorting in order to speed up the insertion.
        @@ -1677,7 +1698,7 @@ Efficiency improved through geometric filtering of predicates, introduced with

      • Optimal Distances
        -
          +
          • Polytope_distance_d: has support for homogeneous points; bugfix in fast exact version.
          @@ -1686,7 +1707,7 @@ Efficiency improved through geometric filtering of predicates, introduced with

        • Bounding Volumes
          -
            +
            • Min_annulus_d has support for homogeneous points; bugfix in fast exact version.
            @@ -1699,7 +1720,7 @@ Efficiency improved through geometric filtering of predicates, introduced with This package provides the glue layer for several CGAL data structures such that they become models of the BGL graph concept. - +

          • Spatial Sorting (new package)
            @@ -1712,7 +1733,7 @@ an iterator range of points as argument.
          • Linear and Quadratic Programming Solver (new package)
            This package contains algorithms for minimizing linear and convex quadratic functions over polyhedral domains, described by linear -equations and inequalities. +equations and inequalities.
          @@ -1737,22 +1758,22 @@ This is a bug fix release
          • Rename Bool to avoid a clash with a macro in X11 headers.
          -

          Arrangement

          - +

          Arrangement

          +
            -
          • Derived the Arr_segment_traits_2 Arrangement_2 traits class from the parameterized Kernel. - This allows the use of this traits class in an extended range of applications that require - kernel objects and operations on these objects beyond the ones required by the Arrangement_2 +
          • Derived the Arr_segment_traits_2 Arrangement_2 traits class from the parameterized Kernel. + This allows the use of this traits class in an extended range of applications that require + kernel objects and operations on these objects beyond the ones required by the Arrangement_2 class itself. -
          • Fixed a compilation bug in the code that handles overlay of arrangements instantiated with +
          • Fixed a compilation bug in the code that handles overlay of arrangements instantiated with different DCEL classes. -
          • Fixed a couple of bugs in the implementation of the Trapezoidal RIC point-location strategy +
          • Fixed a couple of bugs in the implementation of the Trapezoidal RIC point-location strategy

          Triangulation, Alpha Shapes

            -
          • Qualify calls to filter_iterator with "CGAL::" to avoid overload ambiguities with - Boost's filter_iterator. +
          • Qualify calls to filter_iterator with "CGAL::" to avoid overload ambiguities with + Boost's filter_iterator.

          Surface Mesher

          @@ -1786,13 +1807,13 @@ in functionality. There have also been a number of bug fixes for this release.
          • SunPro CC versions 5.4 and 5.5 on Solaris -
          • SGI Mips Pro +
          • SGI Mips Pro

          For Visual C++ the installation scripts choose the multi-threaded dynamically linked runtime (/MD). Before it was the single-threaded static runtime (/ML).

          - +

          Installation

          @@ -1804,7 +1825,7 @@ linked runtime (/MD). Before it was the single-threaded static runtime (/ML).

          Manuals
    • -
    • User and Reference manual pages of a package are in the same chapter +
    • User and Reference manual pages of a package are in the same chapter
    @@ -1813,7 +1834,7 @@ linked runtime (/MD). Before it was the single-threaded static runtime (/ML).

    • 2D Circular Kernel (new package)
      -This package is an extension of the linear CGAL Kernel. It offers functionalities +This package is an extension of the linear CGAL Kernel. It offers functionalities on circles, circular arcs and line segments in the plane.
    @@ -2036,7 +2057,7 @@ The following functionality has been added or changed:

    • Improved efficiency of filtered kernels. -
    • More predicates and constructions. +
    • More predicates and constructions.
    @@ -2100,7 +2121,7 @@ computing, it can be classified as a finite precision approximation technique. Iterated Snap Roundingis a modification of Snap Rounding in which each vertex is at least half-the-width-of-a-pixel away from any non-incident edge. This package supports both -methods. +methods.
  • 3D Triangulations @@ -2108,7 +2129,7 @@ methods.
    • Triangulation_3: added operator==(),removed push_back() and copy_triangulation().
    • Delaunay_3 : added nearest_vertex(), move_point(), vertices_in_conflict(). -
    • Regular_3 : added filtered traits class, and nearest_power_vertex(). +
    • Regular_3 : added filtered traits class, and nearest_power_vertex().
    @@ -2159,8 +2180,8 @@ methods.
    • The models - Min_sphere_of_spheres_d_traits_2<K,FT,UseSqrt,Algorithm>, - Min_sphere_of_spheres_d_traits_3<K,FT,UseSqrt,Algorithm>, and + Min_sphere_of_spheres_d_traits_2<K,FT,UseSqrt,Algorithm>, + Min_sphere_of_spheres_d_traits_3<K,FT,UseSqrt,Algorithm>, and Min_sphere_of_spheres_d_traits_d<K,FT,Dim,UseSqrt,Algorithm> of concept MinSphereOfSpheresTraits now represent a sphere @@ -2176,7 +2197,7 @@ methods.
      • New Tutorial on CGAL Polyhedron for Subdivision Algorithms with interactive demo viewer in source code available. - +
      • Added example program for efficient self-intersection test. - Added small helper functions, such as vertex_degree, facet_degree, edge_flip, and is_closed. @@ -2192,7 +2213,7 @@ methods. - +

        Release 3.0.1

        Release date: February 2004

        @@ -2213,7 +2234,7 @@ No new features have been added in 3.0.1. Here is the list of bug-fixes.

        correctly handle a degenerate case.

      -

      2D Triangulation

      +

      2D Triangulation

      • added missing figure in html doc @@ -2234,11 +2255,11 @@ No new features have been added in 3.0.1. Here is the list of bug-fixes.

        • Lazy_exact_nt:
            -
          • added the possibility to select the relative precision of - to_double() (by default 1e-5). This should fix reports - that some circumcenters computations have poor coordinates, +
          • added the possibility to select the relative precision of + to_double() (by default 1e-5). This should fix reports + that some circumcenters computations have poor coordinates, e.g. nan). -
          • when exact computation is triggered, the interval is recomputed, +
          • when exact computation is triggered, the interval is recomputed, this should speed up some kinds of computations.
        • to_interval(Quotient<MP_Float>): avoid spurious overflows. @@ -2248,8 +2269,8 @@ No new features have been added in 3.0.1. Here is the list of bug-fixes.

          • - missing acknowledgment in the manual and minor clarification of - + missing acknowledgment in the manual and minor clarification of + intersection() documentation.
          @@ -2266,7 +2287,7 @@ in functionality. There have also been a number of bug fixes for this release.<

          The license has been changed to either the LGPL (GNU Lesser General Public License v2.1) or the QPL (Q Public License v1.0) depending on each package. So CGAL remains free of use for you, if your usage meets the criteria of these -licenses, otherwise, a commercial license has to be purchased from +licenses, otherwise, a commercial license has to be purchased from GeometryFactory.

          @@ -2307,11 +2328,11 @@ The following functionality has been added or changed:

      • Progress has been made towards the complete adaptability and extensibility of our kernels. -
      • New faster Triangle_3 intersection test routines. +
      • New faster Triangle_3 intersection test routines.
        (see Erratum)
      • Added a Kernel concept archetype to check that generic algorithms don't use more functionality than they should. -
      • A few more miscellaneous functions. +
      • A few more miscellaneous functions.

      Basic Library

      @@ -2328,9 +2349,9 @@ Algorithms for computing the Apollonius
    • dD Min Sphere of Spheres (new package)
      Algorithms to compute the smallest - enclosing sphere of a given set of spheres in Rd. + enclosing sphere of a given set of spheres in Rd. The package provides - an algorithm with maximal expected running time + an algorithm with maximal expected running time O(2O(d) n) and a fast and robust heuristic (for dimension less than 30). @@ -2342,7 +2363,7 @@ Provides exact and approximate distance
    • both nearest and furthest neighbor searching
    • both exact and approximate searching
    • (approximate) range searching -
    • (approximate) k-nearest and k-furthest neighbor +
    • (approximate) k-nearest and k-furthest neighbor searching
    • (approximate) incremental nearest and incremental furthest neighbor searching @@ -2360,7 +2381,7 @@ this package is deprecated, its documentation is removed. iso-rectangles that are inside a given iso-rectangle bounding box, and that do not contain any point of the point set P. -
    • 2D Triangulation and +
    • 2D Triangulation and 3D Triangulation
      • The classes Triangulation_data_structure_2 (and 3), which implements @@ -2399,13 +2420,13 @@ this package is deprecated, its documentation is removed.
    • Interval Skip List (new package)
      -An interval skip list is a data strucure for finding all intervals - that contain a point, and for stabbing queries, that is for answering - the question whether a given point is contained in an interval or not. +An interval skip list is a data strucure for finding all intervals + that contain a point, and for stabbing queries, that is for answering + the question whether a given point is contained in an interval or not. -
    • +
    • Planar Maps and - + Arrangements
      The changes concern mainly the traits classes. @@ -2420,7 +2441,7 @@ An interval skip list is a data strucure for finding all intervals operation based on a sweep-line algorithm only a subset of the requirements is needed. Preconditions were added where appropriate to tighten the requirements further. - +

      The following functions have been renamed:

        @@ -2576,14 +2597,14 @@ An interval skip list is a data strucure for finding all intervals
      • The old design that was deprecated since CGAL 2.3 has been removed.
      • Class Polyhedron_incremental_builder_3:
          -
        • Renamed local enum ABSOLUTE to +
        • Renamed local enum ABSOLUTE to ABSOLUTE_INDEXING, and RELATIVE to - RELATIVE_INDEXING to avoid conflicts with similarly + RELATIVE_INDEXING to avoid conflicts with similarly named macros of another library. -
        • Changed member functions add_vertex(), - begin_facet(), and end_facet() to return +
        • Changed member functions add_vertex(), + begin_facet(), and end_facet() to return useful handles. -
        • Added test_facet() to check facets for validity +
        • Added test_facet() to check facets for validity before adding them.
        • Added vertex( size_t i) to return Vertex_handle for index i. @@ -2657,17 +2678,17 @@ An interval skip list is a data strucure for finding all intervals
          • Intersection test routines -

            The documentation of +

            The documentation of CGAL::do_intersect should mention, for the 3D case:
            - Also, in three-dimensional space Type1 can be + Also, in three-dimensional space Type1 can be

            • either - Plane_3<Kernel> + Plane_3<Kernel>
            • or Triangle_3<Kernel>
            - and Type2 any of + and Type2 any of
            • Plane_3<Kernel>
            • Line_3<Kernel> @@ -2677,14 +2698,14 @@ An interval skip list is a data strucure for finding all intervals

            - In the same way, for + In the same way, for Kernel::DoIntersect_3:
            for all pairs Type1 and Type2, where - the type Type1 is + the type Type1 is

            • either - Kernel::Plane_3 + Kernel::Plane_3
            • or Kernel::Triangle_3
            @@ -2698,8 +2719,8 @@ An interval skip list is a data strucure for finding all intervals

          - Philippe Guigue (INRIA Sophia-Antipolis) should be - mentioned as one of the authors. + Philippe Guigue (INRIA Sophia-Antipolis) should be + mentioned as one of the authors.

        @@ -2747,9 +2768,9 @@ The following functionality has been added or changed:

        subcurves or a planar map.

        -
      • +
      • Planar Maps and - + Arrangements
          @@ -2767,7 +2788,7 @@ The following functionality has been added or changed:



        -
      • +
      • Polyhedral Surface
        • new design introduced with release 2.3 now supported by VC7 compiler @@ -2887,7 +2908,7 @@ release that introduces the leda namespace.
        • The following deficiencies relate to planar maps, planar maps of intersecting curves (pmwx), arrangements and sweep line.
            -
          • On KCC, Borland and SunPro we guarantee neither compilation nor +
          • On KCC, Borland and SunPro we guarantee neither compilation nor correct execution for all of the packages above.
          • On VC6 and VC7 we guarantee neither compilation nor correct execution of the sweep line package. @@ -2898,7 +2919,7 @@ release that introduces the leda namespace. (mind that the so-called leda polyline traits does compile).
          • On g++ (on Irix 6.5) the segment-circle (Arr_segment_circle_traits_2) traits does not compile for either of the above packages. -
          +
      @@ -2916,7 +2937,7 @@ in functionality.

      Additional supported platform:
        -
      • Gnu g++ 3.0 on Solaris and Linux +
      • Gnu g++ 3.0 on Solaris and Linux

      @@ -2927,27 +2948,27 @@ The following functionality has been added:

    • The 2D and 3D kernels now serve as models of the new kernel concept described in the recent paper, "An Adaptable and Extensible Geometry Kernel" by Susan Hert, Micheal Hoffmann, Lutz Kettner, Sylvain Pion, - and Michael Seel to be presented at - WAE 2001 (and + and Michael Seel to be presented at + WAE 2001 (and soon available as a technical report). This new kernel is completely compatible with the previous design but is more flexible in that it allows geometric predicates as well as objects to be easily exchanged and adapted individually to users' needs. -
    • A new kernel called Simple_homogeneous is available. It is +
    • A new kernel called Simple_homogeneous is available. It is equivalent to Homogeneous but without reference-counted objects. -
    • A new kernel called Filtered_kernel is available that allows +
    • A new kernel called Filtered_kernel is available that allows one to build kernel traits classes that use exact and efficient predicates. -
    • There are two classes, Cartesian_converter and +
    • There are two classes, Cartesian_converter and Homogeneous_converter that allows one to convert objects between different Cartesian and homogeneous kernels, respectively. -
    • A new d-dimensional kernel, Kernel_d is available. It provides - diverse kernel objects, predicates and constructions in d dimensions with - two representations based on the kernel families Cartesean_d and +
    • A new d-dimensional kernel, Kernel_d is available. It provides + diverse kernel objects, predicates and constructions in d dimensions with + two representations based on the kernel families Cartesean_d and Homogeneous_d
    @@ -2969,16 +2990,16 @@ The following functionality has been added:

    • The function convex_hull_3 now uses a new implementation of the quickhull algorithm and no longer requires LEDA. -
    • A new convex_hull_incremental_3 function based on the new +
    • A new convex_hull_incremental_3 function based on the new d-dimensional convex hull class is available for comparison purposes.

    -
  • +
  • Convex_hull_d, Delaunay_d
    Two new application classes offering the calculation of d-dimensional convex hulls and delaunay triangulations

    -
  • +
  • Polygons and Polygon Operations
    • The traits class requirements have been changed. @@ -2987,29 +3008,29 @@ The following functionality has been added:

      polygons. You need to set a flag to select this behaviour.

    - +

    -
  • +
  • Planar Nef Polyhedra
    A new class (Nef_polyhedron_2) representing planar Nef polyhedra = rectilinearly bounded points sets that are the result of binary and topological operations starting from halfplanes.

    -
  • A new package offering functions to - +
  • A new package offering functions to + partition planar polygons into convex and y-monotone pieces is available.

    -
  • - Planar Maps and - +
  • + Planar Maps and + Arrangements
      -
    • A new class Planar_map_with_intersections_2<Planar_map> for - planar maps of possibly intersecting, possibly non-x-monotone, - possibly overlapping curves (like Arrangement_2 but without +
    • A new class Planar_map_with_intersections_2<Planar_map> for + planar maps of possibly intersecting, possibly non-x-monotone, + possibly overlapping curves (like Arrangement_2 but without the hierarchy tree).
    • I/O utilities for planar maps and arrangements for textual and @@ -3020,15 +3041,15 @@ The following functionality has been added:

      (Arr_segment_circle_traits<NT>).
    • New faster traits for polylines specialized for using the LEDA - rational kernel (Arr_leda_polylines_traits). The LEDA + rational kernel (Arr_leda_polylines_traits). The LEDA traits for segments was also made faster. -
    • A new point location strategy +
    • A new point location strategy (Pm_simple_point_location<Planar_map>).


    -
  • +
  • Halfedge Data Structure

    The halfedge data structure has been completely revised. The new design @@ -3048,7 +3069,7 @@ The following functionality has been added:

    therefore considerably faster.

    -
  • +
  • Polyhedral Surface

    @@ -3075,11 +3096,11 @@ The following functionality has been added:

    automatically the old design for MSVC++6.0 and the new design otherwise. This automatism can be overwritten by defining appropriate macros before the include files. The old design is selected with the - CGAL_USE_POLYHEDRON_DESIGN_ONE macro. The new design is selected + CGAL_USE_POLYHEDRON_DESIGN_ONE macro. The new design is selected with the CGAL_USE_POLYHEDRON_DESIGN_TWO macro.

    -
  • +
  • 2D Triangulation
    • The geometric traits class requirements have been changed to conform @@ -3101,39 +3122,39 @@ The following functionality has been added:


    -
  • +
  • 3D Triangulation
    • Major improvements
        -
      • A new class Triangulation_hierarchy_3 that allows a - faster point location, and thus construction of the Delaunay +
      • A new class Triangulation_hierarchy_3 that allows a + faster point location, and thus construction of the Delaunay triangulation -
      • A new method for removing a vertex from a Delaunay +
      • A new method for removing a vertex from a Delaunay triangulation that solves all degenerate cases -
      • Running time of the usual location and insertion methods +
      • Running time of the usual location and insertion methods improved
      - +
    • A bit more functionality, such as
      • New geomview output -
      • dual methods in Delaunay triangulations to draw the Voronoi +
      • dual methods in Delaunay triangulations to draw the Voronoi diagram
    • More demos and examples - +
    • Changes in interface
      • Traits classes requirements have been modified
      • The kernel can be used directly as a traits class (except for regular triangulation) -
      • insert methods in Triangulation_data_structure have a +
      • insert methods in Triangulation_data_structure have a new interface

    -
  • A new class (Alpha_shapes_3) that computes Alpha shapes of point +
  • A new class (Alpha_shapes_3) that computes Alpha shapes of point sets in 3D is available.

    @@ -3144,9 +3165,9 @@ The following functionality has been added:

  • Point_set_2
      -
    • now independent of LEDA; based on the CGAL Delaunay triangulation +
    • now independent of LEDA; based on the CGAL Delaunay triangulation
    • traits class requirements adapted to new kernel concept. -
    • function template versions of the provided query operations are +
    • function template versions of the provided query operations are available
    @@ -3155,29 +3176,29 @@ The following functionality has been added:

    • Number types:
        -
      • Lazy_exact_nt<NT> is a new number type wrapper to speed +
      • Lazy_exact_nt<NT> is a new number type wrapper to speed up exact number types. -
      • MP_Float is a new multiprecision floating point number - type. It can do exact additions, subtractions and multiplications +
      • MP_Float is a new multiprecision floating point number + type. It can do exact additions, subtractions and multiplications over floating point values.
    • In_place_list has a new third template parameter (with a suitable default) for an STL-compliant allocator. -
    • +
    • Unique_hash_map is a new support class. -
    • +
    • Union_find is a new support class. -
    • +
    • Geomview_stream :
      • Geomview version 1.8.1 is now required.
      • no need to have a ~/.geomview file anymore.
      • new output operators for triangulations. -
      • new output operators for Ray_2, Line_2, +
      • new output operators for Ray_2, Line_2, Ray_3, Line_3, Sphere_3.
      • various new manipulators.
      @@ -3218,19 +3239,19 @@ The following functionality has been added:
    • New optimisation algorithms
        -
      • Min_annulus_d - Algorithm for computing the smallest enclosing +
      • Min_annulus_d - Algorithm for computing the smallest enclosing annulus of points in arbitrary dimension -
      • Polytope_distance_d - Algorithm for computing the (squared) +
      • Polytope_distance_d - Algorithm for computing the (squared) distance between two convex polytopes in arbitrary dimension -
      • Width_3 - Algorithm for computing the (squared) width of points +
      • Width_3 - Algorithm for computing the (squared) width of points sets in three dimensions
    • 2D Triangulations
      • There are now two triangulation data structures available in CGAL. - The new one uses a list to store the faces and allows one to - represent two-dimensional triangulations embedded in three spaces + The new one uses a list to store the faces and allows one to + represent two-dimensional triangulations embedded in three spaces as well as planar triangulations.
      • The triangulation hierarchy which allows fast location query is now available. @@ -3238,7 +3259,7 @@ The following functionality has been added:
      • Inifinite objects can now be included in planar maps. -
      • Removal as well as insertions of vertices for 3D Delaunay triangulations +
      • Removal as well as insertions of vertices for 3D Delaunay triangulations is now possible.
      • A generator for ``random'' simple polygons is now available. @@ -3251,8 +3272,8 @@ The following functionality has been added:

        The following functionality has been removed:

          -
        • The binary operations on polygons (union, intersection ...) have been - removed. Those operations were not documented in the previous release +
        • The binary operations on polygons (union, intersection ...) have been + removed. Those operations were not documented in the previous release (2.1). Arrangements can often be used as a substitute.
        @@ -3284,18 +3305,18 @@ The following functionality has been added:
      • Alpha shapes and weighted alpha shapes in 2D. Alpha shapes are a generalization of the convex hull of a point set.
      • Arrangements in 2D. Arrangements are related to and based on planar maps. - The major difference between the two is that curves are allowed to + The major difference between the two is that curves are allowed to intersect in the case of arrangements. -
      • Extensions to triangulations in 2D. Constrained triangulations are now - dynamic: they support insertions of new constraint as well as removal of +
      • Extensions to triangulations in 2D. Constrained triangulations are now + dynamic: they support insertions of new constraint as well as removal of existing constraints. There are also constrained Delaunay triangulations.
      • Triangulations in 3D were added, both Delaunay triangulations and regular triangulations. -
      • Min_quadrilateral optimisations have been added. These are algorithms to - compute the minimum enclosing rectangle/parallelogram (arbitrary - orientation) and the minimum enclosing strip of a convex point set. +
      • Min_quadrilateral optimisations have been added. These are algorithms to + compute the minimum enclosing rectangle/parallelogram (arbitrary + orientation) and the minimum enclosing strip of a convex point set.
      • 2d Point_set is a package for 2d range search operations, Delaunay - triangulation, nearest neighbor queries. This package works only if + triangulation, nearest neighbor queries. This package works only if LEDA is installed.
      • Support for GeoWin visualization library. This also depends on @@ -3312,8 +3333,8 @@ The following functionality has been added:

        Release date: June 1999

        -

        The main difference from release 1.2 is the -introduction of namespaces -- namespace std for code from +

        The main difference from release 1.2 is the +introduction of namespaces -- namespace std for code from the standard library and namespace CGAL for the CGAL library.

        @@ -3325,9 +3346,9 @@ the CGAL library.

        Additions to release 1.1 include:

          -
        • topological map -
        • planar map overlay -
        • regular and constrained triangulations +
        • topological map +
        • planar map overlay +
        • regular and constrained triangulations
        diff --git a/Installation/cmake/modules/UseCGAL.cmake b/Installation/cmake/modules/UseCGAL.cmake index c473904b2e1..6a5b91852af 100644 --- a/Installation/cmake/modules/UseCGAL.cmake +++ b/Installation/cmake/modules/UseCGAL.cmake @@ -11,14 +11,14 @@ include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) cgal_setup_module_path() -if(NOT USE_CGAL_FILE_INCLUDED) +if(NOT USE_CGAL_FILE_INCLUDED) set(USE_CGAL_FILE_INCLUDED 1) include(CGAL_Common) include(CGAL_SetupFlags) include(CGAL_GeneratorSpecificSettings) include(CGAL_TweakFindBoost) - + set(CGAL_INSTALLED_SCM_BRANCH_NAME ${CGAL_SCM_BRANCH_NAME}) set(CGAL_SCM_BRANCH_NAME "") @@ -39,23 +39,24 @@ if(NOT USE_CGAL_FILE_INCLUDED) endforeach() use_essential_libs() - - include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ) + + include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ) # need to get variable from cache while compiling CGAL, while in a demo it is set in CGALConfig.cmake - if ( NOT CGAL_LIBRARY ) + if ( NOT CGAL_LIBRARY ) cache_get(CGAL_LIBRARY) endif() add_to_list( CGAL_LIBRARIES ${CGAL_LIBRARY} ) #message (STATUS "LIB: ${CGAL_LIBRARY}") #message (STATUS "LIBS: ${CGAL_LIBRARIES}") - + include_directories ( ${CGAL_INCLUDE_DIRS}) include_directories ( SYSTEM ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) add_definitions ( ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ) - - link_directories ( ${CGAL_LIBRARIES_DIR} ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) - + link_directories ( ${CGAL_LIBRARIES_DIR} ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) + link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) + + endif()