diff --git a/Poisson_surface_reconstruction_3/include/CGAL/Mesh_3/Poisson_mesh_traits_generator_3.h b/Poisson_surface_reconstruction_3/include/CGAL/Mesh_3/Poisson_mesh_traits_generator_3.h new file mode 100644 index 00000000000..b92b6488db8 --- /dev/null +++ b/Poisson_surface_reconstruction_3/include/CGAL/Mesh_3/Poisson_mesh_traits_generator_3.h @@ -0,0 +1,45 @@ +// Copyright (c) 2006-2007, 2024 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Laurent Rineau, Jane Tournois + +#ifndef CGAL_MESH_3_POISSON_MESH_TRAITS_GENERATOR_3_H +#define CGAL_MESH_3_POISSON_MESH_TRAITS_GENERATOR_3_H + +#include + + +#include + +namespace CGAL { + +template +class Sphere_3; + +/** Default traits class. + * Partial specialization will be in other headers +*/ +template +struct Poisson_mesh_traits_generator_3 +{ + typedef typename Surface::Surface_mesher_traits_3 Type; + typedef Type type; // for Boost compatibility (meta-programming) +}; + + // specialization for Kernel::Sphere_3 +template +struct Poisson_mesh_traits_generator_3 > +{ + typedef Surface_mesher::Poisson_sphere_oracle_3 Type; + typedef Type type; // for Boost compatibility (meta-programming) +}; + +} // end namespace CGAL + +#endif // CGAL_MESH_3_POISSON_MESH_TRAITS_GENERATOR_3_H diff --git a/Poisson_surface_reconstruction_3/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h b/Poisson_surface_reconstruction_3/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h index e43214ce663..5ebd27391d8 100644 --- a/Poisson_surface_reconstruction_3/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h +++ b/Poisson_surface_reconstruction_3/include/CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h @@ -17,9 +17,8 @@ #include -#include #include -#include +#include #include #include #include @@ -56,7 +55,7 @@ namespace CGAL { Return_min, class Point_creator = Creator_uniform_3, - class Visitor = Null_oracle_visitor + class Visitor = Poisson_null_oracle_visitor > class Poisson_implicit_surface_oracle_3 { @@ -68,7 +67,7 @@ namespace CGAL { Point_creator, Visitor> Self; - typedef Sphere_oracle_3 Sphere_oracle; + typedef Poisson_sphere_oracle_3 Sphere_oracle; typedef typename GT::Point_3 Point; diff --git a/Poisson_surface_reconstruction_3/include/CGAL/poisson_refine_triangulation.h b/Poisson_surface_reconstruction_3/include/CGAL/poisson_refine_triangulation.h index c103468f3f1..13f08e45727 100644 --- a/Poisson_surface_reconstruction_3/include/CGAL/poisson_refine_triangulation.h +++ b/Poisson_surface_reconstruction_3/include/CGAL/poisson_refine_triangulation.h @@ -21,7 +21,7 @@ #include #include #include -#include +#include namespace CGAL { @@ -142,7 +142,7 @@ class Poisson_mesher_level_impl_base : template ::type, + typename Oracle = typename CGAL::Poisson_mesh_traits_generator_3::type, typename PreviousLevel = Null_mesher_level > class Poisson_mesher_level : @@ -220,7 +220,7 @@ unsigned int poisson_refine_triangulation( , Sizing_field , Second_sizing_field > Tets_criteria; - typedef typename CGAL::Surface_mesh_traits_generator_3::type Oracle; + typedef typename CGAL::Poisson_mesh_traits_generator_3::type Oracle; typedef Poisson_mesher_level Refiner;