Update to master

This commit is contained in:
Maxime Gimeno 2019-03-07 14:33:10 +01:00
commit 94541df835
701 changed files with 21004 additions and 2329 deletions

View File

@ -20,37 +20,38 @@ env:
- PACKAGE='Envelope_3 Filtered_kernel Generalized_map '
- PACKAGE='Generator Geomview GraphicsView '
- PACKAGE='HalfedgeDS Hash_map Heat_method_3 '
- PACKAGE='Homogeneous_kernel Inscribed_areas Installation '
- PACKAGE='Interpolation Intersections_2 Intersections_3 '
- PACKAGE='Interval_skip_list Interval_support Inventor '
- PACKAGE='Jet_fitting_3 Kernel_23 Kernel_d '
- PACKAGE='LEDA Linear_cell_complex MacOSX '
- PACKAGE='Maintenance Matrix_search Mesh_2 '
- PACKAGE='Mesh_3 Mesher_level Minkowski_sum_2 '
- PACKAGE='Minkowski_sum_3 Modifier Modular_arithmetic '
- PACKAGE='Nef_2 Nef_3 Nef_S2 '
- PACKAGE='NewKernel_d Number_types OpenNL '
- PACKAGE='Optimal_transportation_reconstruction_2 Optimisation_basic Partition_2 '
- PACKAGE='Periodic_2_triangulation_2 Periodic_3_mesh_3 Periodic_3_triangulation_3 '
- PACKAGE='Point_set_2 Point_set_3 Point_set_processing_3 '
- PACKAGE='Point_set_shape_detection_3 Poisson_surface_reconstruction_3 Polygon '
- PACKAGE='Polygon_mesh_processing Polyhedron Polyhedron_IO '
- PACKAGE='Polyline_simplification_2 Polynomial Polytope_distance_d '
- PACKAGE='Principal_component_analysis Principal_component_analysis_LGPL Profiling_tools '
- PACKAGE='Property_map QP_solver Random_numbers '
- PACKAGE='Ridges_3 Scale_space_reconstruction_3 Scripts '
- PACKAGE='SearchStructures Segment_Delaunay_graph_2 Segment_Delaunay_graph_Linf_2 '
- PACKAGE='Set_movable_separability_2 Skin_surface_3 Snap_rounding_2 '
- PACKAGE='Solver_interface Spatial_searching Spatial_sorting '
- PACKAGE='STL_Extension Straight_skeleton_2 Stream_lines_2 '
- PACKAGE='Stream_support Subdivision_method_3 Surface_mesh '
- PACKAGE='Surface_mesh_approximation Surface_mesh_deformation Surface_mesher '
- PACKAGE='Surface_mesh_parameterization Surface_mesh_segmentation Surface_mesh_shortest_path '
- PACKAGE='Surface_mesh_simplification Surface_mesh_skeletonization Surface_sweep_2 '
- PACKAGE='TDS_2 TDS_3 Testsuite '
- PACKAGE='Three Triangulation Triangulation_2 '
- PACKAGE='Triangulation_3 Union_find Visibility_2 '
- PACKAGE='Voronoi_diagram_2 wininst '
- PACKAGE='Homogeneous_kernel Hyperbolic_triangulation_2 Inscribed_areas '
- PACKAGE='Installation Interpolation Intersections_2 '
- PACKAGE='Intersections_3 Interval_skip_list Interval_support '
- PACKAGE='Inventor Jet_fitting_3 Kernel_23 '
- PACKAGE='Kernel_d LEDA Linear_cell_complex '
- PACKAGE='MacOSX Maintenance Matrix_search '
- PACKAGE='Mesh_2 Mesh_3 Mesher_level '
- PACKAGE='Minkowski_sum_2 Minkowski_sum_3 Modifier '
- PACKAGE='Modular_arithmetic Nef_2 Nef_3 '
- PACKAGE='Nef_S2 NewKernel_d Number_types '
- PACKAGE='OpenNL Optimal_transportation_reconstruction_2 Optimisation_basic '
- PACKAGE='Partition_2 Periodic_2_triangulation_2 Periodic_3_mesh_3 '
- PACKAGE='Periodic_3_triangulation_3 Periodic_4_hyperbolic_triangulation_2 Point_set_2 '
- PACKAGE='Point_set_3 Point_set_processing_3 Point_set_shape_detection_3 '
- PACKAGE='Poisson_surface_reconstruction_3 Polygon Polygon_mesh_processing '
- PACKAGE='Polyhedron Polyhedron_IO Polyline_simplification_2 '
- PACKAGE='Polynomial Polytope_distance_d Principal_component_analysis '
- PACKAGE='Principal_component_analysis_LGPL Profiling_tools Property_map '
- PACKAGE='QP_solver Random_numbers Ridges_3 '
- PACKAGE='Scale_space_reconstruction_3 Scripts SearchStructures '
- PACKAGE='Segment_Delaunay_graph_2 Segment_Delaunay_graph_Linf_2 Set_movable_separability_2 '
- PACKAGE='Skin_surface_3 Snap_rounding_2 Solver_interface '
- PACKAGE='Spatial_searching Spatial_sorting STL_Extension '
- PACKAGE='Straight_skeleton_2 Stream_lines_2 Stream_support '
- PACKAGE='Subdivision_method_3 Surface_mesh Surface_mesh_approximation '
- PACKAGE='Surface_mesh_deformation Surface_mesher Surface_mesh_parameterization '
- PACKAGE='Surface_mesh_segmentation Surface_mesh_shortest_path Surface_mesh_simplification '
- PACKAGE='Surface_mesh_skeletonization Surface_sweep_2 TDS_2 '
- PACKAGE='TDS_3 Testsuite Three '
- PACKAGE='Triangulation Triangulation_2 Triangulation_3 '
- PACKAGE='Union_find Visibility_2 Voronoi_diagram_2 '
- PACKAGE='wininst '
compiler: clang
install:
- echo "$PWD"

View File

@ -41,6 +41,7 @@ HalfedgeDS
Hash_map
Heat_method_3
Homogeneous_kernel
Hyperbolic_triangulation_2
Inscribed_areas
Installation
Interpolation
@ -76,6 +77,7 @@ Partition_2
Periodic_2_triangulation_2
Periodic_3_mesh_3
Periodic_3_triangulation_3
Periodic_4_hyperbolic_triangulation_2
Point_set_2
Point_set_3
Point_set_processing_3

View File

@ -22,17 +22,17 @@
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `AABBPrimitive`
- `AABBPrimitiveWithSharedData`
- `AABBTraits`
- `AABBGeomTraits`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::AABB_traits<GeomTraits,Primitive>`
- `CGAL::AABB_tree<AT>`
## Primitives ##
\cgalCRPSection{Primitives}
- `CGAL::AABB_triangle_primitive<GeomTraits, Iterator, CacheDatum>`
- `CGAL::AABB_segment_primitive<GeomTraits, Iterator, CacheDatum>`
- `CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMapPolyhedron,ExternalPropertyMaps,CacheDatum>`

View File

@ -429,6 +429,12 @@ public:
/// that returns `true` in order to skip the primitive.
/// Defaults to a functor that always returns `false`.
///
/// \note `skip` might be given some primitives that are not intersected by `query`
/// because the intersection test is done after the skip test. Also note that
/// the order the primitives are given to `skip` is not necessarily the
/// intersection order with `query`.
///
///
/// `AABBTraits` must be a model of `AABBRayIntersectionTraits` to
/// call this member function.
template<typename Ray, typename SkipFunctor>

View File

@ -30,6 +30,7 @@
#include <CGAL/AABB_face_graph_triangle_primitive.h>
#include <CGAL/AABB_halfedge_graph_segment_primitive.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Timer.h>
#include <CGAL/disable_warnings.h>

View File

@ -26,9 +26,6 @@
#include <fstream>
#include <iostream>
#include <CGAL/Timer.h>
#include <CGAL/Cartesian.h>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>

View File

@ -25,10 +25,8 @@
#include <iostream>
#include <fstream>
#include <CGAL/Timer.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Cartesian.h>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/AABB_tree.h>

View File

@ -28,14 +28,12 @@
#include <CGAL/Timer.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Cartesian.h>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/AABB_tree.h>
#include <CGAL/AABB_traits.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/spatial_sort.h>
#include "AABB_test_util.h"

View File

@ -25,13 +25,13 @@ of topological singularities. }
\cgalClassifedRefPages
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Advancing_front_surface_reconstruction`
- `CGAL::Advancing_front_surface_reconstruction_vertex_base_3`
- `CGAL::Advancing_front_surface_reconstruction_cell_base_3`
## Functions ##
\cgalCRPSection{Functions}
- `CGAL::advancing_front_surface_reconstruction()`

View File

@ -10,10 +10,6 @@ find_package(CGAL QUIET)
if ( CGAL_FOUND )
if (MSVC AND ( CMAKE_SIZEOF_VOID_P EQUAL 4 ) )
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244")
endif()
# create a target per cppfile
file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
foreach(cppfile ${cppfiles})

View File

@ -23,9 +23,9 @@
\cgalClassifedRefPages
## Algebraic Structures ##
\cgalCRPSection{Algebraic Structures}
### Concepts ###
\cgalCRPSubsection{Concepts}
- `IntegralDomainWithoutDivision`
- `IntegralDomain`
@ -54,7 +54,7 @@
- `AlgebraicStructureTraits_::KthRoot`
- `AlgebraicStructureTraits_::RootOf`
### Classes ###
\cgalCRPSubsection{Classes}
- `CGAL::Algebraic_structure_traits<T>`
- `CGAL::Integral_domain_without_division_tag`
@ -64,7 +64,7 @@
- `CGAL::Unique_factorization_domain_tag`
- `CGAL::Euclidean_ring_tag`
### Global Functions ###
\cgalCRPSubsection{Global Functions}
- `CGAL::is_zero()`
- `CGAL::is_one()`
@ -82,9 +82,9 @@
- `CGAL::kth_root()`
- `CGAL::root_of()`
## Real Embeddable ##
\cgalCRPSection{Real Embeddable}
### Concepts ###
\cgalCRPSubsection{Concepts}
- `RealEmbeddable`
@ -98,11 +98,11 @@
- `RealEmbeddableTraits_::ToDouble`
- `RealEmbeddableTraits_::ToInterval`
### Classes ###
\cgalCRPSubsection{Classes}
- `CGAL::Real_embeddable_traits<T>`
### Global Functions ###
\cgalCRPSubsection{Global Functions}
- `CGAL::is_zero()`
- `CGAL::abs()`
@ -113,27 +113,27 @@
- `CGAL::to_double()`
- `CGAL::to_interval()`
## Real Number Types ##
\cgalCRPSection{Real Number Types}
### Concepts ###
\cgalCRPSubsection{Concepts}
- `RingNumberType`
- `FieldNumberType`
## Interoperability ##
\cgalCRPSection{Interoperability}
### Concepts ###
\cgalCRPSubsection{Concepts}
- `ExplicitInteroperable`
- `ImplicitInteroperable`
### Classes ###
\cgalCRPSubsection{Classes}
- `CGAL::Coercion_traits<A,B>`
## Fractions ##
\cgalCRPSection{Fractions}
### Concepts ###
\cgalCRPSubsection{Concepts}
- `Fraction`
- `FractionTraits`
@ -141,13 +141,13 @@
- `FractionTraits_::Compose`
- `FractionTraits_::CommonFactor`
### Classes ###
\cgalCRPSubsection{Classes}
- `CGAL::Fraction_traits<T>`
## Miscellaneous ##
\cgalCRPSection{Miscellaneous}
### Concepts ###
\cgalCRPSubsection{Concepts}
- `FromIntConstructible`
- `FromDoubleConstructible`

View File

@ -1,6 +1,7 @@
#include <CGAL/basic.h>
#include <CGAL/IO/io.h>
#include <CGAL/Algebraic_structure_traits.h>
#include <CGAL/number_utils.h>
#include <CGAL/int.h>
template< typename NT > NT unit_part(const NT& x);
template< typename NT >

View File

@ -1,4 +1,3 @@
#include <CGAL/basic.h>
#include <CGAL/Fraction_traits.h>
#include <CGAL/IO/io.h>

View File

@ -1,4 +1,3 @@
#include <CGAL/basic.h>
#include <CGAL/Coercion_traits.h>
#include <CGAL/Quotient.h>
#include <CGAL/Sqrt_extension.h>

View File

@ -1,7 +1,7 @@
#include <CGAL/basic.h>
#include <CGAL/Fraction_traits.h>
#include <CGAL/IO/io.h>
#include <vector>
#include <CGAL/number_utils.h>
template <class Fraction>
std::vector<typename CGAL::Fraction_traits<Fraction>::Numerator_type >

View File

@ -1,4 +1,3 @@
#include <CGAL/basic.h>
#include <CGAL/Coercion_traits.h>
#include <CGAL/IO/io.h>

View File

@ -34,9 +34,9 @@
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
### Univariate Algebraic %Kernel ###
\cgalCRPSubsection{Univariate Algebraic %Kernel}
- `AlgebraicKernel_d_1`
@ -58,7 +58,7 @@
- `AlgebraicKernel_d_1::ApproximateAbsolute_1`
- `AlgebraicKernel_d_1::ApproximateRelative_1`
### Bivariate Algebraic %Kernel ###
\cgalCRPSubsection{Bivariate Algebraic %Kernel}
- `AlgebraicKernel_d_2`
@ -95,7 +95,7 @@
- `AlgebraicKernel_d_2::BoundBetweenX_2`
- `AlgebraicKernel_d_2::BoundBetweenY_2`
## Models ##
\cgalCRPSection{Models}
- `CGAL::Algebraic_kernel_d_1<Coeff>`
- `CGAL::Algebraic_kernel_d_2<Coeff>`

View File

@ -1,7 +1,7 @@
// $URL$
// $Id$
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifdef CGAL_USE_MPFI
#include <CGAL/Algebraic_kernel_d_1.h>
#include <CGAL/Gmpz.h>

View File

@ -1,7 +1,7 @@
// $URL$
// $Id$
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifdef CGAL_USE_MPFI
#include <CGAL/Algebraic_kernel_d_1.h>
#include <CGAL/Gmpz.h>

View File

@ -1,7 +1,7 @@
// $URL$
// $Id$
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifdef CGAL_USE_MPFI
#include <CGAL/Algebraic_kernel_d_1.h>
#include <CGAL/Gmpz.h>

View File

@ -1,7 +1,7 @@
// $URL$
// $Id$
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifdef CGAL_USE_MPFI
#include <CGAL/Algebraic_kernel_d_1.h>
#include <CGAL/Gmpz.h>

View File

@ -1,7 +1,7 @@
// $URL$
// $Id$
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifdef CGAL_USE_MPFI
#include <CGAL/Algebraic_kernel_d_1.h>
#include <CGAL/Gmpz.h>

View File

@ -216,8 +216,8 @@ namespace CGAL {
const FT cz = (p.a()*p.c())/sqbc;
const Root_of_2 x = make_root_of_2(s.a(),FT(i?-1:1),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):(-cz)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):FT(-cy)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):FT(-cz)),delta);
return Root_for_spheres_2_3(x,y,z);
}
@ -290,14 +290,14 @@ namespace CGAL {
const FT cz = (p.c()*p.b())/sqac;
if(!is_positive(cx)) {
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):(-cx)),delta);
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):FT(-cx)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?-1:1),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):(-cz)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(cz):FT(-cz)),delta);
return Root_for_spheres_2_3(x,y,z);
} else {
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(-cx):(cx)),delta);
const Root_of_2 x = make_root_of_2(s.a(),FT(i?FT(-cx):(cx)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?1:-1),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?(-cz):(cz)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?FT(-cz):(cz)),delta);
return Root_for_spheres_2_3(x,y,z);
}
}
@ -375,25 +375,25 @@ namespace CGAL {
const FT cy = (p.c()*p.b())/sqab;
if(is_negative(cx)) {
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):(-cx)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(cx):FT(-cx)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):FT(-cy)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?-1:1),delta);
return Root_for_spheres_2_3(x,y,z);
} else if(is_zero(cx)) {
if(!is_positive(cy)) {
const Root_of_2 x = s.a();
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):(-cy)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(cy):FT(-cy)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?-1:1),delta);
return Root_for_spheres_2_3(x,y,z);
} else {
const Root_of_2 x = s.a();
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(-cy):(cy)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?FT(-cy):(cy)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?1:-1),delta);
return Root_for_spheres_2_3(x,y,z);
}
} else {
const Root_of_2 x = make_root_of_2(s.a(),FT(i?(-cx):(cx)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?(-cy):(cy)),delta);
const Root_of_2 x = make_root_of_2(s.a(),FT(i?FT(-cx):(cx)),delta);
const Root_of_2 y = make_root_of_2(s.b(),FT(i?FT(-cy):(cy)),delta);
const Root_of_2 z = make_root_of_2(s.c(),FT(i?1:-1),delta);
return Root_for_spheres_2_3(x,y,z);
}

View File

@ -68,12 +68,12 @@ finite number of different \f$ \alpha\f$-shapes and corresponding
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `AlphaShapeTraits_2`
- `AlphaShapeFace_2`
- `AlphaShapeVertex_2`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Alpha_shape_2<Dt>`
- `CGAL::Weighted_alpha_shape_euclidean_traits_2<K>`
- `CGAL::Alpha_shape_vertex_base_2<AlphaShapeTraits_2>`

View File

@ -1,5 +1,4 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Filtered_kernel.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Cartesian_converter.h>
#include <CGAL/Delaunay_triangulation_2.h>
@ -16,9 +15,8 @@
typedef double coord_type;
typedef CGAL::Simple_cartesian<coord_type> SC;
typedef CGAL::Filtered_kernel<SC> FK;
typedef CGAL::Projection_traits_xy_3<FK> K;
typedef CGAL::Exact_predicates_inexact_constructions_kernel Epic;
typedef CGAL::Projection_traits_xy_3<Epic> K;
typedef K::Point_2 Point;
typedef K::Segment_2 Segment;
@ -34,10 +32,10 @@ typedef K::Segment_2 Segment;
namespace CGAL {
template < class K2, class C >
class Cartesian_converter<FK, K2, C>
class Cartesian_converter<Epic, K2, C>
{
public:
typedef CGAL::Projection_traits_xy_3<FK> Source_kernel;
typedef CGAL::Projection_traits_xy_3<Epic> Source_kernel;
typedef K2 Target_kernel;
typedef C Number_type_converter;

View File

@ -1,5 +1,4 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Filtered_kernel.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/algorithm.h>
#include <cstdio>
#include <cstring>
@ -15,8 +14,7 @@
typedef double coord_type;
typedef CGAL::Simple_cartesian<coord_type> SC;
typedef CGAL::Filtered_kernel<SC> K;
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef K::Point_2 Point;
typedef K::Segment_2 Segment;

View File

@ -5,8 +5,7 @@ corresponding to the weighted Alpha Shape.
************************************************************************/
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Filtered_kernel.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Alpha_shape_2.h>
#include <CGAL/Alpha_shape_face_base_2.h>
@ -22,8 +21,7 @@ corresponding to the weighted Alpha Shape.
typedef double coord_type;
typedef CGAL::Simple_cartesian<coord_type> SC;
typedef CGAL::Filtered_kernel<SC> K;
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef K::Point_2 Point;
typedef K::Weighted_point_2 Weighted_point;
typedef K::Segment_2 Segment;

View File

@ -83,7 +83,7 @@ of the alpha complex where singular faces are removed.
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `AlphaShapeTraits_3`
- `WeightedAlphaShapeTraits_3`
- `AlphaShapeCell_3`
@ -93,7 +93,7 @@ of the alpha complex where singular faces are removed.
- `FixedAlphaShapeCell_3`
- `FixedAlphaShapeVertex_3`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Alpha_status<NT>`
- `CGAL::Alpha_shape_3<Dt,ExactAlphaComparisonTag>`
- `CGAL::Alpha_shape_vertex_base_3<Traits,Vb>`

View File

@ -40,7 +40,7 @@ aforementioned concepts.
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `ApolloniusSite_2`
- `ApolloniusGraphDataStructure_2`
@ -48,7 +48,7 @@ aforementioned concepts.
- `ApolloniusGraphTraits_2`
- `ApolloniusGraphHierarchyVertexBase_2`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Apollonius_graph_2<Gt,Agds>`
- `CGAL::Apollonius_site_2<K>`

View File

@ -1,4 +1,4 @@
#include <CGAL/basic.h>
#include <CGAL/config.h>
// standard includes
#include <iostream>

View File

@ -22,7 +22,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
#include <CGAL/Simple_cartesian.h>
#ifndef DONT_USE_FILTERED_EXACT
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
typedef CGAL::Simple_cartesian<number_t> Kernel;
#endif
typedef CGAL::Integral_domain_without_division_tag Method_tag;
@ -30,8 +30,8 @@ typedef CGAL::Integral_domain_without_division_tag Method_tag;
#include "./include/test.h"
struct CK : public CGAL::Simple_cartesian<inexact_type> {};
struct EK : public CGAL::Simple_cartesian<exact_type> {};
typedef CGAL::Simple_cartesian<inexact_type> CK;
typedef CGAL::Simple_cartesian<exact_type> EK;
int main()

View File

@ -23,7 +23,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
#include <CGAL/Simple_cartesian.h>
#ifndef DNOT_USE_FILTERED_EXACT
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
typedef CGAL::Simple_cartesian<number_t> K;
#endif
typedef CGAL::Integral_domain_without_division_tag Method_tag;
@ -31,8 +31,8 @@ typedef CGAL::Integral_domain_without_division_tag Method_tag;
#include "./include/test.h"
struct CK : public CGAL::Simple_cartesian<inexact_type> {};
struct EK : public CGAL::Simple_cartesian<exact_type> {};
typedef CGAL::Simple_cartesian<inexact_type> CK;
typedef CGAL::Simple_cartesian<exact_type> EK;
int main()

View File

@ -10,11 +10,11 @@
typedef CGAL::Exact_rational exact_nt;
struct Rep : public CGAL::Simple_cartesian<exact_nt> {};
typedef CGAL::Simple_cartesian<exact_nt> Rep;
typedef CGAL::Integral_domain_without_division_tag Method_tag;
struct Gt : public CGAL::Apollonius_graph_traits_2<Rep,Method_tag> {};
typedef CGAL::Apollonius_graph_traits_2<Rep,Method_tag> Gt;
typedef CGAL::Apollonius_graph_2<Gt> AG2;
typedef AG2::Point_2 Point_2;

View File

@ -1,5 +1,3 @@
#include <CGAL/basic.h>
#include <iostream>
#include <fstream>
#include <cassert>
@ -22,7 +20,7 @@ typedef CGAL::Filtered_exact<inexact_type,exact_type> number_t;
#include <CGAL/Simple_cartesian.h>
#ifndef DONT_USE_FILTERED_EXACT
struct Kernel : public CGAL::Simple_cartesian<number_t> {};
typedef CGAL::Simple_cartesian<number_t> Kernel;
#endif
typedef CGAL::Integral_domain_without_division_tag Method_tag;
@ -30,8 +28,8 @@ typedef CGAL::Integral_domain_without_division_tag Method_tag;
#include "./include/test.h"
struct CK : public CGAL::Simple_cartesian<double> {};
struct EK : public CGAL::Simple_cartesian<CGAL::MP_Float> {};
typedef CGAL::Simple_cartesian<double> CK;
typedef CGAL::Simple_cartesian<CGAL::MP_Float> EK;
int main()

View File

@ -1,29 +0,0 @@
/*
*/
class ArrTrimTraits_2 {
public:
typedef ArrTraits::X_monotone_curve_2 X_monotone_curve_2;
typedef ArrTraits::Point_2 Point_2;
/*!
returns an \f$ x\f$-monotone trimmed version \f$ x\f$-monotone
connecting `p1` and `p2` (i.e., the
two input points are its endpoints).
*/
X_monotone_curve_2 operator() ( X_monotone_curve_2 xcv,
Point_2 p1, Point_2 p2);
};

View File

@ -87,18 +87,18 @@ implemented as peripheral classes or as free (global) functions.
\cgalClassifedRefPages
## Enumerations ##
\cgalCRPSection{Enumerations}
- `CGAL::Arr_parameter_space`
- `CGAL::Arr_curve_end`
- `CGAL::Arr_halfedge_direction`
## Tags ##
\cgalCRPSection{Tags}
- `CGAL::Arr_oblivious_side_tag`
- `CGAL::Arr_open_side_tag`
## Concepts ##
\cgalCRPSection{Concepts}
- `ArrangementDcel`
- `ArrangementDcelWithRebind`
@ -119,13 +119,13 @@ implemented as peripheral classes or as free (global) functions.
- `ArrangementPointLocation_2`
- `ArrangementVerticalRayShoot_2`
## Geometric Object Concepts ##
\cgalCRPSection{Geometric Object Concepts}
- `ArrTraits::Point_2`
- `ArrTraits::XMonotoneCurve_2`
- `ArrTraits::Curve_2`
## Function Object Concepts ##
\cgalCRPSection{Function Object Concepts}
- `ArrTraits::CompareX_2`
- `ArrTraits::CompareXy_2`
@ -149,7 +149,7 @@ implemented as peripheral classes or as free (global) functions.
- `ArrTraits::Approximate_2`
- `ArrTraits::ConstructXMonotoneCurve_2`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Arrangement_2<Traits,Dcel>`
- `CGAL::Arr_accessor<Arrangement>`
@ -188,10 +188,10 @@ implemented as peripheral classes or as free (global) functions.
- `CGAL::Arr_face_index_map<Arrangement>`
- `CGAL::Arr_point_location_result<Arrangement>`
## Macros ##
\cgalCRPSection{Macros}
- \link CGAL_ARR_POINT_LOCATION_VERSION `CGAL_ARR_POINT_LOCATION_VERSION` \endlink
## Functions ##
\cgalCRPSection{Functions}
- `CGAL::is_valid()`
- `CGAL::insert()`

View File

@ -1,7 +1,7 @@
//! \file examples/Arrangement_on_surface_2/Bezier_curves.cpp
// Constructing an arrangement of Bezier curves.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -1,4 +1,4 @@
#include <CGAL/basic.h>
#include <CGAL/config.h>
#include <iostream>
#if (!CGAL_USE_CORE) && (!CGAL_USE_LEDA) && (!(CGAL_USE_GMP && CGAL_USE_MPFI))

View File

@ -1,7 +1,7 @@
//! \file examples/Arrangement_on_surface_2/conic_multiplicities.cpp
// Handling intersection points with multiplicity between conic arcs.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -1,6 +1,6 @@
//! \file examples/Arrangement_on_surface_2/conics.cpp
// Constructing an arrangement of various conic arcs.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -1,8 +1,6 @@
//! \file examples/Arrangement_on_surface_2/edge_manipulation.cpp
// Using the edge-manipulation functions.
#include <CGAL/basic.h>
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Arr_segment_traits_2.h>
#include <CGAL/Arrangement_2.h>

View File

@ -1,6 +1,6 @@
// Constructing a arrangement of Bezier polycurves.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE

View File

@ -1,6 +1,6 @@
// Constructing an arrangement of polycurves.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE

View File

@ -1,6 +1,6 @@
// Testing the do_equal function
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE

View File

@ -1,7 +1,7 @@
//! \file examples/Arrangement_2/ex_rational_functions.cpp
//! \file examples/Arrangement_2/rational_functions.cpp
// Constructing an arrangement of arcs of rational functions.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -1,7 +1,7 @@
//! \file examples/Arrangement_2/ex_rational_functions.cpp
//! \file examples/Arrangement_2/rational_functions_rational_coefficients.cpp
// Constructing an arrangement of arcs of rational functions.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -1,7 +1,7 @@
//! \file examples/Arrangement_2/unbounded_rational_functions.cpp
// Constructing an arrangement of unbounded portions of rational functions.
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -558,7 +558,7 @@ Methods to read and write graphs.
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `VertexListGraph`
- `EdgeListGraph`
- `HalfedgeGraph`
@ -568,14 +568,14 @@ Methods to read and write graphs.
- `FaceListGraph`
- `MutableFaceGraph`
## Properties ##
\cgalCRPSection{Properties}
- `boost::vertex_index_t`
- `boost::halfedge_index_t`
- `boost::edge_index_t`
- `boost::face_index_t`
- `boost::vertex_point_t`
## %CGAL Classes Adapted for the Graph API ##
\cgalCRPSection{%CGAL Classes Adapted for the Graph API}
Different \cgal types have been adapted as graphs for the \sc{Bgl}. All
adapted types are listed here. The pages document which concepts they
@ -591,7 +591,7 @@ user might encounter.
- \link BGLOMPAK `boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >` \endlink
- \link BGLOMTMAK `boost::graph_traits<OpenMesh::TriMesh_ArrayKernelT<K> >` \endlink
## Helper Classes ##
\cgalCRPSection{Helper Classes}
- `CGAL::Triangulation_vertex_base_with_id_2`
- `CGAL::Arr_vertex_index_map`
- `CGAL::Arr_face_index_map`
@ -603,7 +603,7 @@ user might encounter.
- `CGAL::Linear_cell_complex_bgl_min_items`
- `CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper`
## Helper Functions ##
\cgalCRPSection{Helper Functions}
- `CGAL::is_border()`
- `CGAL::is_border_edge()`
- `CGAL::is_bivalent()`
@ -636,7 +636,7 @@ user might encounter.
- `CGAL::clear()`
- `CGAL::copy_face_graph()`
## Iterators ##
\cgalCRPSection{Iterators}
- `CGAL::Halfedge_around_source_iterator`
- `CGAL::Halfedge_around_target_iterator`
- `CGAL::Halfedge_around_face_iterator`
@ -652,7 +652,7 @@ user might encounter.
- `CGAL::vertices_around_face()`
- `CGAL::vertices_around_target()`
## Circulators ##
\cgalCRPSection{Circulators}
- `CGAL::Halfedge_around_source_circulator`
- `CGAL::Halfedge_around_target_circulator`
- `CGAL::Halfedge_around_face_circulator`
@ -660,7 +660,7 @@ user might encounter.
- `CGAL::Face_around_target_circulator`
- `CGAL::Face_around_face_circulator`
## Euler Operations ##
\cgalCRPSection{Euler Operations}
- `CGAL::Euler::add_center_vertex()`
- `CGAL::Euler::add_edge()`
- `CGAL::Euler::add_face()`
@ -681,7 +681,7 @@ user might encounter.
- `CGAL::Euler::split_loop()`
- `CGAL::Euler::split_vertex()`
## Selection ##
\cgalCRPSection{Selection}
- `CGAL::expand_face_selection()`
- `CGAL::reduce_face_selection()`
- `CGAL::expand_edge_selection()`
@ -691,21 +691,21 @@ user might encounter.
- `CGAL::select_incident_faces()`
- `CGAL::expand_face_selection_for_removal()`
## Conversion Functions ##
\cgalCRPSection{Conversion Functions}
- `CGAL::split_graph_into_polylines()`
## Graph Adaptors ##
\cgalCRPSection{Graph Adaptors}
- `CGAL::Dual`
- `CGAL::Face_filtered_graph`
- `CGAL::Graph_with_descriptor_with_graph`
- `CGAL::Graph_with_descriptor_with_graph_property_map`
- `CGAL::Seam_mesh`
## Partitioning Methods ##
\cgalCRPSection{Partitioning Methods}
- `CGAL::METIS::partition_graph()`
- `CGAL::METIS::partition_dual_graph()`
## I/O Functions ##
\cgalCRPSection{I/O Functions}
- \link PkgBGLIOFct CGAL::read_off() \endlink
- \link PkgBGLIOFct CGAL::write_off() \endlink
- \link PkgBGLIOFct CGAL::write_wrl() \endlink

View File

@ -1,10 +1,10 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/boost/graph/iterator.h>
#include <iostream>
#include <fstream>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;

View File

@ -3,14 +3,12 @@
#include <boost/graph/graph_traits.hpp>
#include <CGAL/property_map.h>
#include <CGAL/basic.h>
#include <CGAL/Kernel/global_functions.h>
#include <CGAL/Cartesian.h>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
typedef CGAL::Cartesian<double> Kernel;
typedef Kernel::Point_3 Point;
typedef Kernel::Vector_3 Vector;
typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_3 Point;
typedef Kernel::Vector_3 Vector;
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;
typedef CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper

View File

@ -1,6 +1,7 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Iterator_range.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
#include <boost/foreach.hpp>
#include <iostream>

View File

@ -1,10 +1,10 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/boost/graph/iterator.h>
#include <fstream>
#include <CGAL/boost/iterator/transform_iterator.hpp>
#include <algorithm>
#include <fstream>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef CGAL::Linear_cell_complex_traits<3, Kernel> LCC_traits;

View File

@ -1,4 +1,3 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <OpenMesh/Core/IO/MeshIO.hh>
@ -9,7 +8,6 @@
#include <CGAL/boost/graph/Euler_operations.h>
#include <CGAL/mesh_segmentation.h>
#include <CGAL/property_map.h>
#include <iostream>

View File

@ -15,6 +15,7 @@
#include <iostream>
#include <fstream>
#include <iterator>
#include <boost/unordered_map.hpp>

View File

@ -14,7 +14,6 @@ typedef boost::graph_traits<Polyhedron>::vertex_descriptor vertex_descriptor;
typedef boost::graph_traits<Polyhedron>::vertex_iterator vertex_iterator;
int main(int argc, char** argv) {
Polyhedron P;

View File

@ -1,10 +1,10 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/iterator.h>
#include <iostream>
#include <fstream>
typedef CGAL::Simple_cartesian<double> Kernel;
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;

View File

@ -1,17 +1,13 @@
#include <fstream>
#include <boost/graph/graph_traits.hpp>
#include <CGAL/property_map.h>
#include <CGAL/basic.h>
#include <CGAL/Kernel/global_functions.h>
// Polyhedron
#include <CGAL/Cartesian.h>
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Polyhedron_items_with_id_3.h>
#include <CGAL/property_map.h>
typedef CGAL::Cartesian<double> Kernel;
typedef CGAL::Simple_cartesian<double> Kernel;
typedef Kernel::Point_3 Point;
typedef Kernel::Vector_3 Vector;
typedef CGAL::Polyhedron_3<Kernel, CGAL::Polyhedron_items_with_id_3> Polyhedron;

View File

@ -1,8 +1,8 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Iterator_range.h>
#include <boost/foreach.hpp>
#include <boost/foreach.hpp>
#include <iostream>
#include <fstream>

View File

@ -1,5 +1,6 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h>
#include <iostream>
#include <fstream>

View File

@ -4,6 +4,7 @@
#include <CGAL/boost/graph/Graph_with_descriptor_with_graph.h>
#include <CGAL/boost/graph/helpers.h>
#include <CGAL/boost/graph/Euler_operations.h>
#include <fstream>
typedef CGAL::Simple_cartesian<double> K;

View File

@ -2,6 +2,7 @@
#include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/Dual.h>
#include <CGAL/boost/graph/helpers.h>
#include <iostream>
#include <fstream>

View File

@ -1,7 +1,5 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/Face_filtered_graph.h>
#include <CGAL/boost/graph/partition.h>

View File

@ -1,6 +1,7 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/boost/graph/io.h>
#include <iostream>
#include <fstream>

View File

@ -43,8 +43,7 @@ vertices as a source and target. It is possible to filter border edges
using `boost::filtered_graph` as shown in example
\ref BGL_surface_mesh/surface_mesh_dual.cpp
Property forwarding
-------------------
\cgalHeading{Property Forwarding}
\cgalAdvancedBegin
Edge properties of the underlying graph are forwarded directly. For
faces and vertices only the `face_index` and `vertex_index` properties

View File

@ -650,6 +650,17 @@ degree(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIM
return v_deg;
}
template<typename Graph,
typename FIMap,
typename VIMap,
typename HIMap>
typename boost::graph_traits<Graph>::degree_size_type
degree(typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::face_descriptor f,
const Face_filtered_graph<Graph, FIMap, VIMap, HIMap>& w)
{
return degree(f, w.graph());
}
template<typename Graph,
typename FIMap,
typename VIMap,
@ -944,8 +955,7 @@ template<typename Graph,
typename FIMap,
typename VIMap,
typename HIMap>
std::pair<typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator,
typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator>
Iterator_range<typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator>
halfedges(const Face_filtered_graph<Graph, FIMap, VIMap, HIMap> & w)
{
typedef typename boost::graph_traits<Face_filtered_graph<Graph, FIMap, VIMap, HIMap> >::halfedge_iterator halfedge_iterator;

View File

@ -118,8 +118,7 @@ The class `Graph_with_descriptor_with_graph` wraps a graph into another graph in
For example, calling `source(edge, graph)` will trigger an assertion if `edge` does not belong to `graph`.
It is mainly used for debugging purposes.
Property forwarding
-------------------
\cgalHeading{Property Forwarding}
All internal properties of the underlying graph are forwarded.
Property maps can be wrapped with `Graph_with_descriptor_with_graph_property_map`.

View File

@ -22,24 +22,24 @@
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `BarycentricTraits_2`
- `BarycentricCoordinates_2`
## Namespaces ##
\cgalCRPSection{Namespaces}
- `CGAL::Barycentric_coordinates`
## Classes ##
\cgalCRPSection{General Classes}
- `CGAL::Barycentric_coordinates::Segment_coordinates_2<Traits>`
- `CGAL::Barycentric_coordinates::Triangle_coordinates_2<Traits>`
- `CGAL::Barycentric_coordinates::Generalized_barycentric_coordinates_2<Coordinate_2, Traits>`
## ##
\cgalCRPSection{Models of `BarycentricCoordinates_2`}
- `CGAL::Barycentric_coordinates::Wachspress_2<Traits>`
- `CGAL::Barycentric_coordinates::Mean_value_2<Traits>`
- `CGAL::Barycentric_coordinates::Discrete_harmonic_2<Traits>`
## Enumerations ##
\cgalCRPSection{Enumerations}
- `CGAL::Barycentric_coordinates::Query_point_location`
- `CGAL::Barycentric_coordinates::Type_of_algorithm`

View File

@ -33,7 +33,7 @@ containment predicates.
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `GpsTraitsGeneralPolygon_2`
- `GpsTraitsGeneralPolygonWithHoles_2`
- `GeneralPolygon_2`
@ -43,7 +43,7 @@ containment predicates.
- `GeneralPolygonSetDcelFace`
- `GeneralPolygonSetDcelHalfedge`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Polygon_set_2<Kernel,Container,Dcel>`
- `CGAL::General_polygon_set_2<Traits,Dcel>`
- `CGAL::General_polygon_2<ArrTraits>`
@ -53,7 +53,7 @@ containment predicates.
- `CGAL::Gps_traits_2<ArrTraits,GeneralPolygon>`
- `CGAL::Gps_default_dcel<Traits>`
## Functions ##
\cgalCRPSection{Functions}
- \link boolean_complement `CGAL::complement()` \endlink
- \link boolean_do_intersect `CGAL::do_intersect()` \endlink
- \link boolean_intersection `CGAL::intersection()` \endlink

View File

@ -2,7 +2,7 @@
* Using the traits adaptor to generate a traits class for Bezier polygons.
*/
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -2,7 +2,7 @@
* Using the traits adaptor to generate a traits class for Bezier polygons.
*/
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -2,7 +2,7 @@
* Using the traits adaptor to generate a traits of conics.
*/
#include <CGAL/basic.h>
#include <CGAL/config.h>
#ifndef CGAL_USE_CORE
#include <iostream>

View File

@ -16,7 +16,8 @@
// $Id$
// SPDX-License-Identifier: GPL-3.0+
//
// Author(s) : Baruch Zukerman <baruchzu@post.tau.ac.il>
// Author(s): Baruch Zukerman <baruchzu@post.tau.ac.il>
// Efi Fogel <efifogel@gmail.com>
#ifndef CGAL_GPS_TRAITS_ADAPTOR_H
#define CGAL_GPS_TRAITS_ADAPTOR_H
@ -105,76 +106,87 @@ public:
friend class Gps_traits_adaptor<Base>;
public:
template <class CurveInputIteraor>
Orientation operator()(CurveInputIteraor begin,
CurveInputIteraor end) const
template <typename CurveInputIteraor>
Orientation operator()(CurveInputIteraor begin, CurveInputIteraor end) const
{
Compare_xy_2 cmp_xy = m_traits.compare_xy_2_object();
Compare_y_at_x_right_2 cmp_y_at_x_right =
m_traits.compare_y_at_x_right_2_object();
Construct_vertex_2 ctr_v = m_traits.construct_vertex_2_object();
Compare_endpoints_xy_2 cmp_endpoints_xy =
m_traits.compare_endpoints_xy_2_object();
CurveInputIteraor from_left_most = begin;
CurveInputIteraor into_left_most = end;
CurveInputIteraor into_leftmost = end;
CurveInputIteraor from_leftmost = end;
Point_2 left_most_v = ctr_v(*from_left_most, 0);
CurveInputIteraor into = end;
--into;
for (CurveInputIteraor ci = begin; ci != end; ++ci) {
CurveInputIteraor from = ci;
--into_left_most;
/* We are only concerned with the following case:
* o
* / <= from or into
* /
* o
* \
* \ <= into or from, resp.
* o
*/
Comparison_result res_from = cmp_endpoints_xy(*from);
Comparison_result res_into = cmp_endpoints_xy(*into);
if ((SMALLER != res_from) || (LARGER != res_into)) {
into = from;
continue;
}
CurveInputIteraor ci = from_left_most;
if (from_leftmost == end) {
// First occurance
from_leftmost = from;
into_leftmost = into;
into = from;
continue;
}
for (++ci ; ci != end; ++ci) {
Comparison_result res_xy = cmp_xy( ctr_v(*ci, 0), left_most_v);
if (res_xy == LARGER) continue;
const Point_2& v = ctr_v(*from, 0);
const Point_2& v_leftmost = ctr_v(*from_leftmost, 0);
Comparison_result res_xy = cmp_xy(v, v_leftmost);
if (res_xy == LARGER) {
into = from;
continue;
}
if (res_xy == SMALLER) {
left_most_v = ctr_v(*ci, 0);
from_left_most = into_left_most = ci;
--into_left_most;
from_leftmost = from;
into_leftmost = into;
into = from;
continue;
}
else {
// res_xy == EQUAL
CurveInputIteraor tmp_from_left_most = ci;
CurveInputIteraor tmp_into_left_most = ci;
--tmp_into_left_most;
Comparison_result res_from = cmp_y_at_x_right(*from_left_most,
*tmp_from_left_most,
left_most_v);
// res_xy == EQUAL
Comparison_result res_from_leftmost_into =
cmp_y_at_x_right(*from_leftmost, *into, v_leftmost);
Comparison_result res_to = cmp_y_at_x_right(*into_left_most,
*tmp_into_left_most,
left_most_v);
CGAL_assertion_code
(Comparison_result res_into_leftmost_from =
cmp_y_at_x_right(*into_leftmost, *from, v_leftmost));
CGAL_assertion((res_from_leftmost_into != EQUAL) &&
(res_from_leftmost_into != res_into_leftmost_from));
Comparison_result res_into_from =
cmp_y_at_x_right(*into_leftmost, *from_leftmost, v_leftmost);
CGAL_assertion(res_into_from != EQUAL);
CGAL_assertion(res_from != EQUAL && res_to != EQUAL);
if(res_from == LARGER && res_to == SMALLER)
{
if(cmp_y_at_x_right(*tmp_from_left_most,
*into_left_most,
left_most_v) == LARGER)
{
from_left_most = tmp_from_left_most;
into_left_most = tmp_into_left_most;
}
}
else
if (res_from == SMALLER && res_to == LARGER) {
if (cmp_y_at_x_right(*tmp_into_left_most,
*from_left_most,
left_most_v) == LARGER)
{
from_left_most = tmp_from_left_most;
into_left_most = tmp_into_left_most;
}
}
if (res_into_from == res_from_leftmost_into) {
from_leftmost = from;
into_leftmost = into;
}
}// end for
Comparison_result res = cmp_y_at_x_right(*into_left_most,
*from_left_most,
left_most_v);
into = from;
}
const Point_2& v_leftmost = ctr_v(*from_leftmost, 0);
Comparison_result res =
cmp_y_at_x_right(*into_leftmost, *from_leftmost, v_leftmost);
CGAL_assertion(res != EQUAL);
if(res == SMALLER)
return (CLOCKWISE);
return (COUNTERCLOCKWISE);
return (res == SMALLER) ? CLOCKWISE : COUNTERCLOCKWISE;
}
};

View File

@ -16,10 +16,7 @@
// leda_rational, or Gmpq, or Quotient<MP_float>
typedef CGAL::Exact_rational Number_type;
// instead of
//typedef CGAL::Simple_cartesian<Number_type> Kernel;
// workaround for VC++
struct Kernel : public CGAL::Simple_cartesian<Number_type> {};
typedef CGAL::Simple_cartesian<Number_type> Kernel;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
typedef CGAL::Polygon_with_holes_2<Kernel> Polygon_with_holes_2;

View File

@ -16,10 +16,7 @@
// leda_rational, or Gmpq, or Quotient<MP_float>
typedef CGAL::Exact_rational Number_type;
// instead of
//typedef CGAL::Simple_cartesian<Number_type> Kernel;
// workaround for VC++
struct Kernel : public CGAL::Simple_cartesian<Number_type> {};
typedef CGAL::Simple_cartesian<Number_type> Kernel;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
typedef CGAL::Polygon_with_holes_2<Kernel> Polygon_with_holes_2;

View File

@ -0,0 +1,11 @@
6
0 5
1 3
2 2
0 5
3 1
4 0
0
1

View File

@ -0,0 +1,9 @@
6
2 1
3 0
5 4
2 1
1 3
0 2
0
1

View File

@ -17,10 +17,8 @@
// leda_rational, or Gmpq, or Quotient<MP_float>
typedef CGAL::Exact_rational Number_type;
// instead of
//typedef CGAL::Simple_cartesian<Number_type> Kernel;
// workaround for VC++
struct Kernel : public CGAL::Simple_cartesian<Number_type> {};
typedef CGAL::Simple_cartesian<Number_type> Kernel;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
typedef CGAL::Polygon_with_holes_2<Kernel> Polygon_with_holes_2;

View File

@ -18,10 +18,7 @@
// leda_rational, or Gmpq, or Quotient<MP_float>
typedef CGAL::Exact_rational Number_type;
// instead of
//typedef CGAL::Simple_cartesian<Number_type> Kernel;
// workaround for VC++
struct Kernel : public CGAL::Simple_cartesian<Number_type> {};
typedef CGAL::Simple_cartesian<Number_type> Kernel;
typedef CGAL::Polygon_2<Kernel> Polygon_2;
typedef CGAL::Polygon_with_holes_2<Kernel> Polygon_with_holes_2;

View File

@ -18,10 +18,7 @@
//typedef CGAL::Quotient<CGAL::MP_Float> Number_type;
typedef int Number_type;
// instead of
//typedef CGAL::Simple_cartesian<Number_type> Kernel;
// workaround for VC++
struct Kernel : public CGAL::Simple_cartesian<Number_type> {};
typedef CGAL::Simple_cartesian<Number_type> Kernel;
typedef CGAL::Gps_segment_traits_2<Kernel> Traits;
typedef CGAL::Polygon_set_2<Kernel> Ps;

View File

@ -1,4 +1,6 @@
/*test file for polygon validation. Intended for testing the global functions defined at Gps_polygon_validation.h*/
/* test file for polygon validation. Intended for testing the global functions
* defined at Gps_polygon_validation.h
*/
#include <CGAL/basic.h>
#include <CGAL/assertions_behaviour.h>
@ -7,81 +9,85 @@
#include <CGAL/Cartesian.h>
#include <CGAL/Gps_segment_traits_2.h>
#include <CGAL/Boolean_set_operations_2.h>
#include <CGAL/Boolean_set_operations_2/Gps_polygon_validation.h>
#include <CGAL/Boolean_set_operations_2/Gps_polygon_validation.h>
#include <iterator>
#include <string>
#include <sstream>
#include <iostream>
// leda_rational, or Gmpq, or Quotient<MP_float>
typedef CGAL::Exact_rational Number_type;
typedef CGAL::Cartesian<Number_type> Kernel;
typedef CGAL::Gps_segment_traits_2<Kernel> Traits_2;
typedef Traits_2::Polygon_2 Polygon_2;
typedef Traits_2::Polygon_with_holes_2 Polygon_with_holes_2;
/*test files:
/* test files:
* 1. test1.dat---invalid polygon with holes. The hole is relatively simple
* instead of strictly simple.
* 2. test2.dat---invalid polygon with holes. The hole overlaps the outer
* boundary (the intersection results in a polygon).
* 3. test3.dat---invalid polygon with holes. Two holes intersect (the
* intersection results in a polygon).
* 4. test4.dat---invalid polygon with holes. Two holes intersect (one
* contains the other).
* 5. test5.dat---invalid polygon with holes. Two holes share an edge. (non
* regularized intersection results in an edge).
* 6. test6.dat---invalid polygon with holes. A hole and the outer boundary
* share an edge. (non regularized intersection results in an
* edge).
* 7. test7.dat---invalid polygon with holes. The outer boundary is not
* relatively simple because a "crossover" occurs at an
* intersection
* 8. test8.dat---valid polygon with holes. Outer boundary is relatively
* simple, case 1.
* 9. test9.dat---valid polygon with holes. Outer Boundary and holes are
* pairwise disjoint except on vertices
* 10. test10.dat---valid polygon with holes. Outer boundary is relatively
* simple, case 2.
*
* test an input file. is_valid indicates the input polygon is valid. ErrorMsg
* is displayed if the validation result does't equal is_valid.
*/
1. val_test1.dat - invalid polygon with holes. The hole is relatively simple instead of strictly simple.
2. val_test2.dat - invalid polygon with holes. The hole overlaps the outer boundary (the intersection results in a polygon).
3. val_test3.dat - invalid polygon with holes. Two holes intersect (the intersection results in a polygon).
4. val_test4.dat - invalid polygon with holes. Two holes intersect (one contains the other).
5. val_test5.dat - invalid polygon with holes. Two holes share an edge. (non regularized intersection
results in an edge).
6. val_test6.dat - invalid polygon with holes. A hole and the outer boundary share an edge. (non regularized intersection
results in an edge).
7. val_test7.dat - invalid polygon with holes. The outer boundary is not relatively simple because a "crossover" occurs
at an intersection
8. val_test8.dat - valid polygon with holes. Outer boundary is relatively simple.
9. val_test9.dat - valid polygon with holes. Outer Boundary and holes are pairwise disjoint except on vertices
*/
/*test an input file. isValid indicates the input polygon is valid. ErrorMsg is displayed if the validation result does't equal isValid */
bool testValidationForFile(const char * infilename, std::ofstream & outfile ,
bool isValid)
bool test(const std::string& filename, std::ofstream& outfile)
{
std::ifstream input_file (infilename);
std::ifstream input_file(filename.c_str());
if (! input_file.is_open()) {
std::cerr << "Failed to open the " << infilename <<std::endl;
std::cerr << "Failed to open the " << filename << std::endl;
return (false);
}
// Read a polygon with holes from a file.
Polygon_2 outerP;
unsigned int num_holes;
Polygon_2 outer_pgn;
size_t num_holes;
bool is_valid;
input_file >> outerP;
input_file >> outer_pgn;
input_file >> num_holes;
std::vector<Polygon_2> holes(num_holes);
for (size_t k = 0; k < num_holes; ++k) input_file >> holes[k];
input_file >> is_valid;
std::vector<Polygon_2> holes (num_holes);
unsigned int k;
for (k = 0; k < num_holes; k++)
input_file >> holes[k];
Polygon_with_holes_2 P (outerP, holes.begin(), holes.end());
Traits_2 tr;
bool testValid = CGAL::is_valid_polygon_with_holes(P,tr);
Polygon_with_holes_2 P(outer_pgn, holes.begin(), holes.end());
Traits_2 tr;
bool test_valid = CGAL::is_valid_polygon_with_holes(P, tr);
bool res = true;
if (testValid != isValid) {
res=false;
outfile<< "Error validating " << infilename <<std::endl;
if (test_valid != is_valid) {
res = false;
outfile << "Error validating " << filename <<std::endl;
//outfile << "P = " ;
//print_polygon_with_holes (P);
outfile<<std::endl;
}
outfile << std::endl;
}
input_file.close();
return res;
}
void
special_warnings(const char *,
const char* expr,
const char* file,
int line,
const char* msg )
void special_warnings(const char*, const char* expr, const char* file, int line,
const char* msg)
{
std::cerr << " // CGAL: check violation! THIS MESSAGE IS PROBABLY WANTED." << std::endl
std::cerr << " // CGAL: check violation! THIS MESSAGE IS PROBABLY WANTED."
<< std::endl
<< " // Expression : " << expr << std::endl
<< " // File : " << file << std::endl
<< " // Line : " << line << std::endl
@ -94,42 +100,35 @@ int main()
{
std::cerr << "Modify the w-a-r-n-i-n-g-s handler...\n";
CGAL::set_warning_handler(special_warnings);
std::string testfilePrefix = "data/validation/val_test";
std::string testfileSuffix = ".dat";
const char* outputfilename = "data/validation/validation_test_output.txt";
std::ofstream output_file (outputfilename);
std::string testfile_prefix("data/validation/test");
std::string testfile_suffix(".dat");
const char* output_filename("data/validation/validation_test_output.txt");
std::ofstream output_file (output_filename);
if (! output_file.is_open()) {
std::cerr << "Failed to open the " << outputfilename <<std::endl;
std::cerr << "Failed to open the " << output_filename <<std::endl;
return (1);
}
int result = 0;
for (int i=1;i<10;i++) {
int result = 0;
for (size_t i = 1; i < 11; ++i) {
std::stringstream strs;
std::string si;
strs << i;
strs >> si;
std::string filename = testfilePrefix + si + testfileSuffix;
const char *cfilename = filename.c_str();
bool isValidPgn=false;
if (i>7)
isValidPgn=true;
bool res = testValidationForFile(cfilename, output_file, isValidPgn);
strs >> si;
std::string filename = testfile_prefix + si + testfile_suffix;
bool res = test(filename, output_file);
if (!res) {
std::cout << "test " << i << " failed" << std::endl;
result=1;
}
std::cout << "test " << i << " failed" << std::endl;
result = 1;
}
else {
std::cout <<"test " << i << " succeeded" << std::endl;
std::cout <<"test " << i << " succeeded" << std::endl;
}
}
if (result == 0)
std::cout <<"ALL TESTS SUCCEEDED!" << std::endl;
else
{
std::cout <<"SOME TESTS FAILED" << std::endl;
if (result != 0) {
std::cout << "SOME TESTS FAILED" << std::endl;
return 1;
}
return (0);
std::cout << "ALL TESTS SUCCEEDED!" << std::endl;
return 0;
}

View File

@ -20,7 +20,7 @@
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd
## Assertions ##
\cgalCRPSection{Assertions}
The optimization code uses infix `OPTIMISATION` in the assertions,
e.g. defining the compiler flag
@ -29,7 +29,7 @@ checking off, cf. Section \ref secchecks.
\cgalClassifedRefPages
## Bounding Areas and Volumes ##
\cgalCRPSection{Bounding Areas and Volumes}
- `CGAL::Min_circle_2<Traits>`
- `CGAL::Min_circle_2_traits_2<K>`

View File

@ -39,16 +39,16 @@
\cgalClassifedRefPages
## Concepts ##
\cgalCRPSection{Concepts}
- `BoxIntersectionBox_d`
- `BoxIntersectionTraits_d`
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Box_intersection_d::Box_d<NT,int D,IdPolicy>`
- `CGAL::Box_intersection_d::Box_with_handle_d<NT, int D, Handle, IdPolicy>`
- `CGAL::Box_intersection_d::Box_traits_d<BoxHandle>`
## Functions ##
\cgalCRPSection{Functions}
- `CGAL::box_intersection_d`
- `CGAL::box_self_intersection_d`

View File

@ -128,7 +128,9 @@ if ( CGAL_FOUND )
set(CGAL_IPELETS ${CGAL_IPELETS} circle_pencils)
set(CGAL_IPELETS ${CGAL_IPELETS} hyperbolic)
set(CGAL_IPELETS ${CGAL_IPELETS} distance)
set(CGAL_IPELETS ${CGAL_IPELETS} cone_spanners)
if(CGAL_Core_FOUND)
set(CGAL_IPELETS ${CGAL_IPELETS} cone_spanners)
endif()
if ( IPELET_INSTALL_DIR )
@ -149,7 +151,9 @@ if ( CGAL_FOUND )
endif ()
cgal_add_compilation_test(CGAL_${IPELET})
endforeach(IPELET)
target_link_libraries(CGAL_cone_spanners PRIVATE CGAL::CGAL_Core)
if(CGAL_Core_FOUND)
target_link_libraries(CGAL_cone_spanners PRIVATE CGAL::CGAL_Core)
endif()
#example in doc not installed
add_library(simple_triangulation MODULE simple_triangulation.cpp)
add_to_cached_list(CGAL_EXECUTABLE_TARGETS simple_triangulation)

View File

@ -17,7 +17,7 @@
\cgalClassifedRefPages
## Classes ##
\cgalCRPSection{Classes}
- `CGAL::Ipelet_base<Kernel,int nbf>`
*/

View File

@ -66,20 +66,20 @@ namespace CGAL{
ipe::TSelect get_selection_type() const { return get_IpePage()->primarySelection()==-1 ? ipe::EPrimarySelected : ipe::ESecondarySelected;}
//ipe6 compatibility
void transform_selected_objects_(const IpeMatrix& tfm) const {
for (int i=0;i<get_IpePage()->count();++i)
for (int i=0;i<static_cast<int>(get_IpePage()->count());++i)
if (get_IpePage()->select(i)!=ipe::ENotSelected)
get_IpePage()->transform(i,tfm);
}
void delete_selected_objects_() const {
for (unsigned i=get_IpePage()->count();i>0;--i)
for (unsigned i=static_cast<unsigned>(get_IpePage()->count());i>0;--i)
if (get_IpePage()->select(i-1)!=ipe::ENotSelected)
get_IpePage()->remove(i-1);
}
void group_selected_objects_() const {
ipe::Group* grp=new ipe::Group();
for (unsigned i=get_IpePage()->count();i>0;--i)
for (unsigned i=static_cast<unsigned>(get_IpePage()->count());i>0;--i)
if (get_IpePage()->select(i-1)!=ipe::ENotSelected){
grp->push_back( get_IpePage()->object(i-1)->clone() );
//~ grp->push_back( get_IpePage()->object(i-1) );
@ -276,7 +276,7 @@ public:
return Iso_rectangle_2();
}
for (int i=0;i<get_IpePage()->count();++i){
for (int i=0;i<static_cast<int>(static_cast<int>(get_IpePage()->count()));++i){
if (get_IpePage()->select(i)==ipe::ENotSelected)
continue;
@ -308,7 +308,7 @@ public:
create_polygon_with_holes(bool delete_underlying_polygons=false) const
{
std::list<ipe::SubPath*> SSPqu;
for (int i=0;i<get_IpePage()->count();++i){
for (int i=0;i<static_cast<int>(get_IpePage()->count());++i){
if (get_IpePage()->select(i)!=ipe::ENotSelected && get_IpePage()->object(i)->asPath()->shape().subPath(0)->closed() ){
ipe::SubPath* ssp=new ipe::Curve(*get_IpePage()->object(i)->asPath()->shape().subPath(0)->asCurve());
SSPqu.push_back(ssp);
@ -329,7 +329,7 @@ public:
{
ipe::Vector paper_size=get_paper_size();
ipe::Matrix tfm (1,0,0,1,paper_size.x/2.,paper_size.y/2.);
for (int i=0;i<get_IpePage()->count();++i)
for (int i=0;i<static_cast<int>(get_IpePage()->count());++i)
if (get_IpePage()->select(i)!=ipe::ENotSelected )
get_IpePage()->transform(i,tfm);
}

View File

@ -40,11 +40,11 @@
\cgalClassifedRefPages
## Geometric Concepts ##
\cgalCRPSection{Geometric Concepts}
- `CircularKernel`
### Functors ###
\cgalCRPSubsection{Functors}
- `CircularKernel::ConstructLine_2`
- `CircularKernel::ConstructCircle_2`
@ -80,23 +80,23 @@
- `CircularKernel::Split_2`
- `CircularKernel::GetEquation`
## Geometric Kernels and Classes ##
\cgalCRPSection{Geometric Kernels and Classes}
### Kernels ###
\cgalCRPSubsection{Kernels}
- `CGAL::Circular_kernel_2<Kernel,AlgebraicKernelForCircles>`
- `CGAL::Exact_circular_kernel_2`
### Points ###
\cgalCRPSubsection{Points}
- `CGAL::Circular_arc_point_2<CircularKernel>`
### Arcs ###
\cgalCRPSubsection{Arcs}
- `CGAL::Circular_arc_2<CircularKernel>`
- `CGAL::Line_arc_2<CircularKernel>`
## Geometric Global Functions ##
\cgalCRPSection{Geometric Global Functions}
- \link compare_x_circular_grp `CGAL::compare_x()` \endlink
- \link compare_y_circular_grp `CGAL::compare_y()` \endlink
@ -114,11 +114,11 @@
- `CGAL::make_x_monotone()`
- `CGAL::make_xy_monotone()`
## Algebraic Concepts ##
\cgalCRPSection{Algebraic Concepts}
- `AlgebraicKernelForCircles`
### Functors ###
\cgalCRPSubsection{Functors}
- `AlgebraicKernelForCircles::ConstructPolynomial_1_2`
@ -131,18 +131,18 @@
- `AlgebraicKernelForCircles::YCriticalPoints`
- `AlgebraicKernelForCircles::Solve`
## Algebraic %Kernel and Classes ##
\cgalCRPSection{Algebraic %Kernel and Classes}
### %Kernel ###
\cgalCRPSubsection{%Kernel}
- `CGAL::Algebraic_kernel_for_circles_2_2<RT>`
### Polynomials ###
\cgalCRPSubsection{Polynomials}
- `CGAL::Polynomial_1_2<RT>`
- `CGAL::Polynomial_for_circles_2_2<FT>`
### Roots of Polynomials ###
\cgalCRPSubsection{Roots of Polynomials}
- `CGAL::Sqrt_extension<NT,ROOT>`
- `CGAL::Root_for_circles_2_2<FT>`

View File

@ -1,5 +1,5 @@
#include <CGAL/Exact_circular_kernel_2.h>
#include <CGAL/point_generators_2.h>
#include <iostream>
typedef CGAL::Exact_circular_kernel_2 Circular_k;

View File

@ -1,5 +1,6 @@
#include <CGAL/Exact_circular_kernel_2.h>
#include <CGAL/point_generators_2.h>
#include <iostream>
typedef CGAL::Exact_circular_kernel_2 Circular_k;

View File

@ -11,11 +11,13 @@ find_package(CGAL QUIET)
if ( CGAL_FOUND )
include_directories (BEFORE include)
# The following `include_directories` is used in the git layout
include_directories (BEFORE ../../../Kernel_23/test/Kernel_23/include)
# The following `include_directories` is used in the layout of the
# internal releases tarballs
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_Lazy_circular_kernel.cpp" )

View File

@ -26,11 +26,7 @@
#include <CGAL/internal/disable_deprecation_warnings_and_errors.h>
#include <CGAL/basic.h>
#include <CGAL/Exact_circular_kernel_2.h>
#include <CGAL/intersections.h>
#include <CGAL/Circular_kernel_intersections.h>
#include <iostream>
typedef CGAL::Exact_circular_kernel_2 CK;

View File

@ -32,8 +32,6 @@
#include <CGAL/MP_Float.h>
#include <CGAL/Quotient.h>
#include <CGAL/Filtered_bbox_circular_kernel_2.h>
#include <CGAL/intersections.h>
#include <iostream>
typedef CGAL::MP_Float RT;
typedef CGAL::Quotient<RT> NT1;

Some files were not shown because too many files have changed in this diff Show More