merge next
|
|
@ -1248,6 +1248,7 @@ Circular_kernel_2/examples/Circular_kernel_2/functor_has_on_2.cpp -text
|
|||
Circular_kernel_2/include/CGAL/Circular_kernel_intersections.h -text
|
||||
Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h -text
|
||||
Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h -text
|
||||
Circular_kernel_2/test/Circular_kernel_2/CMakeLists.txt -text
|
||||
Circular_kernel_2/test/Circular_kernel_2/test_Circular_kernel_basic.cpp -text
|
||||
Circular_kernel_2/test/Circular_kernel_2/test_Exact_circular_kernel_basic.cpp -text
|
||||
Circular_kernel_3/changes -text
|
||||
|
|
@ -1268,6 +1269,7 @@ Circular_kernel_3/include/CGAL/Circle_type.h -text
|
|||
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_function_compare_to_right_spherical_kernel.h -text
|
||||
Circular_kernel_3/include/CGAL/Spherical_kernel_intersections.h -text
|
||||
Circular_kernel_3/include/CGAL/global_functions_spherical_kernel_3.h -text
|
||||
Circular_kernel_3/test/Circular_kernel_3/CMakeLists.txt -text
|
||||
Circular_kernel_3/test/Circular_kernel_3/include/CGAL/_test_functionalities_on_sphere.h -text
|
||||
Circular_kernel_3/test/Circular_kernel_3/test_Lazy_Spherical_kernel.cpp -text
|
||||
Circular_kernel_3/test/Circular_kernel_3/test_Lazy_spherical_kernel_basics.cpp -text
|
||||
|
|
@ -1385,6 +1387,7 @@ Combinatorial_map/include/CGAL/Cell_iterators.h -text
|
|||
Combinatorial_map/include/CGAL/Combinatorial_map.h -text
|
||||
Combinatorial_map/include/CGAL/Combinatorial_map_basic_operations.h -text
|
||||
Combinatorial_map/include/CGAL/Combinatorial_map_constructors.h -text
|
||||
Combinatorial_map/include/CGAL/Combinatorial_map_iterators_base.h -text
|
||||
Combinatorial_map/include/CGAL/Combinatorial_map_min_items.h -text
|
||||
Combinatorial_map/include/CGAL/Combinatorial_map_operations.h -text
|
||||
Combinatorial_map/include/CGAL/Dart.h -text
|
||||
|
|
@ -1392,6 +1395,7 @@ Combinatorial_map/include/CGAL/Dart_const_iterators.h -text
|
|||
Combinatorial_map/include/CGAL/Dart_iterators.h -text
|
||||
Combinatorial_map/include/CGAL/internal/Combinatorial_map_functors.h -text
|
||||
Combinatorial_map/include/CGAL/internal/Combinatorial_map_utility.h -text
|
||||
Combinatorial_map/include/CGAL/internal/Combinatorial_map_utility_novariadic.h -text
|
||||
Combinatorial_map/package_info/Combinatorial_map/description.txt -text
|
||||
Combinatorial_map/package_info/Combinatorial_map/long_description.txt -text
|
||||
Combinatorial_map/package_info/Combinatorial_map/maintainer -text
|
||||
|
|
@ -1956,10 +1960,11 @@ Maintenance/deb/sid/debian/control -text
|
|||
Maintenance/deb/sid/debian/libcgal-demo.install -text
|
||||
Maintenance/deb/sid/debian/libcgal-dev.install -text
|
||||
Maintenance/deb/sid/debian/libcgal-ipelets.install -text
|
||||
Maintenance/deb/sid/debian/libcgal7.install -text
|
||||
Maintenance/deb/sid/debian/libcgal7.shlibs -text
|
||||
Maintenance/deb/sid/debian/libcgal8.install -text
|
||||
Maintenance/deb/sid/debian/libcgal8.shlibs -text
|
||||
Maintenance/deb/sid/debian/patches/00list -text
|
||||
Maintenance/deb/sid/debian/rules -text
|
||||
Maintenance/deb/sid/debian/source/format -text
|
||||
Maintenance/deb/sid/debian/watch -text
|
||||
Maintenance/deb/squeeze/debian/README.Debian -text
|
||||
Maintenance/deb/squeeze/debian/README.source -text
|
||||
|
|
@ -1969,10 +1974,11 @@ Maintenance/deb/squeeze/debian/control -text
|
|||
Maintenance/deb/squeeze/debian/libcgal-demo.install -text
|
||||
Maintenance/deb/squeeze/debian/libcgal-dev.install -text
|
||||
Maintenance/deb/squeeze/debian/libcgal-ipelets.install -text
|
||||
Maintenance/deb/squeeze/debian/libcgal7.install -text
|
||||
Maintenance/deb/squeeze/debian/libcgal7.shlibs -text
|
||||
Maintenance/deb/squeeze/debian/libcgal8.install -text
|
||||
Maintenance/deb/squeeze/debian/libcgal8.shlibs -text
|
||||
Maintenance/deb/squeeze/debian/patches/00list -text
|
||||
Maintenance/deb/squeeze/debian/rules -text
|
||||
Maintenance/deb/squeeze/debian/source/format -text
|
||||
Maintenance/deb/squeeze/debian/watch -text
|
||||
Maintenance/deb/wheezy/debian/README.Debian -text
|
||||
Maintenance/deb/wheezy/debian/README.source -text
|
||||
|
|
@ -1982,10 +1988,11 @@ Maintenance/deb/wheezy/debian/control -text
|
|||
Maintenance/deb/wheezy/debian/libcgal-demo.install -text
|
||||
Maintenance/deb/wheezy/debian/libcgal-dev.install -text
|
||||
Maintenance/deb/wheezy/debian/libcgal-ipelets.install -text
|
||||
Maintenance/deb/wheezy/debian/libcgal7.install -text
|
||||
Maintenance/deb/wheezy/debian/libcgal7.shlibs -text
|
||||
Maintenance/deb/wheezy/debian/libcgal8.install -text
|
||||
Maintenance/deb/wheezy/debian/libcgal8.shlibs -text
|
||||
Maintenance/deb/wheezy/debian/patches/00list -text
|
||||
Maintenance/deb/wheezy/debian/rules -text
|
||||
Maintenance/deb/wheezy/debian/source/format -text
|
||||
Maintenance/deb/wheezy/debian/watch -text
|
||||
Maintenance/infrastructure/cgal.geometryfactory.com/.autocgal_with_cmake_rc -text
|
||||
Maintenance/infrastructure/cgal.geometryfactory.com/.autocgalrc -text
|
||||
|
|
@ -2554,7 +2561,6 @@ Mesh_3/doc_tex/Mesh_3_ref/Polyhedral_mesh_domain_3.tex -text
|
|||
Mesh_3/doc_tex/Mesh_3_ref/WSE/MeshWSETraits_3.tex -text
|
||||
Mesh_3/doc_tex/Mesh_3_ref/WSE/MeshWSEVertexBase_3.tex -text
|
||||
Mesh_3/doc_tex/Mesh_3_ref/WSE/make_mesh_3_with_sharp_edges.tex -text
|
||||
Mesh_3/examples/Mesh_3/cgal_test_with_cmake eol=lf
|
||||
Mesh_3/examples/Mesh_3/data/elephant.off -text svneol=unset#application/octet-stream
|
||||
Mesh_3/examples/Mesh_3/data/fandisk.off -text svneol=unset#application/octet-stream
|
||||
Mesh_3/examples/Mesh_3/data/liver.inr.gz -text svneol=unset#application/gzip
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
\begin{ccPkgDescription}{3D Fast Intersection and Distance Computation (AABB Tree)\label{Pkg:AABB_tree}}
|
||||
\ccPkgSummary{The AABB (axis-aligned bounding box) tree component offers a static data structure and algorithms to perform efficient intersection and distance queries on sets of finite 3D geometric objects.}
|
||||
|
||||
\ccPkgHowToCiteCgal{cgal:atw-aabb-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:atw-aabb-12}
|
||||
\ccPkgIntroducedInCGAL{3.5}
|
||||
\ccPkgDemo{AABB Tree}{AABB_demo.zip}
|
||||
\ccPkgIllustration{AABB_tree/figs/teaser-thumb.png}{AABB_tree/figs/teaser.png}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2008-2009 INRIA Sophia-Antipolis (France), ETH Zurich (Switzerland).
|
||||
// Copyright (c) 2008-2009 INRIA Sophia-Antipolis (France).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2008,2011 INRIA Sophia-Antipolis (France), ETH Zurich (Switzerland).
|
||||
// Copyright (c) 2008,2011 INRIA Sophia-Antipolis (France).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2008 INRIA Sophia-Antipolis (France), ETH Zurich (Switzerland).
|
||||
// Copyright (c) 2008 INRIA Sophia-Antipolis (France).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2008 INRIA Sophia-Antipolis (France), ETH Zurich (Switzerland).
|
||||
// Copyright (c) 2008 INRIA Sophia-Antipolis (France).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2008-2009 INRIA Sophia-Antipolis (France), ETH Zurich (Switzerland).
|
||||
// Copyright (c) 2008-2009 INRIA Sophia-Antipolis (France).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{Algebraic Foundations\label{Pkg:AlgebraicFoundations}}
|
||||
\ccPkgHowToCiteCgal{cgal:h-af-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:h-af-12}
|
||||
\ccPkgSummary{
|
||||
This package defines what algebra means for \cgal, in terms of
|
||||
concepts, classes and functions. The main features are:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands)
|
||||
ETH Zurich (Switzerland)
|
||||
INRIA Sophia-Antipolis (France)
|
||||
Max-Planck-Institute Saarbruecken (Germany)
|
||||
Tel-Aviv University (Israel)
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{Algebraic Kernel \label{Pkg:AlgebraicKerneld}}
|
||||
\ccPkgHowToCiteCgal{cgal:bht-ak-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:bht-ak-12}
|
||||
\ccPkgSummary{
|
||||
Real solving of polynomials is a fundamental problem with a wide application range.
|
||||
This package is targeted to provide black-box implementations of state-of-the-art
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{2D Alpha Shapes\label{Pkg:AlphaShape2}}
|
||||
\ccPkgHowToCiteCgal{cgal:d-as2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:d-as2-12}
|
||||
\ccPkgSummary{
|
||||
This package offers a data structure encoding the whole family of alpha-complexes
|
||||
related to a given 2D Delaunay or regular triangulation. In particular, the data structure
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ public:
|
|||
typedef typename Gt::FT FT;
|
||||
typedef typename Gt::Point_2 Point;
|
||||
typedef typename Gt::Segment_2 Segment;
|
||||
typedef typename Gt::Ray_2 Ray;
|
||||
typedef typename Gt::Line_2 Line;
|
||||
|
||||
typedef typename Dt::Face_handle Face_handle;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ public:
|
|||
typedef typename Gt::Point Point;
|
||||
|
||||
typedef typename Gt::Distance Distance;
|
||||
typedef typename Gt::Ray Ray;
|
||||
typedef typename Gt::Line Line;
|
||||
|
||||
typedef typename Alpha_shape_2<Rt>::Face_handle Face_handle;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -19,7 +19,6 @@ typedef CGAL::Filtered_kernel<SC> K;
|
|||
|
||||
typedef K::Point_2 Point;
|
||||
typedef K::Segment_2 Segment;
|
||||
typedef K::Ray_2 Ray;
|
||||
typedef K::Line_2 Line;
|
||||
typedef K::Triangle_2 Triangle;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ typedef CGAL::Filtered_kernel<SC> K;
|
|||
typedef K::Point_2 Point_base;
|
||||
typedef CGAL::Weighted_point<Point_base,coord_type> Point;
|
||||
typedef K::Segment_2 Segment;
|
||||
typedef K::Ray_2 Ray;
|
||||
typedef K::Line_2 Line;
|
||||
typedef K::Triangle_2 Triangle;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{3D Alpha Shapes\label{Pkg:AlphaShapes3}}
|
||||
\ccPkgHowToCiteCgal{cgal:dy-as3-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:dy-as3-12}
|
||||
\ccPkgSummary{
|
||||
This package offers a data structure encoding
|
||||
either one alpha-complex or
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{2D Apollonius Graphs (Delaunay Graphs of Disks)\label{Pkg:ApolloniusGraph2}}
|
||||
\ccPkgHowToCiteCgal{cgal:ky-ag2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:ky-ag2-12}
|
||||
\ccPkgSummary{
|
||||
Algorithms for computing the Apollonius
|
||||
graph in two dimensions. The Apollonius graph is the dual of the
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
ETH Zurich (Switzerland).
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
// Copyright (c) 2009 Max-Planck-Institute Saarbruecken (Germany).
|
||||
// All rights reserved.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2010 GeometryFactory (France).
|
||||
// Copyright (c) 2010 Max-Planck-Institute Saarbruecken (Germany).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{2D Arrangement\label{Pkg:Arrangement2}}
|
||||
\ccPkgHowToCiteCgal{cgal:wfzh-a2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:wfzh-a2-12}
|
||||
\ccPkgSummary{
|
||||
This package can be used to construct, maintain, alter, and display
|
||||
arrangements in the plane. Once an arrangement is constructed, the
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
\label{chapterArrangement_on_surface_2}
|
||||
\ccChapterRelease{\ArrangementOnSurfaceRev. \ \ArrangementOnSurfaceDate}
|
||||
\ccChapterAuthor{Ron Wein, Efi Fogel, Baruch Zukerman, Dan Halperin, Eric Berberich, and Oren Zalzman}
|
||||
\ccChapterAuthor{Ron Wein \and Eric Berberich \and Efi Fogel \and Dan Halperin \and Michael Hemmer \and Oren Salzman \and Baruch Zukerman}
|
||||
|
||||
\input{Arrangement_on_surface_2/PkgDescription.tex}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{2D Intersection of Curves\label{Pkg:IntersectionOfCurves2}}
|
||||
\ccPkgHowToCiteCgal{cgal:wfz-ic2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:wfz-ic2-12}
|
||||
\ccPkgSummary{This package provides three free functions implemented
|
||||
based on the sweep-line paradigm: given a collection of input curves,
|
||||
compute all intersection points, compute the set of subcurves that are
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{CGAL and the Boost Graph Library\label{Pkg:BGL}}
|
||||
\ccPkgHowToCiteCgal{cgal:cfw-cbgl-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:cfw-cbgl-12}
|
||||
|
||||
\ccPkgSummary{This package provides a framework for interfacing \cgal\
|
||||
data structures with the algorithms of the {\sc BGL}. It allows to run
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
GeometryFactory (France)
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{2D Regularized Boolean Set-Operations\label{Pkg:BooleanSetOperations2}}
|
||||
\ccPkgHowToCiteCgal{cgal:fwzh-rbso2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:fwzh-rbso2-12}
|
||||
\ccPkgSummary{
|
||||
This package consists of the implementation of Boolean set-operations
|
||||
on point sets bounded by weakly x-monotone curves in 2-dimensional
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{Intersecting Sequences of dD Iso-oriented Boxes\label{Pkg:BoxIntersectionD}}
|
||||
\ccPkgHowToCiteCgal{cgal:kmz-isiobd-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:kmz-isiobd-12}
|
||||
\ccPkgSummary{
|
||||
An efficient algorithm for finding all intersecting pairs for large
|
||||
numbers of iso-oriented boxes, in order to apply a user defined callback
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{CGAL Ipelets \label{Pkg:CGALIpelets}}
|
||||
\ccPkgHowToCiteCgal{cgal:lp-gi-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:lp-gi-12}
|
||||
\ccPkgSummary{This package provides
|
||||
a generic framework to easily write ipelets (plug-in's) using \cgal{} for the
|
||||
the Ipe extensible drawing editor.}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{2D Circular Geometry Kernel \label{Pkg:CircularKernel2}}
|
||||
\ccPkgHowToCiteCgal{cgal:cpt-cgk2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:cpt-cgk2-12}
|
||||
\ccPkgSummary{
|
||||
This package is an extension of the linear \cgal\ kernel. It offers
|
||||
functionalities on circles, circular arcs and line segments in the
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
# Created by the script cgal_create_cmake_script
|
||||
# This is the CMake script for compiling a CGAL application.
|
||||
|
||||
|
||||
project( Circular_kernel_2_test )
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5)
|
||||
|
||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
||||
|
||||
if ( COMMAND cmake_policy )
|
||||
cmake_policy( SET CMP0003 NEW )
|
||||
endif()
|
||||
|
||||
find_package(CGAL QUIET COMPONENTS Core )
|
||||
|
||||
if ( CGAL_FOUND )
|
||||
|
||||
include( ${CGAL_USE_FILE} )
|
||||
|
||||
include( CGAL_CreateSingleSourceCGALProgram )
|
||||
|
||||
include_directories (BEFORE include)
|
||||
include_directories (BEFORE ../../include)
|
||||
include_directories (BEFORE ../../../Kernel_23/test/Kernel_23/include)
|
||||
include_directories (BEFORE ../Kernel_23/include)
|
||||
include_directories (BEFORE ../Cartesian_kernel/include)
|
||||
include_directories (BEFORE ../Homogeneous_kernel/include)
|
||||
include_directories (BEFORE ../Intersections_2/include)
|
||||
|
||||
create_single_source_cgal_program( "test_Circular_kernel.cpp" )
|
||||
create_single_source_cgal_program( "test_Exact_circular_kernel.cpp" )
|
||||
create_single_source_cgal_program( "test_Filtered_bbox_circular_kernel.cpp" )
|
||||
create_single_source_cgal_program( "test_Line_arc.cpp" )
|
||||
create_single_source_cgal_program( "test_Circular_kernel_basic.cpp" )
|
||||
create_single_source_cgal_program( "test_Exact_circular_kernel_basic.cpp" )
|
||||
|
||||
else()
|
||||
|
||||
message(STATUS "NOTICE: This program requires the CGAL library, and will not be compiled.")
|
||||
|
||||
endif()
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{3D Spherical Geometry Kernel \label{Pkg:SphericalKernel3}}
|
||||
\ccPkgHowToCiteCgal{cgal:cclt-sgk3-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:cclt-sgk3-12}
|
||||
\ccPkgSummary{
|
||||
This package is an extension of the linear \cgal\ Kernel. It offers
|
||||
functionalities on spheres, circles, circular arcs and line segments,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
# Created by the script cgal_create_cmake_script
|
||||
# This is the CMake script for compiling a CGAL application.
|
||||
|
||||
|
||||
project( Circular_kernel_3_test )
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5)
|
||||
|
||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
||||
|
||||
if ( COMMAND cmake_policy )
|
||||
cmake_policy( SET CMP0003 NEW )
|
||||
endif()
|
||||
|
||||
find_package(CGAL QUIET COMPONENTS Core )
|
||||
|
||||
if ( CGAL_FOUND )
|
||||
|
||||
include( ${CGAL_USE_FILE} )
|
||||
|
||||
include( CGAL_CreateSingleSourceCGALProgram )
|
||||
|
||||
include_directories (BEFORE include)
|
||||
include_directories (BEFORE ../../include)
|
||||
include_directories (BEFORE ../../../Kernel_23/test/Kernel_23/include)
|
||||
include_directories (BEFORE ../Kernel_23/include)
|
||||
include_directories (BEFORE ../Cartesian_kernel/include)
|
||||
include_directories (BEFORE ../Homogeneous_kernel/include)
|
||||
include_directories (BEFORE ../../../Intersections_3/include)
|
||||
include_directories (BEFORE ../../../Algebraic_kernel_for_spheres/include)
|
||||
include_directories (BEFORE ../../../Kernel_23/include)
|
||||
include_directories (BEFORE ../../../Cartesian_kernel/include)
|
||||
|
||||
create_single_source_cgal_program( "test_Spherical_kernel.cpp" )
|
||||
create_single_source_cgal_program( "test_Spherical_kernel_basics.cpp" )
|
||||
create_single_source_cgal_program( "test_Exact_spherical_kernel.cpp" )
|
||||
create_single_source_cgal_program( "test_Lazy_Spherical_kernel.cpp" )
|
||||
create_single_source_cgal_program( "test_Lazy_spherical_kernel_basics.cpp" )
|
||||
create_single_source_cgal_program( "test_Spherical_kernel_with_core.cpp" )
|
||||
|
||||
else()
|
||||
|
||||
message(STATUS "NOTICE: This program requires the CGAL library, and will not be compiled.")
|
||||
|
||||
endif()
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{Handles and Circulators\label{Pkg:HandlesAndCirculators}}
|
||||
\ccPkgHowToCiteCgal{cgal:dksy-hc-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:dksy-hc-12}
|
||||
|
||||
\ccPkgSummary{This package descibes handles and circulators. They are related to
|
||||
iterators. Handles allow to dereference but neither to increment nor to decrement.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{Combinatorial Maps\label{Pkg:CombinatorialMaps}}
|
||||
\ccPkgHowToCiteCgal{cgal:d-cm-11b} \ccPkgSummary{This package
|
||||
\ccPkgHowToCiteCgal{cgal:d-cm-12} \ccPkgSummary{This package
|
||||
implements Combinatorial Maps in \emph{d}-dimension. A combinatorial
|
||||
map is a data structure allowing to represent an orientable
|
||||
subdivided object by describing all the cells of the subdivision
|
||||
|
|
|
|||
|
|
@ -31,9 +31,10 @@ namespace CGAL {
|
|||
* All the cell iterators. Not commented in doxygen to avoid too much
|
||||
* classes in the documentation.
|
||||
* There are 3 classes:
|
||||
* - CMap_cell_iterator<Map,Ite,i,dim>
|
||||
* - CMap_one_dart_per_incident_cell_iterator<Map,Ite,i,dim>
|
||||
* - CMap_one_dart_per_cell_iterator<Map,Ite,i,dim>
|
||||
* - CMap_cell_iterator<Map,Ite,i,dim>: "tools" class used for the
|
||||
* two following iterators.
|
||||
* * - CMap_one_dart_per_incident_cell_iterator<Map,Ite,i,dim>
|
||||
* * - CMap_one_dart_per_cell_iterator<Map,Ite,i,dim>
|
||||
*/
|
||||
|
||||
//****************************************************************************
|
||||
|
|
@ -88,7 +89,8 @@ namespace CGAL {
|
|||
Ite(amap, adart, amap.get_new_mark()),
|
||||
mcell_mark_number(amap.get_new_mark())
|
||||
{
|
||||
CGAL_assertion( Ite::is_basic_iterator() );
|
||||
CGAL_static_assertion( (boost::is_same<typename Ite::Basic_iterator,
|
||||
Tag_true>::value) );
|
||||
CGAL_assertion(amap.is_whole_map_unmarked(mcell_mark_number));
|
||||
|
||||
mark_cell<Map,i,dim>(amap, adart, mcell_mark_number);
|
||||
|
|
@ -196,7 +198,8 @@ namespace CGAL {
|
|||
Ite(amap, adart),
|
||||
mmark_number(amap.get_new_mark())
|
||||
{
|
||||
CGAL_assertion( Ite::is_basic_iterator() );
|
||||
CGAL_static_assertion( (boost::is_same<typename Ite::Basic_iterator,
|
||||
Tag_true>::value) );
|
||||
CGAL_assertion(amap.is_whole_map_unmarked(mmark_number));
|
||||
mark_cell<Map,i,dim>(amap, adart, mmark_number);
|
||||
}
|
||||
|
|
@ -298,7 +301,8 @@ namespace CGAL {
|
|||
Base(amap),
|
||||
mmark_number(amap.get_new_mark())
|
||||
{
|
||||
CGAL_assertion( Base::is_basic_iterator() );
|
||||
CGAL_static_assertion( (boost::is_same<typename Base::Basic_iterator,
|
||||
Tag_true>::value) );
|
||||
CGAL_assertion(amap.is_whole_map_unmarked(mmark_number));
|
||||
mark_cell<Map,i,dim>(amap, (*this), mmark_number);
|
||||
}
|
||||
|
|
@ -379,6 +383,9 @@ namespace CGAL {
|
|||
typedef typename Base::Dart_handle Dart_handle;
|
||||
typedef typename Base::Map Map;
|
||||
|
||||
typedef Tag_false Use_mark;
|
||||
typedef Tag_false Basic_iterator;
|
||||
|
||||
/// Main constructor.
|
||||
CMap_one_dart_per_incident_cell_iterator(Map& amap, Dart_handle adart):
|
||||
Base(amap, adart)
|
||||
|
|
@ -403,6 +410,9 @@ namespace CGAL {
|
|||
typedef typename Base::Dart_handle Dart_handle;
|
||||
typedef typename Base::Map Map;
|
||||
|
||||
typedef Tag_false Use_mark;
|
||||
typedef Tag_false Basic_iterator;
|
||||
|
||||
/// Main constructor.
|
||||
CMap_one_dart_per_cell_iterator(Map& amap): Base(amap)
|
||||
{}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@ bool belong_to_same_orbit(const Map & amap,
|
|||
typename Map::Dart_const_handle adart1,
|
||||
typename Map::Dart_const_handle adart2)
|
||||
{
|
||||
CGAL_assertion( (!Iterator::is_basic_iterator()) );
|
||||
CGAL_static_assertion( (boost::is_same<typename Iterator::Basic_iterator,
|
||||
Tag_false>::value) );
|
||||
bool found = false;
|
||||
|
||||
for (Iterator it(amap, adart1); !found && it.cont(); ++it)
|
||||
|
|
@ -59,7 +60,8 @@ bool is_whole_orbit_marked(const Map & amap,
|
|||
typename Map::Dart_const_handle adart,
|
||||
int amark)
|
||||
{
|
||||
CGAL_assertion( !Iterator::is_basic_iterator() );
|
||||
CGAL_static_assertion( (boost::is_same<typename Iterator::Basic_iterator,
|
||||
Tag_false>::value) );
|
||||
bool res = true;
|
||||
|
||||
for ( Iterator it(amap, adart); res && it.cont(); ++it )
|
||||
|
|
@ -99,7 +101,8 @@ typename Map::size_type mark_orbit(const Map & amap,
|
|||
typename Map::Dart_const_handle adart,
|
||||
unsigned int amark)
|
||||
{
|
||||
CGAL_assertion( Iterator::is_basic_iterator() );
|
||||
CGAL_static_assertion( (boost::is_same<typename Iterator::Basic_iterator,
|
||||
Tag_true>::value) );
|
||||
CGAL_assertion( (is_whole_orbit_unmarked<Map,
|
||||
CMap_non_basic_iterator<Map,Iterator> >
|
||||
(amap, adart, amark)) );
|
||||
|
|
@ -143,7 +146,9 @@ typename Map::size_type unmark_orbit(const Map & amap,
|
|||
typename Map::Dart_const_handle adart1,
|
||||
typename Map::Dart_const_handle adart2)
|
||||
{
|
||||
return belong_to_same_orbit<Map,CMap_dart_const_iterator_of_cell<Map,i,d> >
|
||||
return belong_to_same_orbit<Map,
|
||||
typename Map::template
|
||||
Dart_of_cell_range<i,d>::const_iterator>
|
||||
(amap, adart1, adart2);
|
||||
}
|
||||
|
||||
|
|
@ -167,7 +172,9 @@ bool is_whole_cell_marked(const Map & amap,
|
|||
typename Map::Dart_const_handle adart,
|
||||
unsigned int amark)
|
||||
{
|
||||
return is_whole_orbit_marked<Map,CMap_dart_const_iterator_of_cell<Map,i,d> >
|
||||
return is_whole_orbit_marked<Map,
|
||||
typename Map::template
|
||||
Dart_of_cell_range<i,d>::const_iterator>
|
||||
(amap, adart, amark);
|
||||
}
|
||||
|
||||
|
|
@ -190,7 +197,9 @@ bool is_whole_cell_unmarked(const Map & amap,
|
|||
typename Map::Dart_const_handle adart,
|
||||
unsigned int amark)
|
||||
{
|
||||
return is_whole_orbit_unmarked<Map,CMap_dart_const_iterator_of_cell<Map,i,d> >
|
||||
return is_whole_orbit_unmarked<Map,
|
||||
typename Map::template
|
||||
Dart_of_cell_range<i,d>::iterator>
|
||||
(amap, adart, amark);
|
||||
}
|
||||
|
||||
|
|
@ -213,7 +222,9 @@ template < class Map, unsigned int i, unsigned int d >
|
|||
typename Map::size_type mark_cell(const Map & amap,
|
||||
typename Map::Dart_const_handle adart,
|
||||
int amark)
|
||||
{ return mark_orbit<Map,CMap_dart_const_iterator_basic_of_cell<Map,i,d> >
|
||||
{ return mark_orbit<Map,
|
||||
typename Map::template
|
||||
Dart_of_cell_basic_range<i,d>::const_iterator>
|
||||
(amap, adart, amark); }
|
||||
|
||||
template < class Map, unsigned int i>
|
||||
|
|
@ -233,7 +244,9 @@ template < class Map, unsigned int i, unsigned int d >
|
|||
typename Map::size_type unmark_cell(const Map & amap,
|
||||
typename Map::Dart_handle adart,
|
||||
int amark)
|
||||
{ return unmark_orbit<Map,CMap_dart_const_iterator_basic_of_cell<Map,i,d> >
|
||||
{ return unmark_orbit<Map,
|
||||
typename Map::template
|
||||
Dart_of_cell_basic_range<i,d>::const_iterator>
|
||||
(amap, adart, amark);}
|
||||
|
||||
template < class Map, unsigned int i >
|
||||
|
|
@ -258,7 +271,8 @@ typename Map::size_type degree( const Map & amap,
|
|||
int mark = amap.get_new_mark();
|
||||
int treated = amap.get_new_mark();
|
||||
|
||||
CMap_dart_const_iterator_basic_of_cell<Map,i> it(amap, adart, mark);
|
||||
typename Map::template
|
||||
Dart_of_cell_basic_range<i>::const_iterator it(amap, adart, mark);
|
||||
for ( ;it.cont(); ++it )
|
||||
{
|
||||
if (!amap.is_marked(*it, treated))
|
||||
|
|
@ -304,7 +318,8 @@ typename Map::size_type codegree(const Map & amap,
|
|||
int mark = amap.get_new_mark();
|
||||
int treated = amap.get_new_mark();
|
||||
|
||||
CMap_dart_const_iterator_basic_of_cell<Map,i> it(amap, adart, mark);
|
||||
typename Map::template
|
||||
Dart_of_cell_basic_range<i>::const_iterator it(amap, adart, mark);
|
||||
for ( ; it.cont(); ++it)
|
||||
{
|
||||
if (!amap.is_marked(*it, treated))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,550 @@
|
|||
// Copyright (c) 2010-2011 CNRS and LIRIS' Establishments (France).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License as
|
||||
// published by the Free Software Foundation; version 2.1 of the License.
|
||||
// See the file LICENSE.LGPL distributed with CGAL.
|
||||
//
|
||||
// Licensees holding a valid commercial license may use this file in
|
||||
// accordance with the commercial license agreement provided with the software.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Guillaume Damiand <guillaume.damiand@liris.cnrs.fr>
|
||||
//
|
||||
#ifndef CGAL_COMBINATORIAL_MAP_ITERATORS_BASE_HH
|
||||
#define CGAL_COMBINATORIAL_MAP_ITERATORS_BASE_HH 1
|
||||
|
||||
#include <queue>
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
/** @file Combinatorial_map_iterators_base.h
|
||||
* Basic classes that serve as tools for definition of iterators.
|
||||
There are 3 classes:
|
||||
* - CMap_dart_iterator<Map,Const> is the basic generic class defining
|
||||
* what is an interator on darts.
|
||||
* - CMap_extend_iterator<Map,Ite,Bi> to extend the given iterator by adding
|
||||
* the involution Bi.
|
||||
* - CMap_non_basic_iterator<Map_,Ite> to transform the basic iterator Ite
|
||||
* into the corresponding non basic iterator.
|
||||
*/
|
||||
//****************************************************************************
|
||||
/// OperationState: type to keep the last operation used by the previous ++.
|
||||
typedef char OperationState;
|
||||
|
||||
/// Enum of all the possible operations used by the ++ operator.
|
||||
enum
|
||||
{
|
||||
OP_NONE = -1, ///< Beginning of the iterator (there is not yet operator++).
|
||||
OP_BETAI, ///< Previous op was the first beta.
|
||||
OP_BETAI_INV, ///< Previous op was the inverse of the first beta.
|
||||
OP_BETAJ, ///< Previous op was the second beta.
|
||||
OP_BETAK, ///< Previous op was the third beta.
|
||||
OP_BETA0I, ///< Previous op was beta0 o the first beta.
|
||||
OP_BETAI1, ///< Previous op was the first beta o beta1.
|
||||
OP_BETAIJ, ///< Previous op was the composition of two beta.
|
||||
OP_BETAJI, ///< Previous op was the composition of two beta.
|
||||
OP_BETA21, ///< Previous op was beta21.
|
||||
OP_JUMP, ///< Previous op was a jump .
|
||||
OP_POP, ///< Previous op pop a dart from a stack or a queue.
|
||||
OP_END ///< Previous op go out of the iterator.
|
||||
};
|
||||
//****************************************************************************
|
||||
/** Generic class of iterator onto darts.
|
||||
* Class CMap_dart_iterator is a generic iterator. All the combinatorial
|
||||
* map iterator classes inherit from this class (or one of its subclass).
|
||||
*/
|
||||
template < typename Map_,bool Const=false >
|
||||
class CMap_dart_iterator:
|
||||
public internal::CC_iterator<typename Map_::Dart_container,Const>
|
||||
{
|
||||
public:
|
||||
typedef CMap_dart_iterator<Map_,Const> Self;
|
||||
typedef internal::CC_iterator<typename Map_::Dart_container,Const> Base;
|
||||
|
||||
typedef Base Dart_handle;
|
||||
typedef typename boost::mpl::if_c< Const, const Map_,
|
||||
Map_>::type Map;
|
||||
|
||||
typedef std::input_iterator_tag iterator_category;
|
||||
typedef typename Base::value_type value_type;
|
||||
typedef typename Base::difference_type difference_type;
|
||||
typedef typename Base::pointer pointer;
|
||||
typedef typename Base::reference reference;
|
||||
|
||||
/// true iff this iterator is basic
|
||||
typedef Tag_true Basic_iterator;
|
||||
|
||||
public:
|
||||
/// Main constructor.
|
||||
CMap_dart_iterator(Map& amap, Dart_handle adart):
|
||||
Base(adart),
|
||||
mmap(&amap),
|
||||
mfirst_dart(adart),
|
||||
mprev_op(OP_NONE)
|
||||
{}
|
||||
|
||||
/// == operator.
|
||||
bool operator==(const Self& aiterator) const
|
||||
{
|
||||
return ( ((*this==NULL) && (aiterator==NULL)) ||
|
||||
(mfirst_dart == aiterator.mfirst_dart &&
|
||||
((const Base&)*this==(const Base&)aiterator)) );
|
||||
}
|
||||
|
||||
/// != operator.
|
||||
bool operator!=(const Self& aiterator) const
|
||||
{ return !operator==(aiterator); }
|
||||
|
||||
/// Accessor to the initial dart of the iterator.
|
||||
Dart_handle get_first_dart() const { return mfirst_dart; }
|
||||
|
||||
/// Accessor to the combinatorial map.
|
||||
Map* get_combinatorial_map() const { return mmap; }
|
||||
|
||||
/// Rewind of the iterator to its beginning.
|
||||
void rewind()
|
||||
{ set_current_dart(mfirst_dart); mprev_op = OP_NONE; }
|
||||
|
||||
/// Test if the iterator is at its end.
|
||||
bool cont() const { return *this != NULL; }
|
||||
|
||||
/// Get the previous operation used for the last ++.
|
||||
OperationState prev_operation() const { return mprev_op; }
|
||||
|
||||
protected:
|
||||
/// Set the current dart to a given dart
|
||||
void set_current_dart(Dart_handle adart)
|
||||
{ Base::operator=(adart); }
|
||||
|
||||
private:
|
||||
/// operator -- in private to invalidate the base operator.
|
||||
Self& operator--()
|
||||
{ return *this; }
|
||||
/// operator -- in private to invalidate the base operator.
|
||||
void operator--(int)
|
||||
{}
|
||||
|
||||
protected:
|
||||
/// test if adart->beta(ai) exists and is not marked for amark
|
||||
bool is_unmarked(Dart_handle adart, unsigned int ai, unsigned amark) const
|
||||
{ return !adart->is_free(ai) &&
|
||||
!mmap->is_marked(adart->beta(ai), amark); }
|
||||
|
||||
/// test if adart->beta(ai)->beta(aj) exists
|
||||
bool exist_betaij(Dart_handle adart, unsigned int ai, unsigned int aj) const
|
||||
{ return !adart->is_free(ai) && !adart->beta(ai)->is_free(aj); }
|
||||
|
||||
/// test if adart->beta(ai)->beta(aj) exists and is not marked for amark
|
||||
bool is_unmarked2(Dart_handle adart, unsigned int ai, unsigned int aj,
|
||||
unsigned amark) const
|
||||
{ return exist_betaij(adart,ai,aj) &&
|
||||
!mmap->is_marked(adart->beta(ai)->beta(aj), amark); }
|
||||
|
||||
protected:
|
||||
/// The map containing the darts to iterate on.
|
||||
Map* mmap;
|
||||
|
||||
/// The initial dart of the iterator.
|
||||
Dart_handle mfirst_dart;
|
||||
|
||||
/// The last operation used for the ++ operator.
|
||||
OperationState mprev_op;
|
||||
};
|
||||
//****************************************************************************
|
||||
/* Class CMap_extend_iterator<Map,Ite,Bi> which extend a given iterator by
|
||||
* adding Bi and by using a stack and a mark.
|
||||
* General case when Ite does not have already a stack.
|
||||
*/
|
||||
template <typename Map_,typename Ite,int Bi,
|
||||
typename Ite_has_stack=typename Ite::Use_mark>
|
||||
class CMap_extend_iterator: public Ite
|
||||
{
|
||||
public:
|
||||
typedef CMap_extend_iterator<Map_,Ite,Bi, Ite_has_stack> Self;
|
||||
typedef Ite Base;
|
||||
|
||||
typedef typename Base::Dart_handle Dart_handle;
|
||||
typedef typename Base::Map Map;
|
||||
|
||||
typedef Tag_true Use_mark;
|
||||
|
||||
CGAL_static_assertion( (Bi<=Map::dimension &&
|
||||
boost::is_same<Ite_has_stack,Tag_false>::value) );
|
||||
|
||||
public:
|
||||
/// Main constructor.
|
||||
CMap_extend_iterator(Map& amap, Dart_handle adart, int amark):
|
||||
Base(amap, adart),
|
||||
mmark_number(amark),
|
||||
minitial_dart(adart)
|
||||
{
|
||||
if ( adart!=NULL )
|
||||
{
|
||||
this->mmap->mark(adart, mmark_number);
|
||||
if (!(*this)->is_free(Bi))
|
||||
mto_treat.push((*this)->beta(Bi));
|
||||
}
|
||||
}
|
||||
|
||||
/// Rewind of the iterator to its beginning.
|
||||
void rewind()
|
||||
{
|
||||
CGAL_assertion(mmark_number != -1);
|
||||
Base::operator= ( Base(*this->mmap,minitial_dart) );
|
||||
mto_treat = std::queue<Dart_handle>();
|
||||
this->mmap->mark((*this), mmark_number);
|
||||
if (!(*this)->is_free(Bi))
|
||||
mto_treat.push((*this)->beta(Bi));
|
||||
}
|
||||
|
||||
/// Prefix ++ operator.
|
||||
Self& operator++()
|
||||
{
|
||||
CGAL_assertion(mmark_number != -1);
|
||||
CGAL_assertion(this->cont());
|
||||
|
||||
Base::operator++();
|
||||
|
||||
if ( !this->cont() )
|
||||
{
|
||||
if ( !mto_treat.empty() )
|
||||
{
|
||||
Dart_handle res=NULL;
|
||||
do
|
||||
{
|
||||
res = mto_treat.front();
|
||||
mto_treat.pop();
|
||||
}
|
||||
while (!mto_treat.empty() &&
|
||||
this->mmap->is_marked(res, mmark_number));
|
||||
|
||||
if (!this->mmap->is_marked(res, mmark_number))
|
||||
{
|
||||
Base::operator= ( Base(*this->mmap,res) );
|
||||
this->mprev_op = OP_POP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( this->cont() )
|
||||
{
|
||||
CGAL_assertion( !this->mmap->is_marked((*this),
|
||||
mmark_number) );
|
||||
this->mmap->mark((*this), mmark_number);
|
||||
|
||||
if (!(*this)->is_free(Bi) &&
|
||||
!this->mmap->is_marked((*this)->beta(Bi),
|
||||
mmark_number))
|
||||
mto_treat.push((*this)->beta(Bi));
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// Postfix ++ operator.
|
||||
Self operator++(int)
|
||||
{ Self res=*this; operator ++(); return res; }
|
||||
|
||||
protected:
|
||||
/// Queue of darts to process.
|
||||
std::queue<Dart_handle> mto_treat;
|
||||
|
||||
/// Index of the used mark.
|
||||
int mmark_number;
|
||||
|
||||
/// Initial dart
|
||||
Dart_handle minitial_dart;
|
||||
};
|
||||
//****************************************************************************
|
||||
/* Class CMap_extend_iterator<Map,Ite,Bi> which extend a given iterator by
|
||||
* adding Bi and by using a stack and a mark.
|
||||
* Specialization when Ite has already a stack.
|
||||
*/
|
||||
template <typename Map_,typename Ite,int Bi>
|
||||
class CMap_extend_iterator<Map_,Ite,Bi,Tag_true>: public Ite
|
||||
{
|
||||
public:
|
||||
typedef CMap_extend_iterator<Map_,Ite,Bi,Tag_true> Self;
|
||||
typedef Ite Base;
|
||||
|
||||
typedef typename Base::Dart_handle Dart_handle;
|
||||
typedef typename Base::Map Map;
|
||||
|
||||
typedef Tag_true Use_mark;
|
||||
|
||||
/// Main constructor.
|
||||
CMap_extend_iterator(Map& amap, Dart_handle adart, int amark):
|
||||
Base(amap, adart, amark)
|
||||
{
|
||||
if (adart!=NULL)
|
||||
{
|
||||
if (!adart->is_free(Bi) &&
|
||||
!this->mmap->is_marked(adart->beta(Bi), this->mmark_number))
|
||||
this->mto_treat.push(adart->beta(Bi));
|
||||
}
|
||||
}
|
||||
|
||||
/// Rewind of the iterator to its beginning.
|
||||
void rewind()
|
||||
{
|
||||
CGAL_assertion(this->mmark_number != -1);
|
||||
Base::rewind();
|
||||
if (!(*this)->is_free(Bi) &&
|
||||
!this->mmap->is_marked((*this)->beta(Bi),
|
||||
this->mmark_number))
|
||||
this->mto_treat.push((*this)->beta(Bi));
|
||||
}
|
||||
|
||||
/// Prefix ++ operator.
|
||||
Self& operator++()
|
||||
{
|
||||
Base::operator++();
|
||||
|
||||
if ( this->cont() )
|
||||
{
|
||||
if (!(*this)->is_free(Bi) &&
|
||||
!this->mmap->is_marked((*this)->beta(Bi),
|
||||
this->mmark_number))
|
||||
this->mto_treat.push((*this)->beta(Bi));
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// Postfix ++ operator.
|
||||
Self operator++(int)
|
||||
{ Self res=*this; operator ++(); return res; }
|
||||
};
|
||||
//****************************************************************************
|
||||
//* Class CMap_non_basic_iterator allows to transform a basic_iterator onto
|
||||
//* a non basic one, depending if the basic iterator uses mark or not.
|
||||
template <typename Map_,typename Basic_iterator,
|
||||
typename Use_mark=typename Basic_iterator::Use_mark>
|
||||
class CMap_non_basic_iterator;
|
||||
//****************************************************************************
|
||||
template <typename Map_,typename Base_>
|
||||
class CMap_non_basic_iterator<Map_,Base_,Tag_true>:
|
||||
public Base_
|
||||
{
|
||||
public:
|
||||
typedef CMap_non_basic_iterator<Map_,Base_,Tag_true> Self;
|
||||
typedef Base_ Base;
|
||||
|
||||
typedef typename Base::Map Map;
|
||||
typedef typename Base::Dart_handle Dart_handle;
|
||||
|
||||
/// True iff this iterator is basic
|
||||
typedef Tag_false Basic_iterator;
|
||||
|
||||
CGAL_static_assertion( (boost::is_same<typename Base::Basic_iterator,
|
||||
Tag_true>::value) );
|
||||
|
||||
/// Main constructor.
|
||||
CMap_non_basic_iterator(Map& amap, Dart_handle adart1):
|
||||
Base(amap, adart1, amap.get_new_mark())
|
||||
{}
|
||||
|
||||
/// Destructor.
|
||||
~CMap_non_basic_iterator()
|
||||
{
|
||||
if (this->mmark_number != -1)
|
||||
{
|
||||
unmark_treated_darts();
|
||||
CGAL_assertion( this->mmap->is_whole_map_unmarked
|
||||
(this->mmark_number) );
|
||||
this->mmap->free_mark(this->mmark_number);
|
||||
}
|
||||
}
|
||||
|
||||
/// Copy constructor.
|
||||
CMap_non_basic_iterator(const Self& aiterator):
|
||||
Base(aiterator)
|
||||
{ this->mmark_number = -1; }
|
||||
|
||||
/// Assignment operator.
|
||||
Self& operator=(const Self& aiterator)
|
||||
{
|
||||
if (this != &aiterator)
|
||||
{
|
||||
Base::operator=(aiterator);
|
||||
this->mmark_number = -1;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// Rewind of the iterator to its beginning.
|
||||
void rewind()
|
||||
{
|
||||
CGAL_assertion(this->mmark_number != -1);
|
||||
unmark_treated_darts();
|
||||
Base::rewind();
|
||||
}
|
||||
|
||||
using Base::operator++;
|
||||
|
||||
/// Postfix ++ operator.
|
||||
void operator++(int)
|
||||
{ operator ++(); }
|
||||
|
||||
protected:
|
||||
/// Unmark all the marked darts during the iterator.
|
||||
void unmark_treated_darts()
|
||||
{
|
||||
CGAL_assertion(this->mmark_number != -1);
|
||||
if (this->mmap->is_whole_map_unmarked(this->mmark_number)) return;
|
||||
|
||||
this->mmap->negate_mark(this->mmark_number);
|
||||
|
||||
if (this->mmap->is_whole_map_unmarked(this->mmark_number)) return;
|
||||
|
||||
Base::rewind();
|
||||
while (this->mmap->number_of_unmarked_darts(this->mmark_number) > 0)
|
||||
this->operator++();
|
||||
this->mmap->negate_mark(this->mmark_number);
|
||||
CGAL_assertion(this->mmap->is_whole_map_unmarked(this->mmark_number));
|
||||
}
|
||||
};
|
||||
//****************************************************************************
|
||||
template <typename Map_,typename Base_>
|
||||
class CMap_non_basic_iterator<Map_,Base_,Tag_false>:
|
||||
public Base_
|
||||
{
|
||||
public:
|
||||
typedef CMap_non_basic_iterator<Map_,Base_,Tag_false> Self;
|
||||
typedef Base_ Base;
|
||||
|
||||
typedef typename Base::Map Map;
|
||||
typedef typename Base::Dart_handle Dart_handle;
|
||||
|
||||
/// True iff this iterator is basic
|
||||
typedef Tag_false Basic_iterator;
|
||||
|
||||
CGAL_static_assertion( (boost::is_same<typename Base::Basic_iterator,
|
||||
Tag_true>::value) );
|
||||
|
||||
/// Main constructor.
|
||||
CMap_non_basic_iterator(Map& amap, Dart_handle adart):
|
||||
Base(amap, adart,-1)
|
||||
{}
|
||||
};
|
||||
//****************************************************************************
|
||||
template <typename Map_, typename It, typename Const_it,
|
||||
typename Basic_iterator=typename It::Basic_iterator>
|
||||
struct CMap_range
|
||||
{
|
||||
typedef It iterator;
|
||||
typedef Const_it const_iterator;
|
||||
CMap_range(Map_ &amap, typename Map_::Dart_handle adart) :
|
||||
mmap(amap), mdart(adart), msize(0)
|
||||
{}
|
||||
iterator begin() { return iterator(mmap,mdart); }
|
||||
iterator end() { return iterator(mmap,NULL); }
|
||||
const_iterator begin() const { return const_iterator(mmap,mdart); }
|
||||
const_iterator end() const { return const_iterator(mmap,NULL); }
|
||||
typename Map_::size_type size()
|
||||
{
|
||||
if (msize==0)
|
||||
for (const_iterator it=begin(); it!=end(); ++it)
|
||||
++msize;
|
||||
return msize;
|
||||
}
|
||||
bool empty() const
|
||||
{ return mmap.is_empty(); }
|
||||
private:
|
||||
Map_ & mmap;
|
||||
typename Map_::Dart_handle mdart;
|
||||
typename Map_::size_type msize;
|
||||
};
|
||||
//****************************************************************************
|
||||
template <typename Map_, typename It, typename Const_it>
|
||||
struct CMap_range<Map_,It,Const_it,Tag_true>
|
||||
{
|
||||
typedef CMap_range<Map_,It,Const_it,Tag_true> Base_cmap_range;
|
||||
typedef It iterator;
|
||||
typedef Const_it const_iterator;
|
||||
CMap_range(Map_ &amap, typename Map_::Dart_handle adart, int amark=-1):
|
||||
mmap(amap), mdart(adart), msize(0), mmark(amark)
|
||||
{}
|
||||
iterator begin() { return iterator(mmap,mdart,mmark); }
|
||||
iterator end() { return iterator(mmap,NULL,mmark); }
|
||||
const_iterator begin() const { return const_iterator(mmap,mdart,mmark); }
|
||||
const_iterator end() const { return const_iterator(mmap,NULL,mmark); }
|
||||
typename Map_::size_type size()
|
||||
{
|
||||
if (msize==0)
|
||||
for ( CMap_non_basic_iterator<Map_,const_iterator> it(mmap,mdart);
|
||||
it.cont(); ++it )
|
||||
++msize;
|
||||
return msize;
|
||||
}
|
||||
bool empty() const
|
||||
{ return mmap.is_empty(); }
|
||||
private:
|
||||
Map_ & mmap;
|
||||
typename Map_::Dart_handle mdart;
|
||||
typename Map_::size_type msize;
|
||||
int mmark;
|
||||
};
|
||||
//****************************************************************************
|
||||
template <typename Map_, typename Const_it,
|
||||
typename Basic_iterator=typename Const_it::Basic_iterator>
|
||||
struct CMap_const_range
|
||||
{
|
||||
typedef Const_it const_iterator;
|
||||
CMap_const_range(const Map_ &amap, typename Map_::Dart_const_handle adart):
|
||||
mmap(amap), mdart(adart), msize(0)
|
||||
{}
|
||||
const_iterator begin() const { return const_iterator(mmap,mdart); }
|
||||
const_iterator end() const { return const_iterator(mmap,NULL); }
|
||||
typename Map_::size_type size()
|
||||
{
|
||||
if (msize==0)
|
||||
for (const_iterator it=begin(); it!=end(); ++it)
|
||||
++msize;
|
||||
return msize;
|
||||
}
|
||||
bool empty() const
|
||||
{ return mmap.is_empty(); }
|
||||
private:
|
||||
const Map_ & mmap;
|
||||
typename Map_::Dart_const_handle mdart;
|
||||
typename Map_::size_type msize;
|
||||
};
|
||||
//****************************************************************************
|
||||
template <typename Map_, typename Const_it>
|
||||
struct CMap_const_range<Map_,Const_it,Tag_true>
|
||||
{
|
||||
typedef Const_it const_iterator;
|
||||
CMap_const_range(const Map_ &amap, typename Map_::Dart_const_handle adart,
|
||||
int amark=-1):
|
||||
mmap(amap), mdart(adart), msize(0), mmark(amark)
|
||||
{}
|
||||
const_iterator begin() const { return const_iterator(mmap,mdart,mmark); }
|
||||
const_iterator end() const { return const_iterator(mmap,NULL,mmark); }
|
||||
typename Map_::size_type size()
|
||||
{
|
||||
if (msize==0)
|
||||
for ( CMap_non_basic_iterator<Map_,const_iterator> it(mmap,mdart);
|
||||
it.cont(); ++it )
|
||||
++msize;
|
||||
return msize;
|
||||
}
|
||||
bool empty() const
|
||||
{ return mmap.is_empty(); }
|
||||
private:
|
||||
const Map_ & mmap;
|
||||
typename Map_::Dart_const_handle mdart;
|
||||
typename Map_::size_type msize;
|
||||
int mmark;
|
||||
};
|
||||
//****************************************************************************
|
||||
} // namespace CGAL
|
||||
//******************************************************************************
|
||||
#endif // CGAL_COMBINATORIAL_MAP_ITERATORS_BASE_HH
|
||||
//******************************************************************************
|
||||
|
|
@ -156,7 +156,7 @@ namespace CGAL {
|
|||
bool is_removable(const Map& amap, typename Map::Dart_const_handle adart)
|
||||
{
|
||||
CGAL_assertion(adart != NULL);
|
||||
CGAL_assertion(0<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(0<=i && i<=Map::dimension);
|
||||
|
||||
if ( i==Map::dimension ) return true;
|
||||
if ( i==Map::dimension-1 ) return true;
|
||||
|
|
@ -183,7 +183,7 @@ namespace CGAL {
|
|||
{
|
||||
static size_t run(Map& amap, typename Map::Dart_handle adart)
|
||||
{
|
||||
CGAL_assertion ( 1<=i && i<Map::dimension );
|
||||
CGAL_static_assertion ( 1<=i && i<Map::dimension );
|
||||
CGAL_assertion( (is_removable<Map,i>(amap, adart)) );
|
||||
|
||||
size_t res = 0;
|
||||
|
|
@ -504,7 +504,7 @@ namespace CGAL {
|
|||
InputIterator afirst,
|
||||
InputIterator alast)
|
||||
{
|
||||
CGAL_assertion( Map::dimension>= 3 );
|
||||
CGAL_static_assertion( Map::dimension>= 3 );
|
||||
|
||||
// The path must have at least one dart.
|
||||
if (afirst==alast) return false;
|
||||
|
|
|
|||
|
|
@ -25,15 +25,16 @@
|
|||
namespace CGAL {
|
||||
|
||||
/** @file Dart_const_iterators.h
|
||||
* Definition of dart const iterators. There are 8 iterators:
|
||||
* Definition of dart const iterators. There are 9 iterators:
|
||||
* - CMap_dart_const_iterator_basic_of_orbit<Map,Beta...>
|
||||
* - CMap_dart_const_iterator_basic_of_cell<Map,i,d>
|
||||
* - CMap_dart_const_iterator_basic_of_all<Map>
|
||||
* - CMap_dart_const_iterator_basic_of_involution<Map,i,d>
|
||||
* - CMap_dart_const_iterator_of_involution_inv<Map,i,d>
|
||||
* - CMap_dart_const_iterator_of_orbit<Map,Beta...>
|
||||
* - CMap_dart_const_iterator_of_cell<Map,i,d>
|
||||
* - CMap_dart_const_iterator_basic_of_involution<Map,i,d>
|
||||
* - CMap_dart_const_iterator_of_involution<Map,i,d>
|
||||
* - CMap_dart_const_iterator_basic_of_involution_inv<Map,i,d>
|
||||
* - CMap_dart_const_iterator_of_involution_inv<Map,i,d>
|
||||
*/
|
||||
//****************************************************************************
|
||||
#ifndef CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES
|
||||
|
|
@ -58,6 +59,13 @@ namespace CGAL {
|
|||
int amark):
|
||||
Base(amap,adart,amark)
|
||||
{}
|
||||
/// Constructor from non const version.
|
||||
CMap_dart_const_iterator_basic_of_orbit
|
||||
(const CMap_dart_iterator_basic_of_orbit<Map_,Beta...>& it):
|
||||
Base(*const_cast<const Map_*>(it.get_combinatorial_map()),
|
||||
it.get_first_dart(),
|
||||
it.mmark_number)
|
||||
{}
|
||||
};
|
||||
//****************************************************************************
|
||||
template<typename Map_,unsigned int...Beta>
|
||||
|
|
@ -109,6 +117,14 @@ namespace CGAL {
|
|||
int amark):
|
||||
Base(amap,adart,amark)
|
||||
{}
|
||||
/// Constructor from non const version.
|
||||
CMap_dart_const_iterator_basic_of_orbit
|
||||
(const CMap_dart_iterator_basic_of_orbit<Map_,B1,B2,B3,B4,B5,B6,
|
||||
B7,B8,B9>& it):
|
||||
Base(*const_cast<const Map_*>(it.get_combinatorial_map()),
|
||||
it.get_first_dart(),
|
||||
it.mmark_number)
|
||||
{}
|
||||
};
|
||||
//****************************************************************************
|
||||
template<typename Map_,int B1=-1,int B2=-1,int B3=-1,int B4=-1,int B5=-1,
|
||||
|
|
@ -139,6 +155,33 @@ namespace CGAL {
|
|||
};
|
||||
#endif // CGAL_CFG_NO_CPP0X_VARIADIC_TEMPLATES
|
||||
//****************************************************************************
|
||||
template<typename Map_>
|
||||
class CMap_dart_const_iterator_basic_of_all:
|
||||
public CMap_dart_iterator_basic_of_all<Map_,true>
|
||||
{
|
||||
public:
|
||||
typedef CMap_dart_iterator_basic_of_all<Map_,true> Base;
|
||||
typedef typename Map_::Dart_const_handle Dart_const_handle;
|
||||
|
||||
/* Main constructor. */
|
||||
CMap_dart_const_iterator_basic_of_all(const Map_& amap,
|
||||
Dart_const_handle adart):
|
||||
Base(amap,adart)
|
||||
{}
|
||||
/* Main constructor. */
|
||||
CMap_dart_const_iterator_basic_of_all(const Map_& amap,
|
||||
Dart_const_handle adart,
|
||||
int /*amark*/):
|
||||
Base(amap,adart)
|
||||
{}
|
||||
/// Constructor from non const version.
|
||||
CMap_dart_const_iterator_basic_of_all
|
||||
(const CMap_dart_iterator_basic_of_all<Map_,false>& it):
|
||||
Base(*const_cast<const Map_*>(it.get_combinatorial_map()),
|
||||
it.get_first_dart())
|
||||
{}
|
||||
};
|
||||
//****************************************************************************
|
||||
template<typename Map_,int i,int d=Map_::dimension>
|
||||
class CMap_dart_const_iterator_basic_of_cell:
|
||||
public CMap_dart_iterator_basic_of_cell<Map_,i,d,true>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ namespace CGAL {
|
|||
typename Map::Dart_const_handle adart1,
|
||||
typename Map::Dart_const_handle adart2)
|
||||
{
|
||||
CGAL_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_assertion(adart1!=NULL && adart2!=NULL);
|
||||
|
||||
if ( !adart1->is_free(i) || !adart2->is_free(i) || adart1==adart2 )
|
||||
|
|
@ -144,7 +144,7 @@ namespace CGAL {
|
|||
static void run(Map& amap,typename Map::Dart_handle adart1,
|
||||
typename Map::Dart_handle adart2)
|
||||
{
|
||||
CGAL_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_assertion( (is_sewable_functor<Map,i>::run(amap,adart1,adart2)) );
|
||||
|
||||
CMap_dart_iterator_of_involution<Map,i> I1(amap, adart1);
|
||||
|
|
@ -205,7 +205,7 @@ namespace CGAL {
|
|||
static void run(Map& amap,typename Map::Dart_handle adart1,
|
||||
typename Map::Dart_handle adart2)
|
||||
{
|
||||
CGAL_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_assertion( (is_sewable_functor<Map,i>::run(amap,adart1,adart2)) );
|
||||
|
||||
CMap_dart_iterator_of_involution<Map,i> I1(amap, adart1);
|
||||
|
|
@ -312,7 +312,7 @@ namespace CGAL {
|
|||
static void run(Map& amap,typename Map::Dart_handle adart)
|
||||
{
|
||||
CGAL_assertion( adart!=NULL && !adart->is_free(i) );
|
||||
CGAL_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(2<=i && i<=Map::dimension);
|
||||
|
||||
CMap_dart_iterator_of_involution<Map,i> it(amap, adart);
|
||||
while ( it.cont() )
|
||||
|
|
@ -372,7 +372,7 @@ namespace CGAL {
|
|||
struct unsew_functor{
|
||||
static void run(Map& amap,typename Map::Dart_handle adart)
|
||||
{
|
||||
CGAL_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_assertion( adart!=NULL && !adart->is_free(i) );
|
||||
|
||||
std::stack<Couple_dart_and_dim<typename Map::Dart_handle> > todegroup;
|
||||
|
|
@ -478,7 +478,7 @@ namespace CGAL {
|
|||
typename Map::Dart_handle adart2)
|
||||
{
|
||||
CGAL_assertion(adart1 != NULL && adart2 != NULL && adart1!=adart2);
|
||||
CGAL_assertion( i>=2 && i<=Map::dimension );
|
||||
CGAL_static_assertion( i>=2 && i<=Map::dimension );
|
||||
adart1->basic_link_beta(adart2, i);
|
||||
adart2->basic_link_beta(adart1, i);
|
||||
}
|
||||
|
|
@ -514,7 +514,7 @@ namespace CGAL {
|
|||
static void run(Map&,typename Map::Dart_handle adart)
|
||||
{
|
||||
CGAL_assertion(adart != NULL && !adart->is_free(i));
|
||||
CGAL_assertion(2<=i && i<=Map::dimension);
|
||||
CGAL_static_assertion(2<=i && i<=Map::dimension);
|
||||
adart->beta(i)->unlink_beta(i);
|
||||
adart->unlink_beta(i);
|
||||
}
|
||||
|
|
@ -889,7 +889,7 @@ namespace CGAL {
|
|||
typename CMap::Dart_handle adart2)
|
||||
{
|
||||
CGAL_assertion(adart1 != NULL && adart2 != NULL && adart1!=adart2 );
|
||||
CGAL_assertion( 2<=i && i<=CMap::dimension );
|
||||
CGAL_static_assertion( 2<=i && i<=CMap::dimension );
|
||||
adart1->basic_link_beta(adart2, i);
|
||||
adart2->basic_link_beta(adart1, i);
|
||||
CMap::Helper::template Foreach_enabled_attributes
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{Convex Decomposition of Polyhedra\label{Pkg:ConvexDecomposition3}}
|
||||
\ccPkgHowToCiteCgal{cgal:h-emspe-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:h-emspe-12}
|
||||
\ccPkgSummary{
|
||||
This packages provides a function for decomposing a bounded polyhedron
|
||||
into convex sub-polyhedra. The decomposition yields $O(r^2)$ convex
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{2D Convex Hulls and Extreme Points \label{Pkg:ConvexHull2}}
|
||||
\ccPkgHowToCiteCgal{cgal:hs-chep2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:hs-chep2-12}
|
||||
\ccPkgSummary{This package provides functions
|
||||
for computing convex hulls in two dimensions as well as functions for
|
||||
checking if sets of points are strongly convex are not. There are also
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{3D Convex Hulls\label{Pkg:ConvexHull3}}
|
||||
\ccPkgHowToCiteCgal{cgal:hs-ch3-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:hs-ch3-12}
|
||||
\ccPkgSummary{This package provides functions
|
||||
for computing convex hulls in three dimensions as well as functions
|
||||
for checking if sets of points are strongly convex or not. One can
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2003,2011 INRIA Sophia-Antipolis (France).
|
||||
// Copyright (c) 2011 Max-Planck-Institute Saarbruecken (Germany).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org); you may redistribute it under
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
// $Id$
|
||||
//
|
||||
//
|
||||
// Author(s) : Mariette Yvinec,Sylvain Pion
|
||||
// Author(s) : Andreas Fabri
|
||||
|
||||
// face of a triangulation of any dimension <=3
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{dD Convex Hulls and Delaunay Triangulations\label{Pkg:ConvexHullD}}
|
||||
\ccPkgHowToCiteCgal{cgal:hs-chdt3-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:hs-chdt3-12}
|
||||
\ccPkgSummary{This package provides functions for computing convex hulls and
|
||||
Delaunay triangulations in $d$-dimensional Euclidean space.}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel),
|
||||
GeometryFactory (France).
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{2D Envelopes\label{Pkg:Envelope2}}
|
||||
\ccPkgHowToCiteCgal{cgal:w-e2-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:w-e2-12}
|
||||
\ccPkgSummary{
|
||||
This package consits of functions that computes the lower (or upper)
|
||||
envelope of a set of arbitrary curves in 2D. The output is
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{3D Envelopes\label{Pkg:Envelope3}}
|
||||
\ccPkgHowToCiteCgal{cgal:mwz-e3-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:mwz-e3-12}
|
||||
\ccPkgSummary{
|
||||
This package consits of functions that compute the lower (or upper)
|
||||
envelope of a set of arbitrary surfaces in 3D. The output is
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Tel-Aviv University (Israel).
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
INRIA Sophia-Antipolis (France)
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
\begin{ccPkgDescription}{Geometric Object Generators\label{Pkg:Generators}}
|
||||
\ccPkgHowToCiteCgal{cgal:hhk-gog-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:hhk-gog-12}
|
||||
|
||||
\ccPkgSummary{This package provides a variety of generators for geometric objects.
|
||||
They are useful as synthetic test data sets, e.g.~for testing
|
||||
|
|
@ -8,5 +8,6 @@ algorithms on degenerate object sets and for performance analysis.
|
|||
|
||||
\ccPkgIntroducedInCGAL{1.0}
|
||||
\ccPkgLicense{\ccLicenseLGPL}
|
||||
\ccPkgDemo{Generators}{generator.zip}
|
||||
\ccPkgIllustration{Generator/dice.png}{Generator/dice.png}
|
||||
\end{ccPkgDescription}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{Geomview\label{Pkg:Geomview}}
|
||||
\ccPkgHowToCiteCgal{cgal:fp-gv-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:fp-gv-12}
|
||||
\ccPkgSummary{
|
||||
|
||||
This package implements an interface to Geomview, an interactive 3D viewing program,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 484 B |
|
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 443 B |
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{CGAL and the Qt Graphics View Framework \label{Pkg:GraphicsView}}
|
||||
\ccPkgHowToCiteCgal{cgal:fr-cqgvf-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:fr-cqgvf-12}
|
||||
\ccPkgSummary{This package provides classes for displaying \cgal\ objects
|
||||
and data structures in the \ccAnchor{http://doc.qt.nokia.com/latest/graphicsview.html}{Qt 4 Graphics View Framework}.}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
GeometryFactory (France)
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{Halfedge Data Structures \label{Pkg:HDS}}
|
||||
\ccPkgHowToCiteCgal{cgal:k-hds-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:k-hds-12}
|
||||
\ccPkgSummary{A halfedge data structure is an edge-centered data structure
|
||||
capable of maintaining incidence information of vertices, edges and
|
||||
faces, for example for planar maps, polyhedra, or other orientable,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
Max-Planck-Institute Saarbruecken (Germany).
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Utrecht University (The Netherlands),
|
||||
ETH Zurich (Switzerland),
|
||||
INRIA Sophia-Antipolis (France),
|
||||
Max-Planck-Institute Saarbruecken (Germany),
|
||||
Tel-Aviv University (Israel).
|
||||
|
|
@ -112,6 +112,15 @@ CGAL 3.10 offers the following improvements and new functionality : </p>
|
|||
this small overhead introduced for thread-safety can be deactivated by defining CGAL_HAS_NO_THREADS.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Spatial Searching</h3>
|
||||
<ul>
|
||||
<li>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.
|
||||
</li>
|
||||
<li>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.</li>
|
||||
</ul>
|
||||
|
||||
<h3>STL extension</h3>
|
||||
<ul>
|
||||
<li>CGAL::copy_n is now deprecated for CGAL::cpp0x::copy_n which uses std::copy_n, if available on the platform.</li>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,16 @@
|
|||
# WITH_IPE_7 - indicates if the compatibility with the version 7 of IPE must be used
|
||||
#
|
||||
|
||||
|
||||
macro( remove_leading_zero var )
|
||||
string(SUBSTRING "${${var}}" 0 1 ONECHAR)
|
||||
string(COMPARE EQUAL "${ONECHAR}" "0" ISZERO)
|
||||
if (${ISZERO})
|
||||
string(SUBSTRING "${${var}}" 1 1 ONECHAR)
|
||||
set(${var} ${ONECHAR})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Is it already configured?
|
||||
if (IPE_INCLUDE_DIR AND IPE_LIBRARY_DIR )
|
||||
set(IPE_FOUND TRUE)
|
||||
|
|
@ -29,9 +39,11 @@ else()
|
|||
set(IPE_FOUND TRUE)
|
||||
if (${IPE_VERSION} STREQUAL "AUTODETECT")
|
||||
FILE(READ "${IPE_INCLUDE_DIR}/ipebase.h" IPEBASE_H)
|
||||
STRING(REGEX MATCH "IPELIB_VERSION[ ]*=[ ]*([67])[0-9]+;" found_ipe_version "${IPEBASE_H}")
|
||||
STRING(REGEX MATCH "IPELIB_VERSION[ ]*=[ ]*([67])([0-9][0-9])([0-9][0-9]);" found_ipe_version "${IPEBASE_H}")
|
||||
if (found_ipe_version)
|
||||
set(IPE_VERSION ${CMAKE_MATCH_1})
|
||||
set(IPE_MINOR_VERSION_1 ${CMAKE_MATCH_2})
|
||||
set(IPE_MINOR_VERSION_2 ${CMAKE_MATCH_3})
|
||||
endif()
|
||||
endif()
|
||||
if (${IPE_VERSION} EQUAL "7")
|
||||
|
|
@ -49,10 +61,9 @@ endif()
|
|||
if (IPE_FOUND AND NOT IPELET_INSTALL_DIR)
|
||||
message("-- Using IPE version ${IPE_VERSION} compatibility.")
|
||||
if (WITH_IPE_7)
|
||||
foreach (VER RANGE 0 30)
|
||||
string(REPLACE XX ${VER} PATHC "${IPE_LIBRARY_DIR}/ipe/7.0.XX/ipelets/" )
|
||||
set(INSTALL_PATHS ${INSTALL_PATHS} ${PATHC})
|
||||
endforeach()
|
||||
remove_leading_zero(IPE_MINOR_VERSION_1)
|
||||
remove_leading_zero(IPE_MINOR_VERSION_2)
|
||||
set(INSTALL_PATHS ${INSTALL_PATHS} "${IPE_LIBRARY_DIR}/ipe/7.${IPE_MINOR_VERSION_1}.${IPE_MINOR_VERSION_2}/ipelets/")
|
||||
find_path(IPELET_INSTALL_DIR
|
||||
NAMES libgoodies.lua goodies.lua
|
||||
PATHS ${INSTALL_PATHS}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
\begin{ccPkgDescription}{Installation\label{Pkg:Installation}}
|
||||
\ccPkgHowToCiteCgal{cgal:cr-i-11b}
|
||||
\ccPkgHowToCiteCgal{cgal:cr-i-12}
|
||||
\ccPkgSummary{
|
||||
This chapter describes how to install \cgal, and lists the third party libraries
|
||||
on which \cgal\ depends, or for which \cgal\ provides interfaces.
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
|
@ -307,7 +307,7 @@ CGAL_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
|||
|
||||
#pragma comment(lib, CGAL_LIB_FULL_NAME )
|
||||
#ifdef CGAL_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " CGAL_LIB_FULL_NAME )
|
||||
# pragma message ("(CGAL auto-link diagnostic) Linking to lib file: " CGAL_LIB_FULL_NAME )
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
|
|
|||