Merge branch 'CGAL-named_function_parameters-4.14' into master

Conflicts resolved by hand
This commit is contained in:
Sébastien Loriot 2019-07-28 22:57:14 +02:00
commit 25a05e9f4c
91 changed files with 1202 additions and 1097 deletions

View File

@ -33,7 +33,7 @@
*/ */
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <boost/graph/graph_concepts.hpp> #include <boost/graph/graph_concepts.hpp>
#include <CGAL/boost/iterator/counting_iterator.hpp> #include <CGAL/boost/iterator/counting_iterator.hpp>

View File

@ -34,7 +34,7 @@
*/ */
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Arrangement_2.h> #include <CGAL/Arrangement_2.h>
#include <CGAL/Arrangement_2/graph_traits_dual.h> #include <CGAL/Arrangement_2/graph_traits_dual.h>

View File

@ -34,7 +34,7 @@
*/ */
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Arrangement_on_surface_2.h> #include <CGAL/Arrangement_on_surface_2.h>
#include <CGAL/Arrangement_2/graph_traits_dual.h> #include <CGAL/Arrangement_2/graph_traits_dual.h>

View File

@ -35,7 +35,7 @@
*/ */
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Arrangement_on_surface_with_history_2.h> #include <CGAL/Arrangement_on_surface_with_history_2.h>
#include <CGAL/Arrangement_2/graph_traits_dual.h> #include <CGAL/Arrangement_2/graph_traits_dual.h>

View File

@ -35,7 +35,7 @@
*/ */
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Arrangement_with_history_2.h> #include <CGAL/Arrangement_with_history_2.h>
#include <CGAL/Arrangement_2/graph_traits_dual.h> #include <CGAL/Arrangement_2/graph_traits_dual.h>

View File

@ -24,7 +24,7 @@
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
#include <CGAL/boost/graph/properties.h> #include <CGAL/boost/graph/properties.h>
#include <CGAL/boost/graph/iterator.h> #include <CGAL/boost/graph/iterator.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <CGAL/Dynamic_property_map.h> #include <CGAL/Dynamic_property_map.h>
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
@ -146,9 +146,9 @@ struct Face_filtered_graph
#endif #endif
) )
: _graph(const_cast<Graph&>(graph)) : _graph(const_cast<Graph&>(graph))
, fimap(boost::choose_param(get_param(np, internal_np::face_index), get_const_property_map(face_index, graph))) , fimap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index), get_const_property_map(face_index, graph)))
, vimap(boost::choose_param(get_param(np, boost::vertex_index), get_const_property_map(boost::vertex_index, graph))) , vimap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_index), get_const_property_map(boost::vertex_index, graph)))
, himap(boost::choose_param(get_param(np, internal_np::halfedge_index), get_const_property_map(halfedge_index, graph))) , himap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::halfedge_index), get_const_property_map(halfedge_index, graph)))
{ {
set_selected_faces(selected_face_patch_indices, face_patch_index_map); set_selected_faces(selected_face_patch_indices, face_patch_index_map);
} }
@ -201,9 +201,9 @@ struct Face_filtered_graph
const CGAL_BGL_NP_CLASS& np const CGAL_BGL_NP_CLASS& np
) )
: _graph(const_cast<Graph&>(graph)) : _graph(const_cast<Graph&>(graph))
, fimap(boost::choose_param(get_param(np, internal_np::face_index), get_const_property_map(face_index, graph))) , fimap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index), get_const_property_map(face_index, graph)))
, vimap(boost::choose_param(get_param(np, boost::vertex_index), get_const_property_map(boost::vertex_index, graph))) , vimap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_index), get_const_property_map(boost::vertex_index, graph)))
, himap(boost::choose_param(get_param(np, internal_np::halfedge_index), get_const_property_map(halfedge_index, graph))) , himap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::halfedge_index), get_const_property_map(halfedge_index, graph)))
{ {
set_selected_faces(selected_face_patch_index, face_patch_index_map); set_selected_faces(selected_face_patch_index, face_patch_index_map);
} }
@ -246,9 +246,9 @@ struct Face_filtered_graph
const FaceRange& selected_faces, const FaceRange& selected_faces,
const CGAL_BGL_NP_CLASS& np) const CGAL_BGL_NP_CLASS& np)
: _graph(const_cast<Graph&>(graph)) : _graph(const_cast<Graph&>(graph))
, fimap(boost::choose_param(get_param(np, internal_np::face_index), get_const_property_map(face_index, graph))) , fimap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index), get_const_property_map(face_index, graph)))
, vimap(boost::choose_param(get_param(np, boost::vertex_index), get_const_property_map(boost::vertex_index, graph))) , vimap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_index), get_const_property_map(boost::vertex_index, graph)))
, himap(boost::choose_param(get_param(np, internal_np::halfedge_index), get_const_property_map(halfedge_index, graph))) , himap(parameters::choose_parameter(parameters::get_parameter(np, internal_np::halfedge_index), get_const_property_map(halfedge_index, graph)))
{ {
set_selected_faces(selected_faces); set_selected_faces(selected_faces);
} }

View File

@ -26,7 +26,7 @@
#include <CGAL/boost/graph/copy_face_graph.h> #include <CGAL/boost/graph/copy_face_graph.h>
#include <CGAL/boost/graph/Face_filtered_graph.h> #include <CGAL/boost/graph/Face_filtered_graph.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
@ -51,8 +51,8 @@ void partition_dual_graph(const TriangleMesh& tm,
CGAL_precondition(CGAL::is_triangle_mesh(tm)); CGAL_precondition(CGAL::is_triangle_mesh(tm));
CGAL_precondition_msg(nparts > 1, ("Partitioning requires a number of parts > 1")); CGAL_precondition_msg(nparts > 1, ("Partitioning requires a number of parts > 1"));
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
@ -60,7 +60,7 @@ void partition_dual_graph(const TriangleMesh& tm,
// vertex index map // vertex index map
typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<TriangleMesh, NamedParameters>::type Indices; typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<TriangleMesh, NamedParameters>::type Indices;
Indices indices = choose_param(get_param(np, internal_np::vertex_index), Indices indices = choose_parameter(get_parameter(np, internal_np::vertex_index),
get_const_property_map(boost::vertex_index, tm)); get_const_property_map(boost::vertex_index, tm));
idx_t nn = static_cast<idx_t>(num_vertices(tm)); idx_t nn = static_cast<idx_t>(num_vertices(tm));
@ -119,8 +119,8 @@ void partition_dual_graph(const TriangleMesh& tm,
Output_vertex_partition_ids vo; Output_vertex_partition_ids vo;
Output_face_partition_ids fo; Output_face_partition_ids fo;
vo(tm, indices, npart, get_param(np, internal_np::vertex_partition_id)); vo(tm, indices, npart, get_parameter(np, internal_np::vertex_partition_id));
fo(tm, epart, get_param(np, internal_np::face_partition_id)); fo(tm, epart, get_parameter(np, internal_np::face_partition_id));
delete[] eptr; delete[] eptr;
delete[] eind; delete[] eind;
@ -131,7 +131,7 @@ void partition_dual_graph(const TriangleMesh& tm,
template<typename TriangleMesh, typename NamedParameters> template<typename TriangleMesh, typename NamedParameters>
void partition_dual_graph(const TriangleMesh& tm, int nparts, void partition_dual_graph(const TriangleMesh& tm, int nparts,
const boost::param_not_found, // no METIS options were passed const internal_np::Param_not_found, // no METIS options were passed
const NamedParameters& np) const NamedParameters& np)
{ {
idx_t options[METIS_NOPTIONS]; idx_t options[METIS_NOPTIONS];
@ -180,9 +180,9 @@ void partition_dual_graph(const TriangleMesh& tm, int nparts,
template<typename TriangleMesh, typename NamedParameters> template<typename TriangleMesh, typename NamedParameters>
void partition_dual_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np) void partition_dual_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np)
{ {
using boost::get_param; using parameters::get_parameter;
return partition_dual_graph(tm, nparts, get_param(np, internal_np::METIS_options), np); return partition_dual_graph(tm, nparts, get_parameter(np, internal_np::METIS_options), np);
} }
template<typename TriangleMesh> template<typename TriangleMesh>

View File

@ -24,7 +24,7 @@
#include <CGAL/boost/graph/copy_face_graph.h> #include <CGAL/boost/graph/copy_face_graph.h>
#include <CGAL/boost/graph/Face_filtered_graph.h> #include <CGAL/boost/graph/Face_filtered_graph.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
@ -44,7 +44,7 @@ struct Output_vertex_partition_ids
{ {
template<typename TriangleMesh, typename Indices> template<typename TriangleMesh, typename Indices>
void operator()(const TriangleMesh&, const Indices, void operator()(const TriangleMesh&, const Indices,
idx_t const * const, boost::param_not_found) { } idx_t const * const, internal_np::Param_not_found) { }
template<typename TriangleMesh, template<typename TriangleMesh,
typename Indices, typename Indices,
@ -64,7 +64,7 @@ struct Output_face_partition_ids
{ {
template<typename TriangleMesh> template<typename TriangleMesh>
void operator()(const TriangleMesh&, void operator()(const TriangleMesh&,
idx_t const * const, boost::param_not_found) { } idx_t const * const, internal_np::Param_not_found) { }
template<typename TriangleMesh, typename FacePartitionIDPmap> template<typename TriangleMesh, typename FacePartitionIDPmap>
void operator()(const TriangleMesh& tm, idx_t const * const epart, void operator()(const TriangleMesh& tm, idx_t const * const epart,
@ -86,8 +86,8 @@ void partition_graph(const TriangleMesh& tm,
CGAL_precondition(CGAL::is_triangle_mesh(tm)); CGAL_precondition(CGAL::is_triangle_mesh(tm));
CGAL_precondition_msg(nparts > 1, ("Partitioning requires a number of parts > 1")); CGAL_precondition_msg(nparts > 1, ("Partitioning requires a number of parts > 1"));
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
@ -95,7 +95,7 @@ void partition_graph(const TriangleMesh& tm,
//Vertex index map //Vertex index map
typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<TriangleMesh, NamedParameters>::type Indices; typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<TriangleMesh, NamedParameters>::type Indices;
Indices indices = choose_param(get_param(np, internal_np::vertex_index), Indices indices = choose_parameter(get_parameter(np, internal_np::vertex_index),
get_const_property_map(boost::vertex_index, tm)); get_const_property_map(boost::vertex_index, tm));
idx_t nn = static_cast<idx_t>(num_vertices(tm)); idx_t nn = static_cast<idx_t>(num_vertices(tm));
@ -151,8 +151,8 @@ void partition_graph(const TriangleMesh& tm,
Output_vertex_partition_ids vo; Output_vertex_partition_ids vo;
Output_face_partition_ids fo; Output_face_partition_ids fo;
vo(tm, indices, npart, get_param(np, internal_np::vertex_partition_id)); vo(tm, indices, npart, get_parameter(np, internal_np::vertex_partition_id));
fo(tm, epart, get_param(np, internal_np::face_partition_id)); fo(tm, epart, get_parameter(np, internal_np::face_partition_id));
delete[] eptr; delete[] eptr;
delete[] eind; delete[] eind;
@ -163,7 +163,7 @@ void partition_graph(const TriangleMesh& tm,
template<typename TriangleMesh, typename NamedParameters> template<typename TriangleMesh, typename NamedParameters>
void partition_graph(const TriangleMesh& tm, int nparts, void partition_graph(const TriangleMesh& tm, int nparts,
const boost::param_not_found, // no METIS options were passed const internal_np::Param_not_found, // no METIS options were passed
const NamedParameters& np) const NamedParameters& np)
{ {
idx_t options[METIS_NOPTIONS]; idx_t options[METIS_NOPTIONS];
@ -212,9 +212,9 @@ void partition_graph(const TriangleMesh& tm, int nparts,
template<typename TriangleMesh, typename NamedParameters> template<typename TriangleMesh, typename NamedParameters>
void partition_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np) void partition_graph(const TriangleMesh& tm, int nparts, const NamedParameters& np)
{ {
using boost::get_param; using parameters::get_parameter;
return partition_graph(tm, nparts, get_param(np, internal_np::METIS_options), np); return partition_graph(tm, nparts, get_parameter(np, internal_np::METIS_options), np);
} }
template<typename TriangleMesh> template<typename TriangleMesh>

View File

@ -0,0 +1,237 @@
// Copyright (c) 2019 GeometryFactory (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; either version 3 of the License,
// or (at your option) any later version.
//
// 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$
// SPDX-License-Identifier: LGPL-3.0+
//
//
// Author(s) : Sebastien Loriot
#ifndef CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H
#define CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H
#include <CGAL/basic.h>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/if.hpp>
#define CGAL_BGL_NP_TEMPLATE_PARAMETERS T, typename Tag, typename Base
#define CGAL_BGL_NP_CLASS CGAL::Named_function_parameters<T,Tag,Base>
namespace CGAL {
namespace internal_np{
struct No_property {};
struct Param_not_found {};
enum all_default_t { all_default };
// define enum types and values for new named parameters
#define CGAL_add_named_parameter(X, Y, Z) \
enum X { Y };
#include <CGAL/boost/graph/parameters_interface.h>
#undef CGAL_add_named_parameter
template <typename T, typename Tag, typename Base>
struct Named_params_impl : Base
{
T v; // copy of the parameter
Named_params_impl(T v, const Base& b)
: Base(b)
, v(v)
{}
};
// partial specialization for base class of the recursive nesting
template <typename T, typename Tag>
struct Named_params_impl<T, Tag, No_property>
{
T v; // copy of the parameter
Named_params_impl(T v)
: v(v)
{}
};
// Helper class to get the type of a named parameter pack given a query tag
template <typename NP, typename Query_tag>
struct Get_param;
template< typename T, typename Tag, typename Query_tag>
struct Get_param< Named_params_impl<T, Tag, No_property>, Query_tag >
{
typedef Param_not_found type;
};
template< typename T, typename Tag, typename Base>
struct Get_param< Named_params_impl<T, Tag, Base>, Tag >
{
typedef T type;
};
template< typename T, typename Tag>
struct Get_param< Named_params_impl<T, Tag, No_property>, Tag >
{
typedef T type;
};
template< typename T, typename Tag, typename Base, typename Query_tag>
struct Get_param< Named_params_impl<T,Tag,Base>, Query_tag>
{
typedef typename Get_param<typename Base::base, Query_tag>::type type;
};
// helper to choose the default
template <typename Query_tag, typename NP, typename D>
struct Lookup_named_param_def
{
typedef typename internal_np::Get_param<typename NP::base, Query_tag>::type NP_type;
typedef typename boost::mpl::if_<
boost::is_same<NP_type, internal_np::Param_not_found>,
D, NP_type>::type
type;
};
// helper function to extract the value from a named parameter pack given a query tag
template <typename T, typename Tag, typename Base>
T get_parameter_impl(const Named_params_impl<T, Tag, Base>& np, Tag)
{
return np.v;
}
template< typename T, typename Tag, typename Query_tag>
Param_not_found get_parameter_impl(const Named_params_impl<T, Tag, No_property>&, Query_tag)
{
return Param_not_found();
}
template< typename T, typename Tag>
T get_parameter_impl(const Named_params_impl<T, Tag, No_property>& np, Tag)
{
return np.v;
};
template <typename T, typename Tag, typename Base, typename Query_tag>
typename Get_param<Named_params_impl<T, Tag, Base>, Query_tag>::type
get_parameter_impl(const Named_params_impl<T, Tag, Base>& np, Query_tag tag)
{
CGAL_static_assertion( (!boost::is_same<Query_tag, Tag>::value) );
return get_parameter_impl(static_cast<const typename Base::base&>(np), tag);
}
} // end of internal_np namespace
template <typename T, typename Tag, typename Base = internal_np::No_property>
struct Named_function_parameters
: internal_np::Named_params_impl<T, Tag, Base>
{
typedef internal_np::Named_params_impl<T, Tag, Base> base;
typedef Named_function_parameters<T, Tag, Base> self;
Named_function_parameters(T v = T()) : base(v) {}
Named_function_parameters(T v, const Base& b) : base(v, b) {}
Named_function_parameters<bool, internal_np::all_default_t, self>
all_default() const
{
typedef Named_function_parameters<bool, internal_np::all_default_t, self> Params;
return Params(*this);
}
// create the functions for new named parameters and the one imported boost
// used to concatenate several parameters
#define CGAL_add_named_parameter(X, Y, Z) \
template<typename K> \
Named_function_parameters<K, internal_np::X, self> \
Z(const K& k) const \
{ \
typedef Named_function_parameters<K, internal_np::X, self> Params;\
return Params(k, *this); \
}
#include <CGAL/boost/graph/parameters_interface.h>
#undef CGAL_add_named_parameter
};
namespace parameters {
Named_function_parameters<bool, internal_np::all_default_t>
inline all_default()
{
typedef Named_function_parameters<bool, internal_np::all_default_t> Params;
return Params();
}
template <typename T, typename Tag, typename Base>
Named_function_parameters<T,Tag,Base>
inline no_parameters(Named_function_parameters<T,Tag,Base>)
{
typedef Named_function_parameters<T,Tag,Base> Params;
return Params();
}
// define free functions for named parameters
#define CGAL_add_named_parameter(X, Y, Z) \
template <typename K> \
Named_function_parameters<K, internal_np::X> \
Z(K const& p) \
{ \
typedef Named_function_parameters<K, internal_np::X> Params;\
return Params(p); \
}
#include <CGAL/boost/graph/parameters_interface.h>
#undef CGAL_add_named_parameter
// function to extract a parameter
template <typename T, typename Tag, typename Base, typename Query_tag>
typename internal_np::Get_param<internal_np::Named_params_impl<T, Tag, Base>, Query_tag>::type
get_parameter(const Named_function_parameters<T, Tag, Base>& np, Query_tag tag)
{
return internal_np::get_parameter_impl(static_cast<const internal_np::Named_params_impl<T, Tag, Base>&>(np), tag);
}
template <typename D>
D choose_parameter(const internal_np::Param_not_found&, const D& d)
{
return d;
}
template <typename T, typename D>
const T&
choose_parameter(const T& t, const D&)
{
return t;
}
bool inline is_default_parameter(const internal_np::Param_not_found&)
{
return true;
}
template <class T>
bool is_default_parameter(const T&)
{
return false;
}
} // end of parameters namespace
} //namespace CGAL
#endif // CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP

View File

@ -1,23 +0,0 @@
// Copyright (c) 2017 GeometryFactory (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; either version 3 of the License,
// or (at your option) any later version.
//
// 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$
// SPDX-License-Identifier: LGPL-3.0+
//
//
// Author(s) : Maxime Gimeno
// List the named parameters imported from boost we are using in CGAL
CGAL_add_named_parameter(vertex_index_t, vertex_index, vertex_index_map)
CGAL_add_named_parameter(graph_visitor_t, graph_visitor, visitor)

View File

@ -29,7 +29,7 @@
#include <CGAL/boost/graph/Euler_operations.h> #include <CGAL/boost/graph/Euler_operations.h>
#include <CGAL/boost/graph/iterator.h> #include <CGAL/boost/graph/iterator.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/property_map.h> #include <CGAL/property_map.h>
#include <boost/unordered_map.hpp> #include <boost/unordered_map.hpp>
@ -248,7 +248,7 @@ boost::function_output_iterator<Output_iterator_functor<PMAP> > make_functor(PMA
return boost::make_function_output_iterator(Output_iterator_functor<PMAP>(map)); return boost::make_function_output_iterator(Output_iterator_functor<PMAP>(map));
} }
inline Emptyset_iterator make_functor(const boost::param_not_found&) inline Emptyset_iterator make_functor(const internal_np::Param_not_found&)
{ {
return Emptyset_iterator(); return Emptyset_iterator();
} }
@ -332,26 +332,27 @@ template <typename SourceMesh, typename TargetMesh,
> >
void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, void copy_face_graph(const SourceMesh& sm, TargetMesh& tm,
#ifndef DOXYGEN_RUNNING #ifndef DOXYGEN_RUNNING
const CGAL::cgal_bgl_named_params<T1,Tag1,Base1>& np1, const CGAL::Named_function_parameters<T1,Tag1,Base1>& np1,
const CGAL::cgal_bgl_named_params<T2,Tag2,Base2>& np2 const CGAL::Named_function_parameters<T2,Tag2,Base2>& np2
#else #else
const NamedParameters1& np1, const NamedParameters1& np1,
const NamedParameters2& np2 const NamedParameters2& np2
#endif #endif
) )
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
internal::copy_face_graph(sm, tm, internal::copy_face_graph(sm, tm,
CGAL::graph_has_property<SourceMesh,boost::halfedge_index_t>(), CGAL::graph_has_property<SourceMesh,boost::halfedge_index_t>(),
choose_param(get_param(np1, internal_np::vertex_to_vertex_output_iterator), choose_parameter(get_parameter(np1, internal_np::vertex_to_vertex_output_iterator),
impl::make_functor(get_param(np1, internal_np::vertex_to_vertex_map))), impl::make_functor(get_parameter(np1, internal_np::vertex_to_vertex_map))),
choose_param(get_param(np1, internal_np::halfedge_to_halfedge_output_iterator), choose_parameter(get_parameter(np1, internal_np::halfedge_to_halfedge_output_iterator),
impl::make_functor(get_param(np1, internal_np::halfedge_to_halfedge_map))), impl::make_functor(get_parameter(np1, internal_np::halfedge_to_halfedge_map))),
choose_param(get_param(np1, internal_np::face_to_face_output_iterator), choose_parameter(get_parameter(np1, internal_np::face_to_face_output_iterator),
impl::make_functor(get_param(np1, internal_np::face_to_face_map))), impl::make_functor(get_parameter(np1, internal_np::face_to_face_map))),
choose_param(get_param(np1, internal_np::vertex_point), choose_parameter(get_parameter(np1, internal_np::vertex_point),
get(vertex_point, sm)), get(vertex_point, sm)),
choose_param(get_param(np2, internal_np::vertex_point), choose_parameter(get_parameter(np2, internal_np::vertex_point),
get(vertex_point, tm))); get(vertex_point, tm)));
} }
@ -364,7 +365,7 @@ void copy_face_graph(const SourceMesh& sm, TargetMesh& tm)
template <typename SourceMesh, typename TargetMesh, template <typename SourceMesh, typename TargetMesh,
typename T, typename Tag, typename Base > typename T, typename Tag, typename Base >
void copy_face_graph(const SourceMesh& sm, TargetMesh& tm, void copy_face_graph(const SourceMesh& sm, TargetMesh& tm,
const CGAL::cgal_bgl_named_params<T,Tag,Base>& np) const CGAL::Named_function_parameters<T,Tag,Base>& np)
{ {
copy_face_graph(sm, tm, np, parameters::all_default()); copy_face_graph(sm, tm, np, parameters::all_default());
} }

View File

@ -23,7 +23,7 @@
#define CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H #define CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H
// This will push/pop a VC15 warning // This will push/pop a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <boost/version.hpp> #include <boost/version.hpp>
#include <climits> #include <climits>

View File

@ -19,7 +19,7 @@
// Author(s) : Andreas Fabri, Philipp Moeller // Author(s) : Andreas Fabri, Philipp Moeller
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <boost/graph/graph_traits.hpp> #include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp> #include <boost/graph/properties.hpp>

View File

@ -32,7 +32,7 @@
#include <CGAL/boost/graph/Euler_operations.h> #include <CGAL/boost/graph/Euler_operations.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/IO/write_vtk.h> #include <CGAL/IO/write_vtk.h>
namespace CGAL { namespace CGAL {
@ -55,8 +55,11 @@ bool write_wrl(std::ostream& os,
typedef typename boost::graph_traits<FaceGraph>::face_descriptor face_descriptor; typedef typename boost::graph_traits<FaceGraph>::face_descriptor face_descriptor;
typedef typename boost::graph_traits<FaceGraph>::vertices_size_type vertices_size_type; typedef typename boost::graph_traits<FaceGraph>::vertices_size_type vertices_size_type;
using parameters::get_parameter;
using parameters::choose_parameter;
typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::const_type typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, g)); get_const_property_map(CGAL::vertex_point, g));
boost::container::flat_map<vertex_descriptor,vertices_size_type> reindex; boost::container::flat_map<vertex_descriptor,vertices_size_type> reindex;
@ -142,8 +145,11 @@ bool write_off(std::ostream& os,
typedef typename boost::graph_traits<FaceGraph>::vertices_size_type vertices_size_type; typedef typename boost::graph_traits<FaceGraph>::vertices_size_type vertices_size_type;
typedef typename boost::graph_traits<FaceGraph>::faces_size_type faces_size_type; typedef typename boost::graph_traits<FaceGraph>::faces_size_type faces_size_type;
using parameters::choose_parameter;
using parameters::get_parameter;
typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::const_type typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, g)); get_const_property_map(CGAL::vertex_point, g));
vertices_size_type nv = static_cast<vertices_size_type>(std::distance(vertices(g).first, vertices(g).second)); vertices_size_type nv = static_cast<vertices_size_type>(std::distance(vertices(g).first, vertices(g).second));
faces_size_type nf = static_cast<faces_size_type>(std::distance(faces(g).first, faces(g).second)); faces_size_type nf = static_cast<faces_size_type>(std::distance(faces(g).first, faces(g).second));
@ -258,6 +264,8 @@ bool read_off(std::istream& is,
NamedParameters np) NamedParameters np)
{ {
using namespace internal::read_off_tools; using namespace internal::read_off_tools;
using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename boost::graph_traits<FaceGraph>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<FaceGraph>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<FaceGraph>::vertices_size_type vertices_size_type; typedef typename boost::graph_traits<FaceGraph>::vertices_size_type vertices_size_type;
@ -266,7 +274,7 @@ bool read_off(std::istream& is,
typedef typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::type Vpm;
typedef typename boost::property_traits<Vpm>::value_type Point_3; typedef typename boost::property_traits<Vpm>::value_type Point_3;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, g)); get_property_map(CGAL::vertex_point, g));
vertices_size_type nv, nvf; vertices_size_type nv, nvf;
faces_size_type nf; faces_size_type nf;
@ -369,7 +377,10 @@ bool write_inp(std::ostream& os,
typedef typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::const_type VPM; typedef typename Polygon_mesh_processing::GetVertexPointMap<FaceGraph, NamedParameters>::const_type VPM;
typedef typename boost::property_traits<VPM>::value_type Point_3; typedef typename boost::property_traits<VPM>::value_type Point_3;
VPM vpm = choose_param(get_param(np, internal_np::vertex_point), using parameters::choose_parameter;
using parameters::get_parameter;
VPM vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, g)); get_const_property_map(CGAL::vertex_point, g));
os << "*Part, name=" << name << "\n*Node\n"; os << "*Part, name=" << name << "\n*Node\n";
@ -416,8 +427,10 @@ write_polys(std::ostream& os,
typedef typename boost::graph_traits<Mesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<Mesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<Mesh>::face_iterator face_iterator; typedef typename boost::graph_traits<Mesh>::face_iterator face_iterator;
typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<Mesh, NamedParameters>::type Vimap; typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<Mesh, NamedParameters>::type Vimap;
Vimap V = choose_param(get_param(np, CGAL::internal_np::vertex_index), using parameters::get_parameter;
get_const_property_map(CGAL::internal_np::vertex_index, mesh)); using parameters::choose_parameter;
Vimap V = choose_parameter(get_parameter(np, internal_np::vertex_index),
get_const_property_map(boost::vertex_index, mesh));
std::vector<std::size_t> connectivity_table; std::vector<std::size_t> connectivity_table;
std::vector<std::size_t> offsets; std::vector<std::size_t> offsets;
@ -451,8 +464,10 @@ write_polys_tag(std::ostream& os,
typedef typename boost::graph_traits<Mesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<Mesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<Mesh>::face_iterator face_iterator; typedef typename boost::graph_traits<Mesh>::face_iterator face_iterator;
typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<Mesh, NamedParameters>::type Vimap; typedef typename CGAL::Polygon_mesh_processing::GetVertexIndexMap<Mesh, NamedParameters>::type Vimap;
Vimap V = choose_param(get_param(np, CGAL::internal_np::vertex_index), using parameters::get_parameter;
get_const_property_map(CGAL::internal_np::vertex_index, mesh)); using parameters::choose_parameter;
Vimap V = choose_parameter(get_parameter(np, internal_np::vertex_index),
get_const_property_map(boost::vertex_index, mesh));
std::string formatattribute = std::string formatattribute =
binary ? " format=\"appended\"" : " format=\"ascii\""; binary ? " format=\"appended\"" : " format=\"ascii\"";
@ -540,7 +555,9 @@ write_points_tag(std::ostream& os,
{ {
typedef typename boost::graph_traits<Mesh>::vertex_iterator vertex_iterator; typedef typename boost::graph_traits<Mesh>::vertex_iterator vertex_iterator;
typedef typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Mesh, NamedParameters>::const_type Vpmap; typedef typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Mesh, NamedParameters>::const_type Vpmap;
Vpmap vpm = choose_param(get_param(np, CGAL::vertex_point), using parameters::get_parameter;
using parameters::choose_parameter;
Vpmap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, mesh)); get_const_property_map(CGAL::vertex_point, mesh));
typedef typename boost::property_traits<Vpmap>::value_type Point_t; typedef typename boost::property_traits<Vpmap>::value_type Point_t;
typedef typename CGAL::Kernel_traits<Point_t>::Kernel Gt; typedef typename CGAL::Kernel_traits<Point_t>::Kernel Gt;
@ -583,7 +600,9 @@ write_polys_points(std::ostream& os,
{ {
typedef typename boost::graph_traits<Mesh>::vertex_iterator vertex_iterator; typedef typename boost::graph_traits<Mesh>::vertex_iterator vertex_iterator;
typedef typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Mesh, NamedParameters>::const_type Vpmap; typedef typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Mesh, NamedParameters>::const_type Vpmap;
Vpmap vpm = choose_param(get_param(np, CGAL::vertex_point), using parameters::get_parameter;
using parameters::choose_parameter;
Vpmap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, mesh)); get_const_property_map(CGAL::vertex_point, mesh));
typedef typename boost::property_traits<Vpmap>::value_type Point_t; typedef typename boost::property_traits<Vpmap>::value_type Point_t;
typedef typename CGAL::Kernel_traits<Point_t>::Kernel Gt; typedef typename CGAL::Kernel_traits<Point_t>::Kernel Gt;
@ -653,7 +672,7 @@ void write_vtp(std::ostream& os,
os << " <Piece NumberOfPoints=\"" << num_vertices(mesh) os << " <Piece NumberOfPoints=\"" << num_vertices(mesh)
<< "\" NumberOfPolys=\"" << num_faces(mesh) << "\">\n"; << "\" NumberOfPolys=\"" << num_faces(mesh) << "\">\n";
std::size_t offset = 0; std::size_t offset = 0;
const bool binary = boost::choose_param(boost::get_param(np, internal_np::use_binary_mode), true); const bool binary = parameters::choose_parameter(parameters::get_parameter(np, internal_np::use_binary_mode), true);
internal::write_vtp::write_points_tag(os,mesh,binary,offset, np); internal::write_vtp::write_points_tag(os,mesh,binary,offset, np);
internal::write_vtp::write_polys_tag(os,mesh,binary,offset, np); internal::write_vtp::write_polys_tag(os,mesh,binary,offset, np);
os << " </Piece>\n" os << " </Piece>\n"

View File

@ -1,205 +0,0 @@
//=======================================================================
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
//
// This file is part of the Boost Graph Library
//
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
// Copyright (c) 2007 GeometryFactory (France). All rights reserved.
//
// $URL$
// $Id$
// SPDX-License-Identifier: BSL-1.0
//
// Author(s) : Andreas Fabri, Fernando Cacciola
#ifndef CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H
#define CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_H
#include <CGAL/disable_warnings.h>
#include <CGAL/basic.h>
#include <CGAL/boost/graph/properties.h>
#if defined(BOOST_MSVC)
# pragma warning(push)
# pragma warning(disable:4172) // returning address of local variable or temporary
#endif
#include <boost/graph/named_function_params.hpp>
#if defined(BOOST_MSVC)
# pragma warning(pop)
#endif
#include <boost/type_traits/is_same.hpp>
#include <boost/version.hpp>
// An explanation about the version hackery below: There is no real
// API to introduce custom properties to the Graph API and the
// internals have changed with Boost Version 1.51 and changes aren't
// backward compatible. To work around that we carry around two
// versions of cgal_bgl_named_params. One imitates the pre 1.51
// bgl_named_params, the newer one hooks into the API through
// inheritance and addition of the some partial specializations.
#if BOOST_VERSION < 105100
namespace boost{
typedef detail::error_property_not_found param_not_found;
template <typename Tag, typename Args, typename Def>
struct lookup_named_param_def {
typedef Def type;
static const Def& get(const Args&, const Def& def) {return def;}
};
template <typename T, typename Tag, typename Base, typename Def>
struct lookup_named_param_def<Tag, bgl_named_params<T, Tag, Base>, Def> {
typedef T type;
static const type& get(const bgl_named_params<T, Tag, Base>& p, const Def&) {
return p.m_value;
}
};
template <typename Tag1, typename T, typename Tag, typename Base, typename Def>
struct lookup_named_param_def<Tag1, bgl_named_params<T, Tag, Base>, Def> {
typedef typename lookup_named_param_def<Tag1, Base, Def>::type type;
static const type& get(const bgl_named_params<T, Tag, Base>& p, const Def& def) {
return lookup_named_param_def<Tag1, Base, Def>::get(p.m_base, def);
}
};
} //end of namespace boost
#endif
#define CGAL_BGL_NP_TEMPLATE_PARAMETERS T, typename Tag, typename Base
#define CGAL_BGL_NP_CLASS CGAL::cgal_bgl_named_params<T,Tag,Base>
namespace CGAL {
namespace internal_np{
enum all_default_t { all_default }; //cannot use macro because it takes no argument
// for uniformity we import them in this namespace. Note that
// it is an import so that if we use the named parameter function
// from boost it will work
using boost::vertex_index_t;
using boost::vertex_index;
using boost::graph_visitor_t;
using boost::graph_visitor;
// define enum types and values for new named parameters
#define CGAL_add_named_parameter(X, Y, Z) \
enum X { Y };
#include <CGAL/boost/graph/parameters_interface.h>
#undef CGAL_add_named_parameter
}//internal_np
template <typename T, typename Tag, typename Base = boost::no_property>
struct cgal_bgl_named_params : boost::bgl_named_params<T, Tag, Base>
{
typedef boost::bgl_named_params<T, Tag, Base> base;
typedef cgal_bgl_named_params self;
cgal_bgl_named_params(T v = T()) : base(v) {}
cgal_bgl_named_params(T v, const Base& b) : base(v, b) {}
cgal_bgl_named_params<bool, internal_np::all_default_t, self>
all_default() const
{
typedef cgal_bgl_named_params<bool, internal_np::all_default_t, self> Params;
return Params(*this);
}
// create the functions for new named parameters and the one imported boost
// used to concatenate several parameters
#define CGAL_add_named_parameter(X, Y, Z) \
template<typename K> \
cgal_bgl_named_params<K, internal_np::X, self> \
Z(const K& k) const \
{ \
typedef cgal_bgl_named_params<K, internal_np::X, self> Params;\
return Params(k, *this); \
}
#include <CGAL/boost/graph/parameters_interface.h>
#include <CGAL/boost/graph/boost_parameters_interface.h>
#undef CGAL_add_named_parameter
};
namespace parameters {
cgal_bgl_named_params<bool, internal_np::all_default_t>
inline all_default()
{
typedef cgal_bgl_named_params<bool, internal_np::all_default_t> Params;
return Params();
}
template <typename T, typename Tag, typename Base>
cgal_bgl_named_params<T,Tag,Base>
inline no_parameters(cgal_bgl_named_params<T,Tag,Base>)
{
typedef cgal_bgl_named_params<T,Tag,Base> Params;
return Params();
}
// define free functions for named parameters
#define CGAL_add_named_parameter(X, Y, Z) \
template <typename K> \
cgal_bgl_named_params<K, internal_np::X> \
Z(K const& p) \
{ \
typedef cgal_bgl_named_params<K, internal_np::X> Params;\
return Params(p); \
}
#include <CGAL/boost/graph/parameters_interface.h>
#include <CGAL/boost/graph/boost_parameters_interface.h>
#undef CGAL_add_named_parameter
} // namespace parameters
} //namespace CGAL
// partial specializations hate inheritance and we need to repeat
// those here. this is rather fragile.
namespace boost {
#if BOOST_VERSION < 105100
template <class Tag1, class Tag2, class T1, class Base>
inline
typename property_value< CGAL::cgal_bgl_named_params<T1,Tag1,Base>, Tag2>::type
get_param(const CGAL::cgal_bgl_named_params<T1,Tag1,Base>& p, Tag2 tag2)
{
enum { match = detail::same_property<Tag1,Tag2>::value };
typedef typename
boost::property_value< CGAL::cgal_bgl_named_params<T1,Tag1,Base>, Tag2>::type T2;
T2* t2 = 0;
typedef detail::property_value_dispatch<match> Dispatcher;
return Dispatcher::const_get_value(p, t2, tag2);
}
#endif
template <typename T, typename Tag, typename Base, typename Def>
struct lookup_named_param_def<Tag, CGAL::cgal_bgl_named_params<T, Tag, Base>, Def> {
typedef T type;
static const type& get(const bgl_named_params<T, Tag, Base>& p, const Def&) {
return p.m_value;
}
};
template <typename Tag1, typename T, typename Tag, typename Base, typename Def>
struct lookup_named_param_def<Tag1, CGAL::cgal_bgl_named_params<T, Tag, Base>, Def> {
typedef typename lookup_named_param_def<Tag1, Base, Def>::type type;
static const type& get(const bgl_named_params<T, Tag, Base>& p, const Def& def) {
return lookup_named_param_def<Tag1, Base, Def>::get(p.m_base, def);
}
};
} // boost
#include <CGAL/enable_warnings.h>
#endif // CGAL_BOOST_GRAPH_NAMED_FUNCTION_PARAMS_HPP

View File

@ -19,7 +19,7 @@
#ifndef CGAL_BOOST_GRAPH_NAMED_PARAMETERS_HELPERS_H #ifndef CGAL_BOOST_GRAPH_NAMED_PARAMETERS_HELPERS_H
#define CGAL_BOOST_GRAPH_NAMED_PARAMETERS_HELPERS_H #define CGAL_BOOST_GRAPH_NAMED_PARAMETERS_HELPERS_H
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/Origin.h> #include <CGAL/Origin.h>
@ -30,7 +30,7 @@
#include <boost/mpl/has_xxx.hpp> #include <boost/mpl/has_xxx.hpp>
#include <boost/type_traits/is_same.hpp> #include <boost/type_traits/is_same.hpp>
#include <boost/version.hpp>
namespace CGAL { namespace CGAL {
@ -123,12 +123,12 @@ namespace CGAL {
typedef typename property_map_selector<PolygonMesh, boost::vertex_point_t>::type typedef typename property_map_selector<PolygonMesh, boost::vertex_point_t>::type
DefaultVPMap; DefaultVPMap;
public: public:
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::vertex_point_t, internal_np::vertex_point_t,
NamedParameters, NamedParameters,
DefaultVPMap DefaultVPMap
> ::type type; > ::type type;
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::vertex_point_t, internal_np::vertex_point_t,
NamedParameters, NamedParameters,
DefaultVPMap_const DefaultVPMap_const
@ -146,28 +146,28 @@ namespace CGAL {
}; };
template<typename PolygonMesh, template<typename PolygonMesh,
typename NamedParametersGT = cgal_bgl_named_params<bool, internal_np::all_default_t>, typename NamedParametersGT = Named_function_parameters<bool, internal_np::all_default_t>,
typename NamedParametersVPM = NamedParametersGT > typename NamedParametersVPM = NamedParametersGT >
class GetGeomTraits class GetGeomTraits
{ {
typedef typename CGAL::graph_has_property<PolygonMesh, boost::vertex_point_t>::type typedef typename CGAL::graph_has_property<PolygonMesh, boost::vertex_point_t>::type
Has_internal_pmap; Has_internal_pmap;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::vertex_point_t, internal_np::vertex_point_t,
NamedParametersVPM, NamedParametersVPM,
boost::param_not_found internal_np::Param_not_found
> ::type NP_vpm; > ::type NP_vpm;
struct Fake_GT {};//to be used if there is no internal vertex_point_map in PolygonMesh struct Fake_GT {};//to be used if there is no internal vertex_point_map in PolygonMesh
typedef typename boost::mpl::if_c< Has_internal_pmap::value || !boost::is_same<boost::param_not_found, NP_vpm>::value typedef typename boost::mpl::if_c< Has_internal_pmap::value || !boost::is_same<internal_np::Param_not_found, NP_vpm>::value
, typename GetK<PolygonMesh, NamedParametersVPM>::Kernel , typename GetK<PolygonMesh, NamedParametersVPM>::Kernel
, Fake_GT , Fake_GT
>::type DefaultKernel; >::type DefaultKernel;
public: public:
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::geom_traits_t, internal_np::geom_traits_t,
NamedParametersGT, NamedParametersGT,
DefaultKernel DefaultKernel
@ -180,12 +180,12 @@ namespace CGAL {
typedef typename property_map_selector<PolygonMesh, boost::face_index_t>::type DefaultMap; typedef typename property_map_selector<PolygonMesh, boost::face_index_t>::type DefaultMap;
typedef typename property_map_selector<PolygonMesh, boost::face_index_t>::const_type DefaultMap_const; typedef typename property_map_selector<PolygonMesh, boost::face_index_t>::const_type DefaultMap_const;
public: public:
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::face_index_t, internal_np::face_index_t,
NamedParameters, NamedParameters,
DefaultMap DefaultMap
> ::type type; > ::type type;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::face_index_t, internal_np::face_index_t,
NamedParameters, NamedParameters,
DefaultMap_const DefaultMap_const
@ -199,7 +199,7 @@ namespace CGAL {
{ {
typedef typename property_map_selector<PolygonMesh, boost::vertex_index_t>::type DefaultMap; typedef typename property_map_selector<PolygonMesh, boost::vertex_index_t>::type DefaultMap;
public: public:
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::vertex_index_t, internal_np::vertex_index_t,
NamedParameters, NamedParameters,
DefaultMap DefaultMap
@ -222,7 +222,7 @@ namespace CGAL {
public: public:
typedef DummyNormalPmap NoMap; typedef DummyNormalPmap NoMap;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::face_normal_t, internal_np::face_normal_t,
NamedParameters, NamedParameters,
DummyNormalPmap//default DummyNormalPmap//default
@ -249,7 +249,7 @@ namespace CGAL {
namespace parameters namespace parameters
{ {
template <typename PointRange> template <typename PointRange>
cgal_bgl_named_params<bool, internal_np::all_default_t> Named_function_parameters<bool, internal_np::all_default_t>
inline all_default(const PointRange&) inline all_default(const PointRange&)
{ {
return CGAL::parameters::all_default(); return CGAL::parameters::all_default();
@ -268,13 +268,13 @@ namespace CGAL {
typedef typename CGAL::Identity_property_map<Point> DefaultPMap; typedef typename CGAL::Identity_property_map<Point> DefaultPMap;
public: public:
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::point_t, internal_np::point_t,
NamedParameters, NamedParameters,
DefaultPMap DefaultPMap
> ::type type; > ::type type;
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::point_t, internal_np::point_t,
NamedParameters, NamedParameters,
DefaultPMap DefaultPMap
@ -309,13 +309,13 @@ namespace CGAL {
typedef typename CGAL::Identity_property_map<Point> DefaultPMap; typedef typename CGAL::Identity_property_map<Point> DefaultPMap;
public: public:
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::query_point_t, internal_np::query_point_t,
NamedParameters, NamedParameters,
DefaultPMap DefaultPMap
> ::type type; > ::type type;
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::query_point_t, internal_np::query_point_t,
NamedParameters, NamedParameters,
DefaultPMap DefaultPMap
@ -331,7 +331,7 @@ namespace CGAL {
>::Kernel Default_kernel; >::Kernel Default_kernel;
public: public:
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::geom_traits_t, internal_np::geom_traits_t,
NamedParameters, NamedParameters,
Default_kernel Default_kernel
@ -355,7 +355,7 @@ namespace CGAL {
public: public:
typedef DummyNormalMap NoMap; typedef DummyNormalMap NoMap;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::normal_t, internal_np::normal_t,
NamedParameters, NamedParameters,
DummyNormalMap//default DummyNormalMap//default
@ -369,13 +369,13 @@ namespace CGAL {
typedef typename CGAL::Identity_property_map<Plane> DefaultPMap; typedef typename CGAL::Identity_property_map<Plane> DefaultPMap;
public: public:
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::plane_t, internal_np::plane_t,
NamedParameters, NamedParameters,
DefaultPMap DefaultPMap
> ::type type; > ::type type;
typedef typename boost::lookup_named_param_def< typedef typename internal_np::Lookup_named_param_def<
internal_np::plane_t, internal_np::plane_t,
NamedParameters, NamedParameters,
DefaultPMap DefaultPMap
@ -398,7 +398,7 @@ namespace CGAL {
public: public:
typedef DummyPlaneIndexMap NoMap; typedef DummyPlaneIndexMap NoMap;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::plane_index_t, internal_np::plane_index_t,
NamedParameters, NamedParameters,
DummyPlaneIndexMap//default DummyPlaneIndexMap//default
@ -421,7 +421,7 @@ namespace CGAL {
public: public:
typedef DummyConstrainedMap NoMap; typedef DummyConstrainedMap NoMap;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::point_is_constrained_t, internal_np::point_is_constrained_t,
NamedParameters, NamedParameters,
DummyConstrainedMap //default DummyConstrainedMap //default
@ -434,7 +434,7 @@ namespace CGAL {
class GetSolver class GetSolver
{ {
public: public:
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::sparse_linear_solver_t, internal_np::sparse_linear_solver_t,
NamedParameters, NamedParameters,
DefaultSolver DefaultSolver
@ -445,7 +445,7 @@ namespace CGAL {
class GetDiagonalizeTraits class GetDiagonalizeTraits
{ {
public: public:
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::diagonalize_traits_t, internal_np::diagonalize_traits_t,
NamedParameters, NamedParameters,
Default_diagonalize_traits<FT, dim> Default_diagonalize_traits<FT, dim>
@ -466,7 +466,7 @@ namespace CGAL {
public: public:
typedef DummySvdTraits NoTraits; typedef DummySvdTraits NoTraits;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::svd_traits_t, internal_np::svd_traits_t,
NamedParameters, NamedParameters,
#if defined(CGAL_EIGEN3_ENABLED) #if defined(CGAL_EIGEN3_ENABLED)

View File

@ -23,6 +23,8 @@ CGAL_add_named_parameter(vertex_point_t, vertex_point, vertex_point_map)
CGAL_add_named_parameter(halfedge_index_t, halfedge_index, halfedge_index_map) CGAL_add_named_parameter(halfedge_index_t, halfedge_index, halfedge_index_map)
CGAL_add_named_parameter(edge_index_t, edge_index, edge_index_map) CGAL_add_named_parameter(edge_index_t, edge_index, edge_index_map)
CGAL_add_named_parameter(face_index_t, face_index, face_index_map) CGAL_add_named_parameter(face_index_t, face_index, face_index_map)
CGAL_add_named_parameter(vertex_index_t, vertex_index, vertex_index_map)
CGAL_add_named_parameter(graph_visitor_t, graph_visitor, visitor)
CGAL_add_named_parameter(edge_is_constrained_t, edge_is_constrained, edge_is_constrained_map) CGAL_add_named_parameter(edge_is_constrained_t, edge_is_constrained, edge_is_constrained_map)
CGAL_add_named_parameter(first_index_t, first_index, first_index) CGAL_add_named_parameter(first_index_t, first_index, first_index)

View File

@ -1,4 +1,4 @@
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
#include <boost/type_traits/is_same.hpp> #include <boost/type_traits/is_same.hpp>
@ -22,181 +22,177 @@ void check_same_type(T)
template<class NamedParameters> template<class NamedParameters>
void test(const NamedParameters& np) void test(const NamedParameters& np)
{ {
using boost::get_param; using CGAL::parameters::get_parameter;
// Test values // Test values
// Named parameters from Boost
assert(get_param(np, boost::vertex_index).v == 0);
assert(get_param(np, boost::graph_visitor).v == 1);
// Named parameters that we use in CGAL // Named parameters that we use in CGAL
assert(get_param(np, CGAL::internal_np::vertex_point).v == 2); assert(get_parameter(np, CGAL::internal_np::vertex_index).v == 0);
assert(get_param(np, CGAL::internal_np::halfedge_index).v == 3); assert(get_parameter(np, CGAL::internal_np::graph_visitor).v == 1);
assert(get_param(np, CGAL::internal_np::edge_index).v == 4); assert(get_parameter(np, CGAL::internal_np::vertex_point).v == 2);
assert(get_param(np, CGAL::internal_np::face_index).v == 5); assert(get_parameter(np, CGAL::internal_np::halfedge_index).v == 3);
assert(get_parameter(np, CGAL::internal_np::edge_index).v == 4);
assert(get_parameter(np, CGAL::internal_np::face_index).v == 5);
assert(get_param(np, CGAL::internal_np::edge_is_constrained).v == 6); assert(get_parameter(np, CGAL::internal_np::edge_is_constrained).v == 6);
assert(get_param(np, CGAL::internal_np::first_index).v == 7); assert(get_parameter(np, CGAL::internal_np::first_index).v == 7);
assert(get_param(np, CGAL::internal_np::number_of_iterations).v == 8); assert(get_parameter(np, CGAL::internal_np::number_of_iterations).v == 8);
assert(get_param(np, CGAL::internal_np::METIS_options).v == 800000001); assert(get_parameter(np, CGAL::internal_np::METIS_options).v == 800000001);
assert(get_param(np, CGAL::internal_np::vertex_partition_id).v == 800000002); assert(get_parameter(np, CGAL::internal_np::vertex_partition_id).v == 800000002);
assert(get_param(np, CGAL::internal_np::face_partition_id).v == 800000003); assert(get_parameter(np, CGAL::internal_np::face_partition_id).v == 800000003);
assert(get_param(np, CGAL::internal_np::vertex_to_vertex_output_iterator).v == 800000004); assert(get_parameter(np, CGAL::internal_np::vertex_to_vertex_output_iterator).v == 800000004);
assert(get_param(np, CGAL::internal_np::halfedge_to_halfedge_output_iterator).v == 800000005); assert(get_parameter(np, CGAL::internal_np::halfedge_to_halfedge_output_iterator).v == 800000005);
assert(get_param(np, CGAL::internal_np::face_to_face_output_iterator).v == 800000006); assert(get_parameter(np, CGAL::internal_np::face_to_face_output_iterator).v == 800000006);
assert(get_param(np, CGAL::internal_np::vertex_to_vertex_map).v == 800000007); assert(get_parameter(np, CGAL::internal_np::vertex_to_vertex_map).v == 800000007);
assert(get_param(np, CGAL::internal_np::halfedge_to_halfedge_map).v == 800000008); assert(get_parameter(np, CGAL::internal_np::halfedge_to_halfedge_map).v == 800000008);
assert(get_param(np, CGAL::internal_np::face_to_face_map).v == 800000009); assert(get_parameter(np, CGAL::internal_np::face_to_face_map).v == 800000009);
// Named parameters that we use in the package 'Mesh_3' // Named parameters that we use in the package 'Mesh_3'
assert(get_param(np, CGAL::internal_np::vertex_feature_degree).v == 9); assert(get_parameter(np, CGAL::internal_np::vertex_feature_degree).v == 9);
// Named parameters used in the package 'Polygon Mesh Processing' // Named parameters used in the package 'Polygon Mesh Processing'
assert(get_param(np, CGAL::internal_np::geom_traits).v == 10); assert(get_parameter(np, CGAL::internal_np::geom_traits).v == 10);
assert(get_param(np, CGAL::internal_np::vertex_incident_patches).v == 11); assert(get_parameter(np, CGAL::internal_np::vertex_incident_patches).v == 11);
assert(get_param(np, CGAL::internal_np::density_control_factor).v == 12); assert(get_parameter(np, CGAL::internal_np::density_control_factor).v == 12);
assert(get_param(np, CGAL::internal_np::use_delaunay_triangulation).v == 13); assert(get_parameter(np, CGAL::internal_np::use_delaunay_triangulation).v == 13);
assert(get_param(np, CGAL::internal_np::fairing_continuity).v == 14); assert(get_parameter(np, CGAL::internal_np::fairing_continuity).v == 14);
assert(get_param(np, CGAL::internal_np::sparse_linear_solver).v == 15); assert(get_parameter(np, CGAL::internal_np::sparse_linear_solver).v == 15);
assert(get_param(np, CGAL::internal_np::number_of_relaxation_steps).v == 16); assert(get_parameter(np, CGAL::internal_np::number_of_relaxation_steps).v == 16);
assert(get_param(np, CGAL::internal_np::protect_constraints).v == 17); assert(get_parameter(np, CGAL::internal_np::protect_constraints).v == 17);
assert(get_param(np, CGAL::internal_np::relax_constraints).v == 18); assert(get_parameter(np, CGAL::internal_np::relax_constraints).v == 18);
assert(get_param(np, CGAL::internal_np::collapse_constraints).v == 43); assert(get_parameter(np, CGAL::internal_np::collapse_constraints).v == 43);
assert(get_param(np, CGAL::internal_np::vertex_is_constrained).v == 19); assert(get_parameter(np, CGAL::internal_np::vertex_is_constrained).v == 19);
assert(get_param(np, CGAL::internal_np::face_patch).v == 20); assert(get_parameter(np, CGAL::internal_np::face_patch).v == 20);
assert(get_param(np, CGAL::internal_np::random_uniform_sampling).v == 21); assert(get_parameter(np, CGAL::internal_np::random_uniform_sampling).v == 21);
assert(get_param(np, CGAL::internal_np::grid_sampling).v == 22); assert(get_parameter(np, CGAL::internal_np::grid_sampling).v == 22);
assert(get_param(np, CGAL::internal_np::monte_carlo_sampling).v == 23); assert(get_parameter(np, CGAL::internal_np::monte_carlo_sampling).v == 23);
assert(get_param(np, CGAL::internal_np::do_sample_edges).v == 24); assert(get_parameter(np, CGAL::internal_np::do_sample_edges).v == 24);
assert(get_param(np, CGAL::internal_np::do_sample_vertices).v == 25); assert(get_parameter(np, CGAL::internal_np::do_sample_vertices).v == 25);
assert(get_param(np, CGAL::internal_np::do_sample_faces).v == 26); assert(get_parameter(np, CGAL::internal_np::do_sample_faces).v == 26);
assert(get_param(np, CGAL::internal_np::number_of_points_on_faces).v == 27); assert(get_parameter(np, CGAL::internal_np::number_of_points_on_faces).v == 27);
assert(get_param(np, CGAL::internal_np::number_of_points_per_face).v == 28); assert(get_parameter(np, CGAL::internal_np::number_of_points_per_face).v == 28);
assert(get_param(np, CGAL::internal_np::grid_spacing).v == 29); assert(get_parameter(np, CGAL::internal_np::grid_spacing).v == 29);
assert(get_param(np, CGAL::internal_np::number_of_points_per_edge).v == 30); assert(get_parameter(np, CGAL::internal_np::number_of_points_per_edge).v == 30);
assert(get_param(np, CGAL::internal_np::number_of_points_on_edges).v == 31); assert(get_parameter(np, CGAL::internal_np::number_of_points_on_edges).v == 31);
assert(get_param(np, CGAL::internal_np::nb_points_per_area_unit).v == 32); assert(get_parameter(np, CGAL::internal_np::nb_points_per_area_unit).v == 32);
assert(get_param(np, CGAL::internal_np::nb_points_per_distance_unit).v == 33); assert(get_parameter(np, CGAL::internal_np::nb_points_per_distance_unit).v == 33);
assert(get_param(np, CGAL::internal_np::throw_on_self_intersection).v == 43); assert(get_parameter(np, CGAL::internal_np::throw_on_self_intersection).v == 43);
assert(get_param(np, CGAL::internal_np::clip_volume).v == 44); assert(get_parameter(np, CGAL::internal_np::clip_volume).v == 44);
assert(get_param(np, CGAL::internal_np::use_compact_clipper).v == 45); assert(get_parameter(np, CGAL::internal_np::use_compact_clipper).v == 45);
assert(get_param(np, CGAL::internal_np::erase_all_duplicates).v == 48); assert(get_parameter(np, CGAL::internal_np::erase_all_duplicates).v == 48);
assert(get_param(np, CGAL::internal_np::require_same_orientation).v == 49); assert(get_parameter(np, CGAL::internal_np::require_same_orientation).v == 49);
assert(get_param(np, CGAL::internal_np::use_bool_op_to_clip_surface).v == 50); assert(get_parameter(np, CGAL::internal_np::use_bool_op_to_clip_surface).v == 50);
assert(get_param(np, CGAL::internal_np::face_size_map).v == 52); assert(get_parameter(np, CGAL::internal_np::face_size_map).v == 52);
assert(get_param(np, CGAL::internal_np::snapping_tolerance).v == 57); assert(get_parameter(np, CGAL::internal_np::snapping_tolerance).v == 57);
assert(get_param(np, CGAL::internal_np::use_angle_smoothing).v == 53); assert(get_parameter(np, CGAL::internal_np::use_angle_smoothing).v == 53);
assert(get_param(np, CGAL::internal_np::use_area_smoothing).v == 54); assert(get_parameter(np, CGAL::internal_np::use_area_smoothing).v == 54);
assert(get_param(np, CGAL::internal_np::use_Delaunay_flips).v == 55); assert(get_parameter(np, CGAL::internal_np::use_Delaunay_flips).v == 55);
assert(get_param(np, CGAL::internal_np::use_safety_constraints).v == 56); assert(get_parameter(np, CGAL::internal_np::use_safety_constraints).v == 56);
// Named parameters that we use in the package 'Surface Mesh Simplification' // Named parameters that we use in the package 'Surface Mesh Simplification'
assert(get_param(np, CGAL::internal_np::get_cost_policy).v == 34); assert(get_parameter(np, CGAL::internal_np::get_cost_policy).v == 34);
assert(get_param(np, CGAL::internal_np::get_placement_policy).v == 35); assert(get_parameter(np, CGAL::internal_np::get_placement_policy).v == 35);
// To-be-documented named parameters // To-be-documented named parameters
assert(get_param(np, CGAL::internal_np::face_normal).v == 36); assert(get_parameter(np, CGAL::internal_np::face_normal).v == 36);
assert(get_param(np, CGAL::internal_np::random_seed).v == 37); assert(get_parameter(np, CGAL::internal_np::random_seed).v == 37);
assert(get_param(np, CGAL::internal_np::do_project).v == 38); assert(get_parameter(np, CGAL::internal_np::do_project).v == 38);
// Internal named parameters // Internal named parameters
assert(get_param(np, CGAL::internal_np::weight_calculator).v == 39); assert(get_parameter(np, CGAL::internal_np::weight_calculator).v == 39);
assert(get_param(np, CGAL::internal_np::preserve_genus).v == 40); assert(get_parameter(np, CGAL::internal_np::preserve_genus).v == 40);
assert(get_param(np, CGAL::internal_np::verbosity_level).v == 41); assert(get_parameter(np, CGAL::internal_np::verbosity_level).v == 41);
assert(get_param(np, CGAL::internal_np::use_binary_mode).v == 51); assert(get_parameter(np, CGAL::internal_np::use_binary_mode).v == 51);
assert(get_param(np, CGAL::internal_np::projection_functor).v == 42); assert(get_parameter(np, CGAL::internal_np::projection_functor).v == 42);
assert(get_param(np, CGAL::internal_np::apply_per_connected_component).v == 46); assert(get_parameter(np, CGAL::internal_np::apply_per_connected_component).v == 46);
assert(get_param(np, CGAL::internal_np::output_iterator).v == 47); assert(get_parameter(np, CGAL::internal_np::output_iterator).v == 47);
// Test types // Test types
// Named parameters from Boost
check_same_type<0>(get_param(np, boost::vertex_index));
check_same_type<1>(get_param(np, boost::graph_visitor));
// Named parameters that we use in CGAL // Named parameters that we use in CGAL
check_same_type<2>(get_param(np, CGAL::internal_np::vertex_point)); check_same_type<0>(get_parameter(np, CGAL::internal_np::vertex_index));
check_same_type<3>(get_param(np, CGAL::internal_np::halfedge_index)); check_same_type<1>(get_parameter(np, CGAL::internal_np::graph_visitor));
check_same_type<4>(get_param(np, CGAL::internal_np::edge_index)); check_same_type<2>(get_parameter(np, CGAL::internal_np::vertex_point));
check_same_type<5>(get_param(np, CGAL::internal_np::face_index)); check_same_type<3>(get_parameter(np, CGAL::internal_np::halfedge_index));
check_same_type<4>(get_parameter(np, CGAL::internal_np::edge_index));
check_same_type<5>(get_parameter(np, CGAL::internal_np::face_index));
check_same_type<6>(get_param(np, CGAL::internal_np::edge_is_constrained)); check_same_type<6>(get_parameter(np, CGAL::internal_np::edge_is_constrained));
check_same_type<7>(get_param(np, CGAL::internal_np::first_index)); check_same_type<7>(get_parameter(np, CGAL::internal_np::first_index));
check_same_type<8>(get_param(np, CGAL::internal_np::number_of_iterations)); check_same_type<8>(get_parameter(np, CGAL::internal_np::number_of_iterations));
check_same_type<800000001>(get_param(np, CGAL::internal_np::METIS_options)); check_same_type<800000001>(get_parameter(np, CGAL::internal_np::METIS_options));
check_same_type<800000002>(get_param(np, CGAL::internal_np::vertex_partition_id)); check_same_type<800000002>(get_parameter(np, CGAL::internal_np::vertex_partition_id));
check_same_type<800000003>(get_param(np, CGAL::internal_np::face_partition_id)); check_same_type<800000003>(get_parameter(np, CGAL::internal_np::face_partition_id));
check_same_type<800000004>(get_param(np, CGAL::internal_np::vertex_to_vertex_output_iterator)); check_same_type<800000004>(get_parameter(np, CGAL::internal_np::vertex_to_vertex_output_iterator));
check_same_type<800000005>(get_param(np, CGAL::internal_np::halfedge_to_halfedge_output_iterator)); check_same_type<800000005>(get_parameter(np, CGAL::internal_np::halfedge_to_halfedge_output_iterator));
check_same_type<800000006>(get_param(np, CGAL::internal_np::face_to_face_output_iterator)); check_same_type<800000006>(get_parameter(np, CGAL::internal_np::face_to_face_output_iterator));
check_same_type<800000007>(get_param(np, CGAL::internal_np::vertex_to_vertex_map)); check_same_type<800000007>(get_parameter(np, CGAL::internal_np::vertex_to_vertex_map));
check_same_type<800000008>(get_param(np, CGAL::internal_np::halfedge_to_halfedge_map)); check_same_type<800000008>(get_parameter(np, CGAL::internal_np::halfedge_to_halfedge_map));
check_same_type<800000009>(get_param(np, CGAL::internal_np::face_to_face_map)); check_same_type<800000009>(get_parameter(np, CGAL::internal_np::face_to_face_map));
// Named parameters that we use in the package 'Mesh_3' // Named parameters that we use in the package 'Mesh_3'
check_same_type<9>(get_param(np, CGAL::internal_np::vertex_feature_degree)); check_same_type<9>(get_parameter(np, CGAL::internal_np::vertex_feature_degree));
// Named parameters used in the package 'Polygon Mesh Processing' // Named parameters used in the package 'Polygon Mesh Processing'
check_same_type<10>(get_param(np, CGAL::internal_np::geom_traits)); check_same_type<10>(get_parameter(np, CGAL::internal_np::geom_traits));
check_same_type<11>(get_param(np, CGAL::internal_np::vertex_incident_patches)); check_same_type<11>(get_parameter(np, CGAL::internal_np::vertex_incident_patches));
check_same_type<12>(get_param(np, CGAL::internal_np::density_control_factor)); check_same_type<12>(get_parameter(np, CGAL::internal_np::density_control_factor));
check_same_type<13>(get_param(np, CGAL::internal_np::use_delaunay_triangulation)); check_same_type<13>(get_parameter(np, CGAL::internal_np::use_delaunay_triangulation));
check_same_type<14>(get_param(np, CGAL::internal_np::fairing_continuity)); check_same_type<14>(get_parameter(np, CGAL::internal_np::fairing_continuity));
check_same_type<15>(get_param(np, CGAL::internal_np::sparse_linear_solver)); check_same_type<15>(get_parameter(np, CGAL::internal_np::sparse_linear_solver));
check_same_type<16>(get_param(np, CGAL::internal_np::number_of_relaxation_steps)); check_same_type<16>(get_parameter(np, CGAL::internal_np::number_of_relaxation_steps));
check_same_type<17>(get_param(np, CGAL::internal_np::protect_constraints)); check_same_type<17>(get_parameter(np, CGAL::internal_np::protect_constraints));
check_same_type<18>(get_param(np, CGAL::internal_np::relax_constraints)); check_same_type<18>(get_parameter(np, CGAL::internal_np::relax_constraints));
check_same_type<43>(get_param(np, CGAL::internal_np::collapse_constraints)); check_same_type<43>(get_parameter(np, CGAL::internal_np::collapse_constraints));
check_same_type<19>(get_param(np, CGAL::internal_np::vertex_is_constrained)); check_same_type<19>(get_parameter(np, CGAL::internal_np::vertex_is_constrained));
check_same_type<20>(get_param(np, CGAL::internal_np::face_patch)); check_same_type<20>(get_parameter(np, CGAL::internal_np::face_patch));
check_same_type<21>(get_param(np, CGAL::internal_np::random_uniform_sampling)); check_same_type<21>(get_parameter(np, CGAL::internal_np::random_uniform_sampling));
check_same_type<22>(get_param(np, CGAL::internal_np::grid_sampling)); check_same_type<22>(get_parameter(np, CGAL::internal_np::grid_sampling));
check_same_type<23>(get_param(np, CGAL::internal_np::monte_carlo_sampling)); check_same_type<23>(get_parameter(np, CGAL::internal_np::monte_carlo_sampling));
check_same_type<24>(get_param(np, CGAL::internal_np::do_sample_edges)); check_same_type<24>(get_parameter(np, CGAL::internal_np::do_sample_edges));
check_same_type<25>(get_param(np, CGAL::internal_np::do_sample_vertices)); check_same_type<25>(get_parameter(np, CGAL::internal_np::do_sample_vertices));
check_same_type<26>(get_param(np, CGAL::internal_np::do_sample_faces)); check_same_type<26>(get_parameter(np, CGAL::internal_np::do_sample_faces));
check_same_type<27>(get_param(np, CGAL::internal_np::number_of_points_on_faces)); check_same_type<27>(get_parameter(np, CGAL::internal_np::number_of_points_on_faces));
check_same_type<28>(get_param(np, CGAL::internal_np::number_of_points_per_face)); check_same_type<28>(get_parameter(np, CGAL::internal_np::number_of_points_per_face));
check_same_type<29>(get_param(np, CGAL::internal_np::grid_spacing)); check_same_type<29>(get_parameter(np, CGAL::internal_np::grid_spacing));
check_same_type<30>(get_param(np, CGAL::internal_np::number_of_points_per_edge)); check_same_type<30>(get_parameter(np, CGAL::internal_np::number_of_points_per_edge));
check_same_type<31>(get_param(np, CGAL::internal_np::number_of_points_on_edges)); check_same_type<31>(get_parameter(np, CGAL::internal_np::number_of_points_on_edges));
check_same_type<32>(get_param(np, CGAL::internal_np::nb_points_per_area_unit)); check_same_type<32>(get_parameter(np, CGAL::internal_np::nb_points_per_area_unit));
check_same_type<33>(get_param(np, CGAL::internal_np::nb_points_per_distance_unit)); check_same_type<33>(get_parameter(np, CGAL::internal_np::nb_points_per_distance_unit));
check_same_type<43>(get_param(np, CGAL::internal_np::throw_on_self_intersection)); check_same_type<43>(get_parameter(np, CGAL::internal_np::throw_on_self_intersection));
check_same_type<44>(get_param(np, CGAL::internal_np::clip_volume)); check_same_type<44>(get_parameter(np, CGAL::internal_np::clip_volume));
check_same_type<45>(get_param(np, CGAL::internal_np::use_compact_clipper)); check_same_type<45>(get_parameter(np, CGAL::internal_np::use_compact_clipper));
check_same_type<48>(get_param(np, CGAL::internal_np::erase_all_duplicates)); check_same_type<48>(get_parameter(np, CGAL::internal_np::erase_all_duplicates));
check_same_type<49>(get_param(np, CGAL::internal_np::require_same_orientation)); check_same_type<49>(get_parameter(np, CGAL::internal_np::require_same_orientation));
check_same_type<50>(get_param(np, CGAL::internal_np::use_bool_op_to_clip_surface)); check_same_type<50>(get_parameter(np, CGAL::internal_np::use_bool_op_to_clip_surface));
check_same_type<52>(get_param(np, CGAL::internal_np::face_size_map)); check_same_type<52>(get_parameter(np, CGAL::internal_np::face_size_map));
check_same_type<57>(get_param(np, CGAL::internal_np::snapping_tolerance)); check_same_type<57>(get_parameter(np, CGAL::internal_np::snapping_tolerance));
check_same_type<53>(get_param(np, CGAL::internal_np::use_angle_smoothing)); check_same_type<53>(get_parameter(np, CGAL::internal_np::use_angle_smoothing));
check_same_type<54>(get_param(np, CGAL::internal_np::use_area_smoothing)); check_same_type<54>(get_parameter(np, CGAL::internal_np::use_area_smoothing));
check_same_type<55>(get_param(np, CGAL::internal_np::use_Delaunay_flips)); check_same_type<55>(get_parameter(np, CGAL::internal_np::use_Delaunay_flips));
check_same_type<56>(get_param(np, CGAL::internal_np::use_safety_constraints)); check_same_type<56>(get_parameter(np, CGAL::internal_np::use_safety_constraints));
// Named parameters that we use in the package 'Surface Mesh Simplification' // Named parameters that we use in the package 'Surface Mesh Simplification'
check_same_type<34>(get_param(np, CGAL::internal_np::get_cost_policy)); check_same_type<34>(get_parameter(np, CGAL::internal_np::get_cost_policy));
check_same_type<35>(get_param(np, CGAL::internal_np::get_placement_policy)); check_same_type<35>(get_parameter(np, CGAL::internal_np::get_placement_policy));
// To-be-documented named parameters // To-be-documented named parameters
check_same_type<36>(get_param(np, CGAL::internal_np::face_normal)); check_same_type<36>(get_parameter(np, CGAL::internal_np::face_normal));
check_same_type<37>(get_param(np, CGAL::internal_np::random_seed)); check_same_type<37>(get_parameter(np, CGAL::internal_np::random_seed));
check_same_type<38>(get_param(np, CGAL::internal_np::do_project)); check_same_type<38>(get_parameter(np, CGAL::internal_np::do_project));
// Internal named parameters // Internal named parameters
check_same_type<39>(get_param(np, CGAL::internal_np::weight_calculator)); check_same_type<39>(get_parameter(np, CGAL::internal_np::weight_calculator));
check_same_type<40>(get_param(np, CGAL::internal_np::preserve_genus)); check_same_type<40>(get_parameter(np, CGAL::internal_np::preserve_genus));
check_same_type<41>(get_param(np, CGAL::internal_np::verbosity_level)); check_same_type<41>(get_parameter(np, CGAL::internal_np::verbosity_level));
check_same_type<51>(get_param(np, CGAL::internal_np::use_binary_mode)); check_same_type<51>(get_parameter(np, CGAL::internal_np::use_binary_mode));
check_same_type<42>(get_param(np, CGAL::internal_np::projection_functor)); check_same_type<42>(get_parameter(np, CGAL::internal_np::projection_functor));
check_same_type<46>(get_param(np, CGAL::internal_np::apply_per_connected_component)); check_same_type<46>(get_parameter(np, CGAL::internal_np::apply_per_connected_component));
check_same_type<47>(get_param(np, CGAL::internal_np::output_iterator)); check_same_type<47>(get_parameter(np, CGAL::internal_np::output_iterator));
} }
int main() int main()

View File

@ -27,6 +27,7 @@
#include <CGAL/internal/Surface_mesh_segmentation/Alpha_expansion_graph_cut.h> #include <CGAL/internal/Surface_mesh_segmentation/Alpha_expansion_graph_cut.h>
#include <CGAL/Bbox_3.h> #include <CGAL/Bbox_3.h>
#include <CGAL/Classification/Label_set.h> #include <CGAL/Classification/Label_set.h>
#include <CGAL/property_map.h>
#ifdef CGAL_LINKED_WITH_TBB #ifdef CGAL_LINKED_WITH_TBB
#include <tbb/parallel_for.h> #include <tbb/parallel_for.h>

View File

@ -24,7 +24,7 @@
#include <functional> #include <functional>
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/iterator/iterator_adaptor.hpp> #include <boost/iterator/iterator_adaptor.hpp>

View File

@ -22,6 +22,7 @@
#define CGAL_GRAPH_TRAITS_HALFEDGEDS_DEFAULT_H #define CGAL_GRAPH_TRAITS_HALFEDGEDS_DEFAULT_H
#include <CGAL/boost/graph/graph_traits_HalfedgeDS.h> #include <CGAL/boost/graph/graph_traits_HalfedgeDS.h>
#include <CGAL/boost/graph/properties.h>
#include <CGAL/Iterator_range.h> #include <CGAL/Iterator_range.h>
#include <CGAL/HalfedgeDS_decorator.h> #include <CGAL/HalfedgeDS_decorator.h>
#include <CGAL/HalfedgeDS_default.h> #include <CGAL/HalfedgeDS_default.h>

View File

@ -24,7 +24,7 @@
#include "IO.h" #include "IO.h"
#include <stdio.h> #include <stdio.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
//== IMPLEMENTATION =========================================================== //== IMPLEMENTATION ===========================================================
@ -55,7 +55,7 @@ bool read_off_ascii(Surface_mesh& mesh,
Vec2f t; Vec2f t;
Surface_mesh::Vertex v; Surface_mesh::Vertex v;
typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Surface_mesh, NamedParameters>::const_type typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Surface_mesh, NamedParameters>::const_type
vpm = choose_param(get_param(np, CGAL::boost::internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, CGAL::boost::internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, mesh)); get_const_property_map(CGAL::vertex_point, mesh));
@ -177,7 +177,7 @@ bool read_off_binary(Surface_mesh& mesh,
if (has_normals) normals = mesh.vertex_property<Normal>("v:normal"); if (has_normals) normals = mesh.vertex_property<Normal>("v:normal");
if (has_texcoords) texcoords = mesh.vertex_property<Texture_coordinate>("v:texcoord"); if (has_texcoords) texcoords = mesh.vertex_property<Texture_coordinate>("v:texcoord");
typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Surface_mesh, NamedParameters>::const_type typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Surface_mesh, NamedParameters>::const_type
vpm = choose_param(get_param(np, CGAL::boost::internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, CGAL::boost::internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, mesh)); get_const_property_map(CGAL::vertex_point, mesh));

View File

@ -31,7 +31,7 @@
#include <CGAL/demangle.h> #include <CGAL/demangle.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
@ -959,13 +959,13 @@ public:
#ifdef DOXYGEN_RUNNING #ifdef DOXYGEN_RUNNING
unspecified_type unspecified_type
#else #else
cgal_bgl_named_params Named_function_parameters
<typename Kernel_traits<Point>::Kernel, <typename Kernel_traits<Point>::Kernel,
internal_np::geom_traits_t, internal_np::geom_traits_t,
cgal_bgl_named_params Named_function_parameters
<typename CGAL::Point_set_3<Point, Vector>::template Property_map<Vector>, <typename CGAL::Point_set_3<Point, Vector>::template Property_map<Vector>,
internal_np::normal_t, internal_np::normal_t,
cgal_bgl_named_params Named_function_parameters
<typename CGAL::Point_set_3<Point, Vector>::template Property_map<Point>, <typename CGAL::Point_set_3<Point, Vector>::template Property_map<Point>,
internal_np::point_t> > > internal_np::point_t> > >
#endif #endif
@ -1303,13 +1303,13 @@ namespace Point_set_processing_3
namespace parameters namespace parameters
{ {
template <typename Point, typename Vector> template <typename Point, typename Vector>
cgal_bgl_named_params Named_function_parameters
<typename Kernel_traits<Point>::Kernel, <typename Kernel_traits<Point>::Kernel,
internal_np::geom_traits_t, internal_np::geom_traits_t,
cgal_bgl_named_params Named_function_parameters
<typename CGAL::Point_set_3<Point, Vector>::template Property_map<Vector>, <typename CGAL::Point_set_3<Point, Vector>::template Property_map<Vector>,
internal_np::normal_t, internal_np::normal_t,
cgal_bgl_named_params Named_function_parameters
<typename CGAL::Point_set_3<Point, Vector>::template Property_map<Point>, <typename CGAL::Point_set_3<Point, Vector>::template Property_map<Point>,
internal_np::point_t> > > internal_np::point_t> > >
inline all_default(const CGAL::Point_set_3<Point, Vector>& ps) inline all_default(const CGAL::Point_set_3<Point, Vector>& ps)

View File

@ -15,3 +15,5 @@ ALIASES += "cgalNPTableEnd=</table> </dd> </dl>"
ALIASES += "cgalNPBegin{1}=<tr><td class=\"paramname\">\1 </td><td>" ALIASES += "cgalNPBegin{1}=<tr><td class=\"paramname\">\1 </td><td>"
ALIASES += "cgalNPEnd=</td></tr>" ALIASES += "cgalNPEnd=</td></tr>"
EXPAND_AS_DEFINED = CGAL_BGL_NP_TEMPLATE_PARAMETERS \
CGAL_BGL_NP_CLASS

View File

@ -32,7 +32,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <boost/version.hpp> #include <boost/version.hpp>
@ -465,12 +465,13 @@ bool read_las_points(std::istream& stream,
const CGAL_BGL_NP_CLASS& np) const CGAL_BGL_NP_CLASS& np)
#endif #endif
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange; typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange;
typedef typename Point_set_processing_3::GetPointMap<PointRange, CGAL_BGL_NP_CLASS>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, CGAL_BGL_NP_CLASS>::type PointMap;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
return read_las_points_with_properties (stream, output, return read_las_points_with_properties (stream, output,
make_las_point_reader (point_map)); make_las_point_reader (point_map));

View File

@ -31,7 +31,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iostream> #include <iostream>
@ -85,7 +85,8 @@ read_off_points(
const CGAL_BGL_NP_CLASS& np) const CGAL_BGL_NP_CLASS& np)
#endif #endif
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange; typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange;
@ -97,8 +98,8 @@ read_off_points(
bool has_normals = !(boost::is_same<NormalMap, bool has_normals = !(boost::is_same<NormalMap,
typename Point_set_processing_3::GetNormalMap<PointRange, CGAL_BGL_NP_CLASS>::NoMap>::value); typename Point_set_processing_3::GetNormalMap<PointRange, CGAL_BGL_NP_CLASS>::NoMap>::value);
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
// value_type_traits is a workaround as back_insert_iterator's value_type is void // value_type_traits is a workaround as back_insert_iterator's value_type is void
// typedef typename value_type_traits<OutputIterator>::type Enriched_point; // typedef typename value_type_traits<OutputIterator>::type Enriched_point;

View File

@ -34,7 +34,7 @@
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/IO/io.h> #include <CGAL/IO/io.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <boost/version.hpp> #include <boost/version.hpp>
@ -241,7 +241,8 @@ bool read_ply_points(std::istream& stream,
const CGAL_BGL_NP_CLASS& np) const CGAL_BGL_NP_CLASS& np)
#endif #endif
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange; typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange;
@ -252,8 +253,8 @@ bool read_ply_points(std::istream& stream,
bool has_normals = !(boost::is_same<NormalMap, bool has_normals = !(boost::is_same<NormalMap,
typename Point_set_processing_3::GetNormalMap<PointRange, CGAL_BGL_NP_CLASS>::NoMap>::value); typename Point_set_processing_3::GetNormalMap<PointRange, CGAL_BGL_NP_CLASS>::NoMap>::value);
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
if (has_normals) if (has_normals)
return read_ply_points_with_properties (stream, output, return read_ply_points_with_properties (stream, output,

View File

@ -30,7 +30,7 @@
#include <CGAL/Origin.h> #include <CGAL/Origin.h>
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iostream> #include <iostream>
@ -84,7 +84,8 @@ read_xyz_points(
const CGAL_BGL_NP_CLASS& np) const CGAL_BGL_NP_CLASS& np)
#endif #endif
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange; typedef Point_set_processing_3::Fake_point_range<OutputIteratorValueType> PointRange;
@ -96,8 +97,8 @@ read_xyz_points(
bool has_normals = !(boost::is_same<NormalMap, bool has_normals = !(boost::is_same<NormalMap,
typename Point_set_processing_3::GetNormalMap<PointRange, CGAL_BGL_NP_CLASS>::NoMap>::value); typename Point_set_processing_3::GetNormalMap<PointRange, CGAL_BGL_NP_CLASS>::NoMap>::value);
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
// value_type_traits is a workaround as back_insert_iterator's value_type is void // value_type_traits is a workaround as back_insert_iterator's value_type is void
//typedef typename value_type_traits<OutputIterator>::type Enriched_point; //typedef typename value_type_traits<OutputIterator>::type Enriched_point;

View File

@ -282,10 +282,11 @@ write_las_points(
const PointRange& points, const PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
return write_las_points_with_properties (stream, points, make_las_point_writer(point_map)); return write_las_points_with_properties (stream, points, make_las_point_writer(point_map));
} }

View File

@ -71,7 +71,8 @@ write_off_points(
const PointRange& points, const PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -80,8 +81,8 @@ write_off_points(
bool has_normals = !(boost::is_same<NormalMap, bool has_normals = !(boost::is_same<NormalMap,
typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value); typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value);
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
CGAL_point_set_processing_precondition(points.begin() != points.end()); CGAL_point_set_processing_precondition(points.begin() != points.end());

View File

@ -32,7 +32,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <CGAL/Iterator_range.h> #include <CGAL/Iterator_range.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <boost/version.hpp> #include <boost/version.hpp>
@ -189,7 +189,8 @@ write_ply_points(
const PointRange& points, const PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -198,8 +199,8 @@ write_ply_points(
bool has_normals = !(boost::is_same<NormalMap, bool has_normals = !(boost::is_same<NormalMap,
typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value); typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value);
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
if (has_normals) if (has_normals)
return write_ply_points_with_properties( return write_ply_points_with_properties(

View File

@ -29,7 +29,7 @@
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/Iterator_range.h> #include <CGAL/Iterator_range.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iostream> #include <iostream>
@ -71,7 +71,8 @@ write_xyz_points(
const PointRange& points, const PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -80,8 +81,8 @@ write_xyz_points(
bool has_normals = !(boost::is_same<NormalMap, bool has_normals = !(boost::is_same<NormalMap,
typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value); typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value);
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
CGAL_point_set_processing_precondition(points.begin() != points.end()); CGAL_point_set_processing_precondition(points.begin() != points.end());

View File

@ -34,7 +34,7 @@
#include <CGAL/squared_distance_3.h> #include <CGAL/squared_distance_3.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -404,7 +404,8 @@ bilateral_smooth_point_set(
unsigned int k, unsigned int k,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -419,8 +420,8 @@ bilateral_smooth_point_set(
typedef typename std::vector<Pwn,CGAL_PSP3_DEFAULT_ALLOCATOR<Pwn> > Pwns; typedef typename std::vector<Pwn,CGAL_PSP3_DEFAULT_ALLOCATOR<Pwn> > Pwns;
typedef typename Kernel::FT FT; typedef typename Kernel::FT FT;
double sharpness_angle = choose_param(get_param(np, internal_np::sharpness_angle), 30.); double sharpness_angle = choose_parameter(get_parameter(np, internal_np::sharpness_angle), 30.);
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
CGAL_point_set_processing_precondition(points.begin() != points.end()); CGAL_point_set_processing_precondition(points.begin() != points.end());
@ -433,9 +434,9 @@ bilateral_smooth_point_set(
typedef CGAL::Orthogonal_k_neighbor_search<Tree_traits> Neighbor_search; typedef CGAL::Orthogonal_k_neighbor_search<Tree_traits> Neighbor_search;
typedef typename Neighbor_search::Tree Tree; typedef typename Neighbor_search::Tree Tree;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), FT(0)); FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), FT(0));
// copy points and normals // copy points and normals
Pwns pwns; Pwns pwns;

View File

@ -33,7 +33,7 @@
#include <CGAL/assertions.h> #include <CGAL/assertions.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -46,6 +46,11 @@
#include <tbb/scalable_allocator.h> #include <tbb/scalable_allocator.h>
#endif // CGAL_LINKED_WITH_TBB #endif // CGAL_LINKED_WITH_TBB
#ifdef DOXYGEN_RUNNING
#define CGAL_BGL_NP_TEMPLATE_PARAMETERS NamedParameters
#define CGAL_BGL_NP_CLASS NamedParameters
#endif
namespace CGAL { namespace CGAL {
@ -184,28 +189,29 @@ compute_average_spacing(const typename Kernel::Point_3& query, ///< 3D point who
*/ */
template <typename ConcurrencyTag, template <typename ConcurrencyTag,
typename PointRange, typename PointRange,
typename NamedParameters typename CGAL_BGL_NP_TEMPLATE_PARAMETERS
> >
#ifdef DOXYGEN_RUNNING #ifdef DOXYGEN_RUNNING
FT FT
#else #else
typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel::FT typename Point_set_processing_3::GetK<PointRange, CGAL_BGL_NP_CLASS>::Kernel::FT
#endif #endif
compute_average_spacing( compute_average_spacing(
const PointRange& points, const PointRange& points,
unsigned int k, unsigned int k,
const NamedParameters& np) const CGAL_BGL_NP_CLASS& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, CGAL_BGL_NP_CLASS>::const_type PointMap;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, CGAL_BGL_NP_CLASS>::Kernel Kernel;
typedef typename Kernel::Point_3 Point; typedef typename Kernel::Point_3 Point;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
// types for K nearest neighbors search structure // types for K nearest neighbors search structure

View File

@ -32,7 +32,7 @@
#include <CGAL/Memory_sizer.h> #include <CGAL/Memory_sizer.h>
#include <CGAL/compute_average_spacing.h> #include <CGAL/compute_average_spacing.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -328,7 +328,8 @@ edge_aware_upsample_point_set(
OutputIterator output, OutputIterator output,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -344,12 +345,12 @@ edge_aware_upsample_point_set(
typedef typename Kernel::FT FT; typedef typename Kernel::FT FT;
typedef typename rich_grid_internal::Rich_point<Kernel> Rich_point; typedef typename rich_grid_internal::Rich_point<Kernel> Rich_point;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
double sharpness_angle = choose_param(get_param(np, internal_np::sharpness_angle), 30.); double sharpness_angle = choose_parameter(get_parameter(np, internal_np::sharpness_angle), 30.);
double edge_sensitivity = choose_param(get_param(np, internal_np::edge_sensitivity), 1); double edge_sensitivity = choose_parameter(get_parameter(np, internal_np::edge_sensitivity), 1);
double neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), -1); double neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), -1);
std::size_t number_of_output_points = choose_param(get_param(np, internal_np::number_of_output_points), 1000); std::size_t number_of_output_points = choose_parameter(get_parameter(np, internal_np::number_of_output_points), 1000);
std::cerr << sharpness_angle << " " << edge_sensitivity << " " << neighbor_radius std::cerr << sharpness_angle << " " << edge_sensitivity << " " << neighbor_radius
<< " " << number_of_output_points << std::endl; << " " << number_of_output_points << std::endl;

View File

@ -36,7 +36,7 @@
#include <CGAL/random_simplify_point_set.h> #include <CGAL/random_simplify_point_set.h>
#include <CGAL/Point_set_2.h> #include <CGAL/Point_set_2.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <fstream> #include <fstream>
@ -494,15 +494,17 @@ estimate_local_k_neighbor_scales(
OutputIterator output, OutputIterator output,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap;
typedef typename Point_set_processing_3::GetQueryPointMap<QueryPointRange, NamedParameters>::const_type QueryPointMap; typedef typename Point_set_processing_3::GetQueryPointMap<QueryPointRange, NamedParameters>::const_type QueryPointMap;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel;
typedef typename boost::property_traits<PointMap>::value_type Point_d; typedef typename boost::property_traits<PointMap>::value_type Point_d;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
QueryPointMap query_point_map = choose_param(get_param(np, internal_np::query_point_map), QueryPointMap()); QueryPointMap query_point_map = choose_parameter(get_parameter(np, internal_np::query_point_map), QueryPointMap());
// Build multi-scale KD-tree // Build multi-scale KD-tree
internal::Quick_multiscale_approximate_knn_distance<Kernel, Point_d> kdtree (points.begin(), internal::Quick_multiscale_approximate_knn_distance<Kernel, Point_d> kdtree (points.begin(),
@ -570,9 +572,11 @@ estimate_global_k_neighbor_scale(
const PointRange& points, const PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
std::vector<std::size_t> scales; std::vector<std::size_t> scales;
estimate_local_k_neighbor_scales (points, points, std::back_inserter (scales), np.query_point_map(point_map)); estimate_local_k_neighbor_scales (points, points, std::back_inserter (scales), np.query_point_map(point_map));
std::sort (scales.begin(), scales.end()); std::sort (scales.begin(), scales.end());
@ -643,15 +647,17 @@ estimate_local_range_scales(
OutputIterator output, OutputIterator output,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap;
typedef typename Point_set_processing_3::GetQueryPointMap<QueryPointRange, NamedParameters>::const_type QueryPointMap; typedef typename Point_set_processing_3::GetQueryPointMap<QueryPointRange, NamedParameters>::const_type QueryPointMap;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel;
typedef typename boost::property_traits<PointMap>::value_type Point_d; typedef typename boost::property_traits<PointMap>::value_type Point_d;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
QueryPointMap query_point_map = choose_param(get_param(np, internal_np::query_point_map), QueryPointMap()); QueryPointMap query_point_map = choose_parameter(get_parameter(np, internal_np::query_point_map), QueryPointMap());
// Build multi-scale KD-tree // Build multi-scale KD-tree
internal::Quick_multiscale_approximate_knn_distance<Kernel, Point_d> kdtree (points.begin(), internal::Quick_multiscale_approximate_knn_distance<Kernel, Point_d> kdtree (points.begin(),
@ -726,10 +732,12 @@ estimate_global_range_scale(
const PointRange& points, const PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
std::vector<double> scales; std::vector<double> scales;
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
estimate_local_range_scales (points, points, std::back_inserter (scales), np.query_point_map(point_map)); estimate_local_range_scales (points, points, std::back_inserter (scales), np.query_point_map(point_map));
std::sort (scales.begin(), scales.end()); std::sort (scales.begin(), scales.end());
return std::sqrt (scales[scales.size() / 2]); return std::sqrt (scales[scales.size() / 2]);

View File

@ -32,7 +32,7 @@
#include <functional> #include <functional>
#include <boost/functional/hash.hpp> #include <boost/functional/hash.hpp>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -208,11 +208,12 @@ grid_simplify_point_set(
double epsilon, double epsilon,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::const_type PointMap;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
// actual type of input points // actual type of input points

View File

@ -41,7 +41,7 @@
#include <CGAL/Iterator_range.h> #include <CGAL/Iterator_range.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
namespace CGAL { namespace CGAL {
@ -161,7 +161,8 @@ namespace CGAL {
hierarchy_simplify_point_set (PointRange& points, hierarchy_simplify_point_set (PointRange& points,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -172,10 +173,10 @@ namespace CGAL {
typedef typename Kernel::Vector_3 Vector; typedef typename Kernel::Vector_3 Vector;
typedef typename Kernel::FT FT; typedef typename Kernel::FT FT;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
unsigned int size = choose_param(get_param(np, internal_np::size), 10); unsigned int size = choose_parameter(get_parameter(np, internal_np::size), 10);
double var_max = choose_param(get_param(np, internal_np::maximum_variation), 1./3.); double var_max = choose_parameter(get_parameter(np, internal_np::maximum_variation), 1./3.);
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
typedef typename std::iterator_traits<typename PointRange::iterator>::value_type Input_type; typedef typename std::iterator_traits<typename PointRange::iterator>::value_type Input_type;

View File

@ -35,7 +35,7 @@
#include <CGAL/Memory_sizer.h> #include <CGAL/Memory_sizer.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -206,7 +206,8 @@ jet_estimate_normals(
unsigned int k, unsigned int k,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
CGAL_TRACE("Calls jet_estimate_normals()\n"); CGAL_TRACE("Calls jet_estimate_normals()\n");
@ -224,10 +225,10 @@ jet_estimate_normals(
typename GetSvdTraits<NamedParameters>::NoTraits>::value), typename GetSvdTraits<NamedParameters>::NoTraits>::value),
"Error: no SVD traits"); "Error: no SVD traits");
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
unsigned int degree_fitting = choose_param(get_param(np, internal_np::degree_fitting), 2); unsigned int degree_fitting = choose_parameter(get_parameter(np, internal_np::degree_fitting), 2);
FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), FT(0)); FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), FT(0));
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());

View File

@ -34,7 +34,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -210,7 +210,8 @@ jet_smooth_point_set(
unsigned int k, unsigned int k,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -221,12 +222,12 @@ jet_smooth_point_set(
typename GetSvdTraits<NamedParameters>::NoTraits>::value), typename GetSvdTraits<NamedParameters>::NoTraits>::value),
"Error: no SVD traits"); "Error: no SVD traits");
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
typename Kernel::FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), typename Kernel::FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius),
typename Kernel::FT(0)); typename Kernel::FT(0));
unsigned int degree_fitting = choose_param(get_param(np, internal_np::degree_fitting), 2); unsigned int degree_fitting = choose_parameter(get_parameter(np, internal_np::degree_fitting), 2);
unsigned int degree_monge = choose_param(get_param(np, internal_np::degree_monge), 2); unsigned int degree_monge = choose_parameter(get_parameter(np, internal_np::degree_monge), 2);
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
typedef typename Kernel::Point_3 Point; typedef typename Kernel::Point_3 Point;

View File

@ -36,7 +36,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <CGAL/use.h> #include <CGAL/use.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -613,7 +613,9 @@ mst_orient_normals(
unsigned int k, unsigned int k,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
CGAL_TRACE("Calls mst_orient_normals()\n"); CGAL_TRACE("Calls mst_orient_normals()\n");
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -625,8 +627,8 @@ mst_orient_normals(
typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value), typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value),
"Error: no normal map"); "Error: no normal map");
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
typename Kernel::FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), typename Kernel::FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius),
typename Kernel::FT(0)); typename Kernel::FT(0));
ConstrainedMap constrained_map = choose_param(get_param(np, internal_np::point_is_constrained), ConstrainedMap()); ConstrainedMap constrained_map = choose_param(get_param(np, internal_np::point_is_constrained), ConstrainedMap());

View File

@ -36,7 +36,7 @@
#include <CGAL/Memory_sizer.h> #include <CGAL/Memory_sizer.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -195,7 +195,9 @@ pca_estimate_normals(
unsigned int k, unsigned int k,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
CGAL_TRACE("Calls pca_estimate_normals()\n"); CGAL_TRACE("Calls pca_estimate_normals()\n");
// basic geometric types // basic geometric types
@ -208,10 +210,10 @@ pca_estimate_normals(
typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value), typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value),
"Error: no normal map"); "Error: no normal map");
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), FT(0)); FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), FT(0));
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
typedef typename Kernel::Point_3 Point; typedef typename Kernel::Point_3 Point;

View File

@ -31,7 +31,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <CGAL/Iterator_range.h> #include <CGAL/Iterator_range.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>

View File

@ -32,7 +32,7 @@
#include <CGAL/point_set_processing_assertions.h> #include <CGAL/point_set_processing_assertions.h>
#include <functional> #include <functional>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <iterator> #include <iterator>
@ -153,17 +153,18 @@ remove_outliers(
unsigned int k, unsigned int k,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// geometric types // geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
typename Kernel::FT neighbor_radius = choose_param(get_param(np, internal_np::neighbor_radius), typename Kernel::FT neighbor_radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius),
typename Kernel::FT(0)); typename Kernel::FT(0));
double threshold_percent = choose_param(get_param(np, internal_np::threshold_percent), 10.); double threshold_percent = choose_parameter(get_parameter(np, internal_np::threshold_percent), 10.);
double threshold_distance = choose_param(get_param(np, internal_np::threshold_distance), 0.); double threshold_distance = choose_parameter(get_parameter(np, internal_np::threshold_distance), 0.);
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());

View File

@ -42,7 +42,7 @@
#include <CGAL/Delaunay_triangulation_3.h> #include <CGAL/Delaunay_triangulation_3.h>
#include <CGAL/Triangulation_vertex_base_with_info_3.h> #include <CGAL/Triangulation_vertex_base_with_info_3.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <boost/iterator/counting_iterator.hpp> #include <boost/iterator/counting_iterator.hpp>
@ -211,7 +211,8 @@ public:
double epsilon, double epsilon,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
@ -226,11 +227,11 @@ public:
typename Point_set_processing_3::GetPlaneIndexMap<NamedParameters>::NoMap>::value), typename Point_set_processing_3::GetPlaneIndexMap<NamedParameters>::NoMap>::value),
"Error: no plane index map"); "Error: no plane index map");
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
PlaneMap plane_map = choose_param(get_param(np, internal_np::plane_map), PlaneMap()); PlaneMap plane_map = choose_parameter(get_parameter(np, internal_np::plane_map), PlaneMap());
PlaneIndexMap index_map = choose_param(get_param(np, internal_np::plane_index_map), PlaneIndexMap()); PlaneIndexMap index_map = choose_parameter(get_parameter(np, internal_np::plane_index_map), PlaneIndexMap());
double attraction_factor = choose_param(get_param(np, internal_np::attraction_factor), 3.); double attraction_factor = choose_parameter(get_parameter(np, internal_np::attraction_factor), 3.);
m_points.reserve(points.size()); m_points.reserve(points.size());
m_normals.reserve(points.size()); m_normals.reserve(points.size());
@ -1529,7 +1530,8 @@ structure_point_set (const PointRange& points,
double epsilon, double epsilon,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel;

View File

@ -38,7 +38,7 @@
#include <CGAL/Orthogonal_k_neighbor_search.h> #include <CGAL/Orthogonal_k_neighbor_search.h>
#include <CGAL/Fuzzy_sphere.h> #include <CGAL/Fuzzy_sphere.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/Default_diagonalize_traits.h> #include <CGAL/Default_diagonalize_traits.h>
@ -265,12 +265,14 @@ compute_vcm (const PointRange& points,
double convolution_radius, double convolution_radius,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
Kernel kernel; Kernel kernel;
// First, compute the VCM for each point // First, compute the VCM for each point
@ -323,7 +325,9 @@ vcm_estimate_normals_internal (PointRange& points,
int nb_neighbors_convolve = -1 ///< number of neighbors used during the convolution. int nb_neighbors_convolve = -1 ///< number of neighbors used during the convolution.
) )
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
typedef typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::type NormalMap; typedef typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::type NormalMap;
@ -334,8 +338,8 @@ vcm_estimate_normals_internal (PointRange& points,
typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value), typename Point_set_processing_3::GetNormalMap<PointRange, NamedParameters>::NoMap>::value),
"Error: no normal map"); "Error: no normal map");
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
NormalMap normal_map = choose_param(get_param(np, internal_np::normal_map), NormalMap()); NormalMap normal_map = choose_parameter(get_parameter(np, internal_np::normal_map), NormalMap());
typedef std::array<double, 6> Covariance; typedef std::array<double, 6> Covariance;

View File

@ -32,7 +32,7 @@
#include <CGAL/Memory_sizer.h> #include <CGAL/Memory_sizer.h>
#include <CGAL/compute_average_spacing.h> #include <CGAL/compute_average_spacing.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/algorithm.h> #include <CGAL/algorithm.h>
#include <iterator> #include <iterator>
@ -470,18 +470,19 @@ wlop_simplify_and_regularize_point_set(
const NamedParameters& np const NamedParameters& np
) )
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
// basic geometric types // basic geometric types
typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap; typedef typename Point_set_processing_3::GetPointMap<PointRange, NamedParameters>::type PointMap;
typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel; typedef typename Point_set_processing_3::GetK<PointRange, NamedParameters>::Kernel Kernel;
PointMap point_map = choose_param(get_param(np, internal_np::point_map), PointMap()); PointMap point_map = choose_parameter(get_parameter(np, internal_np::point_map), PointMap());
double select_percentage = choose_param(get_param(np, internal_np::select_percentage), 5.); double select_percentage = choose_parameter(get_parameter(np, internal_np::select_percentage), 5.);
double radius = choose_param(get_param(np, internal_np::neighbor_radius), -1); double radius = choose_parameter(get_parameter(np, internal_np::neighbor_radius), -1);
unsigned int iter_number = choose_param(get_param(np, internal_np::number_of_iterations), 35); unsigned int iter_number = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 35);
bool require_uniform_sampling = choose_param(get_param(np, internal_np::require_uniform_sampling), false); bool require_uniform_sampling = choose_parameter(get_parameter(np, internal_np::require_uniform_sampling), false);
const std::function<bool(double)>& callback = choose_param(get_param(np, internal_np::callback), const std::function<bool(double)>& callback = choose_parameter(get_parameter(np, internal_np::callback),
std::function<bool(double)>()); std::function<bool(double)>());
typedef typename Kernel::Point_3 Point; typedef typename Kernel::Point_3 Point;

View File

@ -65,14 +65,14 @@ namespace CGAL {
CGAL::Bbox_3 bbox(const PolygonMesh& pmesh, CGAL::Bbox_3 bbox(const PolygonMesh& pmesh,
const CGAL_PMP_NP_CLASS& np) const CGAL_PMP_NP_CLASS& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typename GetVertexPointMap<PolygonMesh, CGAL_PMP_NP_CLASS>::const_type typename GetVertexPointMap<PolygonMesh, CGAL_PMP_NP_CLASS>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, pmesh)); get_const_property_map(CGAL::vertex_point, pmesh));
typedef typename GetGeomTraits<PolygonMesh, CGAL_PMP_NP_CLASS>::type GT; typedef typename GetGeomTraits<PolygonMesh, CGAL_PMP_NP_CLASS>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object(); typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object();
typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor;
@ -115,14 +115,14 @@ namespace CGAL {
const PolygonMesh& pmesh, const PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, pmesh)); get_const_property_map(CGAL::vertex_point, pmesh));
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object(); typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object();
return get_bbox( get(vpm, vd) ); return get_bbox( get(vpm, vd) );
@ -158,14 +158,14 @@ namespace CGAL {
const PolygonMesh& pmesh, const PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, pmesh)); get_const_property_map(CGAL::vertex_point, pmesh));
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object(); typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object();
return get_bbox( get(vpm, source(ed, pmesh)) ) + return get_bbox( get(vpm, source(ed, pmesh)) ) +
@ -202,14 +202,14 @@ namespace CGAL {
const PolygonMesh& pmesh, const PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, pmesh)); get_const_property_map(CGAL::vertex_point, pmesh));
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object(); typename GT::Construct_bbox_3 get_bbox = gt.construct_bbox_3_object();
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;

View File

@ -199,7 +199,7 @@ namespace Polygon_mesh_processing {
} }
//face index map given as a named parameter, or as an internal property map //face index map given as a named parameter, or as an internal property map
FIMap fim = boost::choose_param(get_param(np, internal_np::face_index), FIMap fim = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(CGAL::face_index, pmesh)); get_const_property_map(CGAL::face_index, pmesh));
return internal::border_halfedges_impl(faces, fim, out, pmesh, np); return internal::border_halfedges_impl(faces, fim, out, pmesh, np);

View File

@ -71,7 +71,7 @@ clip_to_bbox(const Plane_3& plane,
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::type Vpm; NamedParameters>::type Vpm;
Vpm vpm_out = boost::choose_param(boost::get_param(np, internal_np::vertex_point), Vpm vpm_out = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm_out)); get_property_map(boost::vertex_point, tm_out));
@ -334,7 +334,7 @@ clip( TriangleMesh& tm,
const NamedParameters2& np_c) const NamedParameters2& np_c)
{ {
const bool clip_volume = const bool clip_volume =
boost::choose_param(boost::get_param(np_tm, internal_np::clip_volume), false); parameters::choose_parameter(parameters::get_parameter(np_tm, internal_np::clip_volume), false);
if (clip_volume && is_closed(tm)) if (clip_volume && is_closed(tm))
return corefine_and_compute_intersection(tm, clipper, tm, np_tm, np_c); return corefine_and_compute_intersection(tm, clipper, tm, np_tm, np_c);

View File

@ -137,14 +137,14 @@ compute_face_normal(typename boost::graph_traits<PolygonMesh>::face_descriptor f
, const PolygonMesh& pmesh , const PolygonMesh& pmesh
, const NamedParameters& np) , const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
GT traits = choose_param(get_param(np, internal_np::geom_traits), GT()); GT traits = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pmesh)); get_const_property_map(vertex_point, pmesh));
typedef typename GT::Point_3 Point; typedef typename GT::Point_3 Point;
@ -234,18 +234,19 @@ compute_vertex_normal(typename boost::graph_traits<PolygonMesh>::vertex_descript
const NamedParameters& np const NamedParameters& np
) )
{ {
using boost::choose_param; using parameters::choose_parameter;
using parameters::get_parameter;
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
typedef typename GT::Vector_3 Vector; typedef typename GT::Vector_3 Vector;
GT traits = choose_param(get_param(np, internal_np::geom_traits), GT()); GT traits = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetFaceNormalMap<PolygonMesh, NamedParameters>::NoMap DefaultMap; typedef typename GetFaceNormalMap<PolygonMesh, NamedParameters>::NoMap DefaultMap;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::face_normal_t, internal_np::face_normal_t,
NamedParameters, NamedParameters,
DefaultMap> ::type FaceNormalMap; DefaultMap> ::type FaceNormalMap;
FaceNormalMap fnmap = choose_param(get_param(np, internal_np::face_normal), DefaultMap()); FaceNormalMap fnmap = choose_parameter(get_parameter(np, internal_np::face_normal), DefaultMap());
bool fnmap_valid bool fnmap_valid
= !boost::is_same<FaceNormalMap, = !boost::is_same<FaceNormalMap,
DefaultMap DefaultMap

View File

@ -29,7 +29,7 @@
#include<set> #include<set>
#include<vector> #include<vector>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/helpers.h> #include <CGAL/boost/graph/helpers.h>
#include <boost/graph/graph_traits.hpp> #include <boost/graph/graph_traits.hpp>
#include <boost/graph/filtered_graph.hpp> #include <boost/graph/filtered_graph.hpp>
@ -132,16 +132,16 @@ connected_component(typename boost::graph_traits<PolygonMesh>::face_descriptor s
, FaceOutputIterator out , FaceOutputIterator out
, const NamedParameters& np) , const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, NamedParameters,
internal::No_constraint<PolygonMesh>//default internal::No_constraint<PolygonMesh>//default
> ::type EdgeConstraintMap; > ::type EdgeConstraintMap;
EdgeConstraintMap ecmap EdgeConstraintMap ecmap
= choose_param(get_param(np, internal_np::edge_is_constrained), = choose_parameter(get_parameter(np, internal_np::edge_is_constrained),
internal::No_constraint<PolygonMesh>()); internal::No_constraint<PolygonMesh>());
typedef typename boost::graph_traits<PolygonMesh>::face_descriptor face_descriptor; typedef typename boost::graph_traits<PolygonMesh>::face_descriptor face_descriptor;
@ -212,16 +212,16 @@ connected_components(const PolygonMesh& pmesh,
FaceComponentMap fcm, FaceComponentMap fcm,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, NamedParameters,
internal::No_constraint<PolygonMesh>//default internal::No_constraint<PolygonMesh>//default
> ::type EdgeConstraintMap; > ::type EdgeConstraintMap;
EdgeConstraintMap ecmap EdgeConstraintMap ecmap
= choose_param(get_param(np, internal_np::edge_is_constrained), = choose_parameter(get_parameter(np, internal_np::edge_is_constrained),
internal::No_constraint<PolygonMesh>()); internal::No_constraint<PolygonMesh>());
typedef Dual<PolygonMesh> Dual; typedef Dual<PolygonMesh> Dual;
@ -233,7 +233,7 @@ connected_components(const PolygonMesh& pmesh,
internal::No_border<PolygonMesh, EdgeConstraintMap>(pmesh, ecmap)); internal::No_border<PolygonMesh, EdgeConstraintMap>(pmesh, ecmap));
typename GetFaceIndexMap<PolygonMesh, NamedParameters>::const_type typename GetFaceIndexMap<PolygonMesh, NamedParameters>::const_type
fimap = choose_param(get_param(np, internal_np::face_index), fimap = choose_parameter(get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, pmesh)); get_const_property_map(boost::face_index, pmesh));
return boost::connected_components(finite_dual, return boost::connected_components(finite_dual,
@ -304,12 +304,12 @@ std::size_t keep_largest_connected_components(PolygonMesh& pmesh,
typedef PolygonMesh PM; typedef PolygonMesh PM;
typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor; typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
// FaceIndexMap // FaceIndexMap
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FaceIndexMap; typedef typename GetFaceIndexMap<PM, NamedParameters>::type FaceIndexMap;
FaceIndexMap fimap = choose_param(get_param(np, internal_np::face_index), FaceIndexMap fimap = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh)); get_property_map(boost::face_index, pmesh));
// FaceSizeMap // FaceSizeMap
@ -411,12 +411,12 @@ std::size_t keep_large_connected_components(PolygonMesh& pmesh,
typedef PolygonMesh PM; typedef PolygonMesh PM;
typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor; typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
// FaceIndexMap // FaceIndexMap
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FaceIndexMap; typedef typename GetFaceIndexMap<PM, NamedParameters>::type FaceIndexMap;
FaceIndexMap fim = choose_param(get_param(np, internal_np::face_index), FaceIndexMap fim = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh)); get_property_map(boost::face_index, pmesh));
typedef typename boost::lookup_named_param_def<internal_np::face_size_map_t, typedef typename boost::lookup_named_param_def<internal_np::face_size_map_t,
@ -477,8 +477,8 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh
, const NamedParameters& np) , const NamedParameters& np)
{ {
typedef PolygonMesh PM; typedef PolygonMesh PM;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::graph_traits<PolygonMesh>::face_descriptor face_descriptor; typedef typename boost::graph_traits<PolygonMesh>::face_descriptor face_descriptor;
typedef typename boost::graph_traits<PolygonMesh>::face_iterator face_iterator; typedef typename boost::graph_traits<PolygonMesh>::face_iterator face_iterator;
@ -490,7 +490,7 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh
//VertexIndexMap //VertexIndexMap
typedef typename GetVertexIndexMap<PM, NamedParameters>::type VertexIndexMap; typedef typename GetVertexIndexMap<PM, NamedParameters>::type VertexIndexMap;
VertexIndexMap vim = choose_param(get_param(np, internal_np::vertex_index), VertexIndexMap vim = choose_parameter(get_parameter(np, internal_np::vertex_index),
get_const_property_map(boost::vertex_index, pmesh)); get_const_property_map(boost::vertex_index, pmesh));
std::set<std::size_t> cc_to_keep; std::set<std::size_t> cc_to_keep;
@ -727,12 +727,12 @@ void remove_connected_components(PolygonMesh& pmesh
if (components_to_remove.empty()) return; if (components_to_remove.empty()) return;
typedef PolygonMesh PM; typedef PolygonMesh PM;
typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor; typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
//FaceIndexMap //FaceIndexMap
typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::type FaceIndexMap; typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::type FaceIndexMap;
FaceIndexMap fim = choose_param(get_param(np, internal_np::face_index), FaceIndexMap fim = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh)); get_property_map(boost::face_index, pmesh));
//vector_property_map //vector_property_map
@ -785,12 +785,12 @@ void keep_connected_components(PolygonMesh& pmesh
typedef PolygonMesh PM; typedef PolygonMesh PM;
typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor; typedef typename boost::graph_traits<PM>::face_descriptor face_descriptor;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
//FaceIndexMap //FaceIndexMap
typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::type FaceIndexMap; typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::type FaceIndexMap;
FaceIndexMap fim = choose_param(get_param(np, internal_np::face_index), FaceIndexMap fim = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh)); get_property_map(boost::face_index, pmesh));
//vector_property_map //vector_property_map

View File

@ -193,10 +193,10 @@ bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np)
if (!is_closed(tm)) return false; if (!is_closed(tm)) return false;
if (!is_triangle_mesh(tm)) return false; if (!is_triangle_mesh(tm)) return false;
Vpm vpm = boost::choose_param(boost::get_param(np, internal_np::vertex_point), Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm)); get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = boost::choose_param(boost::get_param(np, internal_np::face_index), Fid_map fid_map = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm)); get_const_property_map(boost::face_index, tm));
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1)); std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));
@ -249,13 +249,13 @@ bool does_bound_a_volume(const TriangleMesh& tm)
/// \endcond /// \endcond
#define CGAL_COREF_SET_OUTPUT_EDGE_MARK_MAP(I) \ #define CGAL_COREF_SET_OUTPUT_EDGE_MARK_MAP(I) \
typedef typename boost::lookup_named_param_def < \ typedef typename internal_np::Lookup_named_param_def < \
internal_np::edge_is_constrained_t, \ internal_np::edge_is_constrained_t, \
NamedParametersOut##I, \ NamedParametersOut##I, \
Corefinement::No_mark<TriangleMesh> \ Corefinement::No_mark<TriangleMesh> \
> ::type Ecm_out_##I; \ > ::type Ecm_out_##I; \
Ecm_out_##I ecm_out_##I = \ Ecm_out_##I ecm_out_##I = \
boost::choose_param( boost::get_param(std::get<I>(nps_out), internal_np::edge_is_constrained), \ internal_np::choose_parameter( internal_np::get_parameter(std::get<I>(nps_out), internal_np::edge_is_constrained), \
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
@ -361,7 +361,7 @@ corefine_and_compute_boolean_operations(
NamedParametersOut3>& nps_out) NamedParametersOut3>& nps_out)
{ {
const bool throw_on_self_intersection = const bool throw_on_self_intersection =
boost::choose_param(boost::get_param(np1, internal_np::throw_on_self_intersection), false); parameters::choose_parameter(parameters::get_parameter(np1, internal_np::throw_on_self_intersection), false);
// Vertex point maps // Vertex point maps
//for input meshes //for input meshes
@ -374,10 +374,10 @@ corefine_and_compute_boolean_operations(
static const bool same_vpm = (boost::is_same<Vpm,Vpm2>::value); ) static const bool same_vpm = (boost::is_same<Vpm,Vpm2>::value); )
CGAL_static_assertion(same_vpm); CGAL_static_assertion(same_vpm);
Vpm vpm1 = boost::choose_param(boost::get_param(np1, internal_np::vertex_point), Vpm vpm1 = parameters::choose_parameter(parameters::get_parameter(np1, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm1)); get_property_map(boost::vertex_point, tm1));
Vpm vpm2 = boost::choose_param(boost::get_param(np2, internal_np::vertex_point), Vpm vpm2 = parameters::choose_parameter(parameters::get_parameter(np2, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm2)); get_property_map(boost::vertex_point, tm2));
typedef typename boost::property_traits<Vpm>::value_type Point_3; typedef typename boost::property_traits<Vpm>::value_type Point_3;
@ -494,21 +494,21 @@ corefine_and_compute_boolean_operations(
// Edge is-constrained maps // Edge is-constrained maps
//for input meshes //for input meshes
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters1, NamedParameters1,
Corefinement::No_mark<TriangleMesh>//default Corefinement::No_mark<TriangleMesh>//default
> ::type Ecm1; > ::type Ecm1;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters2, NamedParameters2,
Corefinement::No_mark<TriangleMesh>//default Corefinement::No_mark<TriangleMesh>//default
> ::type Ecm2; > ::type Ecm2;
Ecm1 ecm1 = boost::choose_param( boost::get_param(np1, internal_np::edge_is_constrained), Ecm1 ecm1 = parameters::choose_parameter( parameters::get_parameter(np1, internal_np::edge_is_constrained),
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
Ecm2 ecm2 = boost::choose_param( boost::get_param(np2, internal_np::edge_is_constrained), Ecm2 ecm2 = parameters::choose_parameter( parameters::get_parameter(np2, internal_np::edge_is_constrained),
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
typedef Corefinement::Ecm_bind<TriangleMesh, Ecm1, Ecm2> Ecm_in; typedef Corefinement::Ecm_bind<TriangleMesh, Ecm1, Ecm2> Ecm_in;
@ -533,17 +533,17 @@ corefine_and_compute_boolean_operations(
static const bool same_fidmap = (boost::is_same<Fid_map,Fid_map2>::value);) static const bool same_fidmap = (boost::is_same<Fid_map,Fid_map2>::value);)
CGAL_static_assertion(same_fidmap); CGAL_static_assertion(same_fidmap);
Fid_map fid_map1 = boost::choose_param(boost::get_param(np1, internal_np::face_index), Fid_map fid_map1 = parameters::choose_parameter(parameters::get_parameter(np1, internal_np::face_index),
get_property_map(boost::face_index, tm1)); get_property_map(boost::face_index, tm1));
Fid_map fid_map2 = boost::choose_param(boost::get_param(np2, internal_np::face_index), Fid_map fid_map2 = parameters::choose_parameter(parameters::get_parameter(np2, internal_np::face_index),
get_property_map(boost::face_index, tm2)); get_property_map(boost::face_index, tm2));
// User visitor // User visitor
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::graph_visitor_t, internal_np::graph_visitor_t,
NamedParameters1, NamedParameters1,
Corefinement::Default_visitor<TriangleMesh>//default Corefinement::Default_visitor<TriangleMesh>//default
> ::type User_visitor; > ::type User_visitor;
User_visitor uv( boost::choose_param( boost::get_param(np1, internal_np::graph_visitor), User_visitor uv( parameters::choose_parameter( parameters::get_parameter(np1, internal_np::graph_visitor),
Corefinement::Default_visitor<TriangleMesh>() ) ); Corefinement::Default_visitor<TriangleMesh>() ) );
// surface intersection algorithm call // surface intersection algorithm call
@ -564,7 +564,7 @@ corefine_and_compute_boolean_operations(
vpm_out_tuple, ecms_out, uv, output); vpm_out_tuple, ecms_out, uv, output);
// special case used for clipping open meshes // special case used for clipping open meshes
if ( boost::choose_param( boost::get_param(np1, internal_np::use_bool_op_to_clip_surface), if ( parameters::choose_parameter( parameters::get_parameter(np1, internal_np::use_bool_op_to_clip_surface),
false) ) false) )
{ {
CGAL_assertion(output[Corefinement::INTERSECTION] != boost::none); CGAL_assertion(output[Corefinement::INTERSECTION] != boost::none);
@ -572,7 +572,7 @@ corefine_and_compute_boolean_operations(
CGAL_assertion(output[Corefinement::TM1_MINUS_TM2] == boost::none); CGAL_assertion(output[Corefinement::TM1_MINUS_TM2] == boost::none);
CGAL_assertion(output[Corefinement::TM2_MINUS_TM1] == boost::none); CGAL_assertion(output[Corefinement::TM2_MINUS_TM1] == boost::none);
const bool use_compact_clipper = const bool use_compact_clipper =
boost::choose_param( boost::get_param(np1, internal_np::use_compact_clipper), parameters::choose_parameter( parameters::get_parameter(np1, internal_np::use_compact_clipper),
true); true);
ob.setup_for_clipping_a_surface(use_compact_clipper); ob.setup_for_clipping_a_surface(use_compact_clipper);
} }
@ -841,7 +841,7 @@ corefine_and_compute_difference( TriangleMesh& tm1,
const NamedParameters2& np2) const NamedParameters2& np2)
{ {
const bool throw_on_self_intersection = const bool throw_on_self_intersection =
boost::choose_param(boost::get_param(np1, internal_np::throw_on_self_intersection), false); parameters::choose_parameter(parameters::get_parameter(np1, internal_np::throw_on_self_intersection), false);
// Vertex point maps // Vertex point maps
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
@ -853,28 +853,28 @@ corefine_and_compute_difference( TriangleMesh& tm1,
static const bool same_vpm = (boost::is_same<Vpm,Vpm2>::value);) static const bool same_vpm = (boost::is_same<Vpm,Vpm2>::value);)
CGAL_static_assertion(same_vpm); CGAL_static_assertion(same_vpm);
Vpm vpm1 = boost::choose_param(boost::get_param(np1, internal_np::vertex_point), Vpm vpm1 = parameters::choose_parameter(parameters::get_parameter(np1, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm1)); get_property_map(boost::vertex_point, tm1));
Vpm vpm2 = boost::choose_param(boost::get_param(np2, internal_np::vertex_point), Vpm vpm2 = parameters::choose_parameter(parameters::get_parameter(np2, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm2)); get_property_map(boost::vertex_point, tm2));
// Edge is-constrained maps // Edge is-constrained maps
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters1, NamedParameters1,
Corefinement::No_mark<TriangleMesh>//default Corefinement::No_mark<TriangleMesh>//default
> ::type Ecm1; > ::type Ecm1;
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters2, NamedParameters2,
Corefinement::No_mark<TriangleMesh>//default Corefinement::No_mark<TriangleMesh>//default
> ::type Ecm2; > ::type Ecm2;
Ecm1 ecm1 = boost::choose_param( boost::get_param(np1, internal_np::edge_is_constrained), Ecm1 ecm1 = parameters::choose_parameter( parameters::get_parameter(np1, internal_np::edge_is_constrained),
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
Ecm2 ecm2 = boost::choose_param( boost::get_param(np2, internal_np::edge_is_constrained), Ecm2 ecm2 = parameters::choose_parameter( parameters::get_parameter(np2, internal_np::edge_is_constrained),
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
typedef Corefinement::Ecm_bind<TriangleMesh, Ecm1, Ecm2> Ecm; typedef Corefinement::Ecm_bind<TriangleMesh, Ecm1, Ecm2> Ecm;
@ -887,12 +887,12 @@ corefine_and_compute_difference( TriangleMesh& tm1,
} }
// User visitor // User visitor
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::graph_visitor_t, internal_np::graph_visitor_t,
NamedParameters1, NamedParameters1,
Corefinement::Default_visitor<TriangleMesh>//default Corefinement::Default_visitor<TriangleMesh>//default
> ::type User_visitor; > ::type User_visitor;
User_visitor uv( boost::choose_param( boost::get_param(np1, internal_np::graph_visitor), User_visitor uv( parameters::choose_parameter( parameters::get_parameter(np1, internal_np::graph_visitor),
Corefinement::Default_visitor<TriangleMesh>() ) ); Corefinement::Default_visitor<TriangleMesh>() ) );
// surface intersection algorithm call // surface intersection algorithm call
@ -945,27 +945,27 @@ namespace experimental {
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::type Vpm; NamedParameters>::type Vpm;
Vpm vpm = boost::choose_param(boost::get_param(np, internal_np::vertex_point), Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm)); get_property_map(boost::vertex_point, tm));
// Edge is-constrained maps // Edge is-constrained maps
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, NamedParameters,
Corefinement::No_mark<TriangleMesh>//default Corefinement::No_mark<TriangleMesh>//default
> ::type Ecm; > ::type Ecm;
Ecm ecm = boost::choose_param( boost::get_param(np, internal_np::edge_is_constrained), Ecm ecm = parameters::choose_parameter( parameters::get_parameter(np, internal_np::edge_is_constrained),
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
// User visitor // User visitor
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::graph_visitor_t, internal_np::graph_visitor_t,
NamedParameters, NamedParameters,
Corefinement::Default_visitor<TriangleMesh>//default Corefinement::Default_visitor<TriangleMesh>//default
> ::type User_visitor; > ::type User_visitor;
User_visitor uv( boost::choose_param( boost::get_param(np, internal_np::graph_visitor), User_visitor uv( parameters::choose_parameter( parameters::get_parameter(np, internal_np::graph_visitor),
Corefinement::Default_visitor<TriangleMesh>() ) ); Corefinement::Default_visitor<TriangleMesh>() ) );
@ -1020,28 +1020,28 @@ namespace experimental {
// Vertex point maps // Vertex point maps
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::type Vpm; NamedParameters>::type Vpm;
Vpm vpm = boost::choose_param(boost::get_param(np, internal_np::vertex_point), Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm)); get_property_map(boost::vertex_point, tm));
// Face index map // Face index map
typedef typename GetFaceIndexMap<TriangleMesh, typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters>::type Fid_map; NamedParameters>::type Fid_map;
Fid_map fid_map = boost::choose_param(boost::get_param(np, internal_np::face_index), Fid_map fid_map = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, tm)); get_property_map(boost::face_index, tm));
// Edge is-constrained maps // Edge is-constrained maps
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, NamedParameters,
Corefinement::No_mark<TriangleMesh>//default Corefinement::No_mark<TriangleMesh>//default
> ::type Ecm; > ::type Ecm;
Ecm ecm = boost::choose_param( boost::get_param(np, internal_np::edge_is_constrained), Ecm ecm = parameters::choose_parameter( parameters::get_parameter(np, internal_np::edge_is_constrained),
Corefinement::No_mark<TriangleMesh>() ); Corefinement::No_mark<TriangleMesh>() );
// User visitor // User visitor
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::graph_visitor_t, internal_np::graph_visitor_t,
NamedParameters, NamedParameters,
Corefinement::Default_visitor<TriangleMesh>//default Corefinement::Default_visitor<TriangleMesh>//default
> ::type User_visitor; > ::type User_visitor;
User_visitor uv( boost::choose_param( boost::get_param(np, internal_np::graph_visitor), User_visitor uv( parameters::choose_parameter( parameters::get_parameter(np, internal_np::graph_visitor),
Corefinement::Default_visitor<TriangleMesh>() ) ); Corefinement::Default_visitor<TriangleMesh>() ) );
// surface intersection algorithm call // surface intersection algorithm call

View File

@ -149,11 +149,11 @@ detect_surface_patches(PolygonMesh& p,
{ {
//extract types from NPs //extract types from NPs
typename GetFaceIndexMap<PolygonMesh, NamedParameters>::const_type typename GetFaceIndexMap<PolygonMesh, NamedParameters>::const_type
fimap = boost::choose_param(get_param(np, internal_np::face_index), fimap = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, p)); get_const_property_map(boost::face_index, p));
int offset = static_cast<int>( int offset = static_cast<int>(
boost::choose_param(get_param(np, internal_np::first_index), parameters::choose_parameter(parameters::get_parameter(np, internal_np::first_index),
1)); 1));
internal::PatchIdMapWrapper<PatchIdMap, internal::PatchIdMapWrapper<PatchIdMap,
@ -216,7 +216,7 @@ template<typename GT,
void sharp_call(PolygonMesh& pmesh, void sharp_call(PolygonMesh& pmesh,
FT& angle_in_deg, FT& angle_in_deg,
EIFMap edge_is_feature_map, EIFMap edge_is_feature_map,
const boost::param_not_found&) const internal_np::Param_not_found&)
{ {
typedef typename boost::graph_traits<PolygonMesh>::edge_descriptor edge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::edge_descriptor edge_descriptor;
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
@ -286,10 +286,10 @@ void detect_sharp_edges(PolygonMesh& pmesh,
{ {
//extract types from NPs //extract types from NPs
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
typedef typename GetGeomTraits<PolygonMesh, GT>::type::FT FT; typedef typename GT::FT FT;
internal::sharp_call<GT, FT>(pmesh, angle_in_deg, edge_is_feature_map, internal::sharp_call<GT, FT>(pmesh, angle_in_deg, edge_is_feature_map,
get_param(np, internal_np::vertex_feature_degree)); parameters::get_parameter(np, internal_np::vertex_feature_degree));
} }
@ -365,7 +365,7 @@ namespace internal
template<typename PolygonMesh, template<typename PolygonMesh,
typename PIDMap, typename PIDMap,
typename EIFMap> typename EIFMap>
void vip_call(PolygonMesh&, PIDMap, const boost::param_not_found&, EIFMap) void vip_call(PolygonMesh&, PIDMap, const internal_np::Param_not_found&, EIFMap)
{ {
//do nothing when the parameter is not given //do nothing when the parameter is not given
} }
@ -440,7 +440,7 @@ sharp_edges_segmentation(PolygonMesh& pmesh,
internal::detect_surface_patches(pmesh, patch_id_map, edge_is_feature_map, np); internal::detect_surface_patches(pmesh, patch_id_map, edge_is_feature_map, np);
internal::vip_call(pmesh, patch_id_map, internal::vip_call(pmesh, patch_id_map,
get_param(np, internal_np::vertex_incident_patches), edge_is_feature_map); parameters::get_parameter(np, internal_np::vertex_incident_patches), edge_is_feature_map);
return result; return result;
} }

View File

@ -340,32 +340,32 @@ sample_triangle_mesh(const TriangleMesh& tm,
typedef typename GT::halfedge_descriptor halfedge_descriptor; typedef typename GT::halfedge_descriptor halfedge_descriptor;
typedef typename GT::edge_descriptor edge_descriptor; typedef typename GT::edge_descriptor edge_descriptor;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
using boost::is_default_param; using parameters::is_default_parameter;
Vpm pmap = choose_param(get_param(np, internal_np::vertex_point), Vpm pmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, tm)); get_const_property_map(vertex_point, tm));
typedef Creator_uniform_3<typename Geom_traits::FT, typedef Creator_uniform_3<typename Geom_traits::FT,
typename Geom_traits::Point_3> Creator; typename Geom_traits::Point_3> Creator;
Geom_traits geomtraits = choose_param(get_param(np, internal_np::geom_traits), Geom_traits()); Geom_traits geomtraits = choose_parameter(get_parameter(np, internal_np::geom_traits), Geom_traits());
bool use_rs = choose_param(get_param(np, internal_np::random_uniform_sampling), true); bool use_rs = choose_parameter(get_parameter(np, internal_np::random_uniform_sampling), true);
bool use_gs = choose_param(get_param(np, internal_np::grid_sampling), false); bool use_gs = choose_parameter(get_parameter(np, internal_np::grid_sampling), false);
bool use_ms = choose_param(get_param(np, internal_np::monte_carlo_sampling), false); bool use_ms = choose_parameter(get_parameter(np, internal_np::monte_carlo_sampling), false);
if (use_gs || use_ms) if (use_gs || use_ms)
if (is_default_param(get_param(np, internal_np::random_uniform_sampling))) if (is_default_parameter(get_parameter(np, internal_np::random_uniform_sampling)))
use_rs=false; use_rs=false;
bool smpl_vrtcs = choose_param(get_param(np, internal_np::do_sample_vertices), true); bool smpl_vrtcs = choose_parameter(get_parameter(np, internal_np::do_sample_vertices), true);
bool smpl_dgs = choose_param(get_param(np, internal_np::do_sample_edges), true); bool smpl_dgs = choose_parameter(get_parameter(np, internal_np::do_sample_edges), true);
bool smpl_fcs = choose_param(get_param(np, internal_np::do_sample_faces), true); bool smpl_fcs = choose_parameter(get_parameter(np, internal_np::do_sample_faces), true);
double nb_pts_a_u = choose_param(get_param(np, internal_np::nb_points_per_area_unit), 0.); double nb_pts_a_u = choose_parameter(get_parameter(np, internal_np::nb_points_per_area_unit), 0.);
double nb_pts_l_u = choose_param(get_param(np, internal_np::nb_points_per_distance_unit), 0.); double nb_pts_l_u = choose_parameter(get_parameter(np, internal_np::nb_points_per_distance_unit), 0.);
// sample vertices // sample vertices
if (smpl_vrtcs) if (smpl_vrtcs)
@ -380,7 +380,7 @@ sample_triangle_mesh(const TriangleMesh& tm,
// grid sampling // grid sampling
if (use_gs) if (use_gs)
{ {
double grid_spacing_ = choose_param(get_param(np, internal_np::grid_spacing), 0.); double grid_spacing_ = choose_parameter(get_parameter(np, internal_np::grid_spacing), 0.);
if (grid_spacing_==0.) if (grid_spacing_==0.)
{ {
// set grid spacing to the shortest edge length // set grid spacing to the shortest edge length
@ -407,9 +407,9 @@ sample_triangle_mesh(const TriangleMesh& tm,
double min_edge_length = (std::numeric_limits<double>::max)(); double min_edge_length = (std::numeric_limits<double>::max)();
std::size_t nb_points_per_face = std::size_t nb_points_per_face =
choose_param(get_param(np, internal_np::number_of_points_per_face), 0); choose_parameter(get_parameter(np, internal_np::number_of_points_per_face), 0);
std::size_t nb_points_per_edge = std::size_t nb_points_per_edge =
choose_param(get_param(np, internal_np::number_of_points_per_edge), 0); choose_parameter(get_parameter(np, internal_np::number_of_points_per_edge), 0);
if ((nb_points_per_face == 0 && nb_pts_a_u ==0.) || if ((nb_points_per_face == 0 && nb_pts_a_u ==0.) ||
(nb_points_per_edge == 0 && nb_pts_l_u ==0.) ) (nb_points_per_edge == 0 && nb_pts_l_u ==0.) )
@ -488,7 +488,7 @@ sample_triangle_mesh(const TriangleMesh& tm,
// sample faces // sample faces
if(smpl_fcs) if(smpl_fcs)
{ {
std::size_t nb_points = choose_param(get_param(np, internal_np::number_of_points_on_faces), 0); std::size_t nb_points = choose_parameter(get_parameter(np, internal_np::number_of_points_on_faces), 0);
Random_points_in_triangle_mesh_3<TriangleMesh, Vpm, Creator> g(tm, pmap); Random_points_in_triangle_mesh_3<TriangleMesh, Vpm, Creator> g(tm, pmap);
if (nb_points == 0) if (nb_points == 0)
{ {
@ -504,7 +504,7 @@ sample_triangle_mesh(const TriangleMesh& tm,
if (smpl_dgs) if (smpl_dgs)
{ {
std::size_t nb_points = std::size_t nb_points =
choose_param(get_param(np, internal_np::number_of_points_on_edges), 0); choose_parameter(get_parameter(np, internal_np::number_of_points_on_edges), 0);
Random_points_on_edge_list_graph_3<TriangleMesh, Vpm, Creator> g(tm, pmap); Random_points_on_edge_list_graph_3<TriangleMesh, Vpm, Creator> g(tm, pmap);
if (nb_points == 0) if (nb_points == 0)
{ {
@ -630,7 +630,7 @@ double approximate_Hausdorff_distance( const TriangleMesh& tm1,
NamedParameters1>::type Geom_traits; NamedParameters1>::type Geom_traits;
return approximate_Hausdorff_distance<Concurrency_tag, Geom_traits>( return approximate_Hausdorff_distance<Concurrency_tag, Geom_traits>(
tm1, tm2, np1, choose_param(get_param(np2, internal_np::vertex_point), tm1, tm2, np1, parameters::choose_parameter(parameters::get_parameter(np2, internal_np::vertex_point),
get_const_property_map(vertex_point, tm2))); get_const_property_map(vertex_point, tm2)));
} }
@ -687,7 +687,7 @@ double max_distance_to_triangle_mesh(const PointRange& points,
NamedParameters>::type Geom_traits; NamedParameters>::type Geom_traits;
return approximate_Hausdorff_distance<Concurrency_tag, Geom_traits> return approximate_Hausdorff_distance<Concurrency_tag, Geom_traits>
(points,tm,choose_param(get_param(np, internal_np::vertex_point), (points,tm,parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, tm))); get_const_property_map(vertex_point, tm)));
} }
@ -734,7 +734,7 @@ double approximate_max_distance_to_point_set(const TriangleMesh& tm,
typename GT::halfedge_descriptor hd(halfedge(f,tm)); typename GT::halfedge_descriptor hd(halfedge(f,tm));
for(int i=0; i<3; ++i) for(int i=0; i<3; ++i)
{ {
points[i] = get(choose_param(get_param(np, internal_np::vertex_point), points[i] = get(parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, tm)), get_const_property_map(vertex_point, tm)),
target(hd, tm)); target(hd, tm));
hd = next(hd, tm); hd = next(hd, tm);

View File

@ -28,7 +28,7 @@
#include <CGAL/Polygon_mesh_processing/orientation.h> #include <CGAL/Polygon_mesh_processing/orientation.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/copy_face_graph.h> #include <CGAL/boost/graph/copy_face_graph.h>
#include <CGAL/Kernel_traits.h> #include <CGAL/Kernel_traits.h>
#include <CGAL/boost/graph/Euler_operations.h> #include <CGAL/boost/graph/Euler_operations.h>
@ -178,9 +178,12 @@ void extrude_mesh(const InputMesh& input,
typedef typename GetVertexPointMap < OutputMesh, NamedParameters2>::type VPMap; typedef typename GetVertexPointMap < OutputMesh, NamedParameters2>::type VPMap;
typedef typename GetVertexPointMap < InputMesh, NamedParameters1>::const_type IVPMap; typedef typename GetVertexPointMap < InputMesh, NamedParameters1>::const_type IVPMap;
VPMap output_vpm = choose_param(get_param(np_out, internal_np::vertex_point), using parameters::get_parameter;
using parameters::choose_parameter;
VPMap output_vpm = choose_parameter(get_parameter(np_out, internal_np::vertex_point),
get_property_map(vertex_point, output)); get_property_map(vertex_point, output));
IVPMap input_vpm = choose_param(get_param(np_in, internal_np::vertex_point), IVPMap input_vpm = choose_parameter(get_parameter(np_in, internal_np::vertex_point),
get_const_property_map(vertex_point, input)); get_const_property_map(vertex_point, input));
std::vector<std::pair<input_vertex_descriptor, output_vertex_descriptor> > bottom_v2v; std::vector<std::pair<input_vertex_descriptor, output_vertex_descriptor> > bottom_v2v;
@ -273,7 +276,7 @@ void extrude_mesh(const InputMesh& input,
const NamedParameters2& np_out) const NamedParameters2& np_out)
{ {
typedef typename GetVertexPointMap < OutputMesh, NamedParameters2>::type VPMap; typedef typename GetVertexPointMap < OutputMesh, NamedParameters2>::type VPMap;
VPMap output_vpm = choose_param(get_param(np_out, internal_np::vertex_point), VPMap output_vpm = parameters::choose_parameter(parameters::get_parameter(np_out, internal_np::vertex_point),
get_property_map(vertex_point, output)); get_property_map(vertex_point, output));
extrude_impl::Const_dist_translation< extrude_impl::Const_dist_translation<

View File

@ -116,8 +116,8 @@ namespace internal {
const VertexRange& vertices, const VertexRange& vertices,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
CGAL_precondition(is_triangle_mesh(tmesh)); CGAL_precondition(is_triangle_mesh(tmesh));
@ -149,13 +149,13 @@ namespace internal {
typedef CGAL::internal::Cotangent_weight_with_voronoi_area_fairing<TriangleMesh, VPMap> typedef CGAL::internal::Cotangent_weight_with_voronoi_area_fairing<TriangleMesh, VPMap>
Default_Weight_calculator; Default_Weight_calculator;
VPMap vpmap_ = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap_ = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tmesh)); get_property_map(vertex_point, tmesh));
return internal::fair(tmesh, vertices, return internal::fair(tmesh, vertices,
choose_param(get_param(np, internal_np::sparse_linear_solver), Default_solver()), choose_parameter(get_parameter(np, internal_np::sparse_linear_solver), Default_solver()),
choose_param(get_param(np, internal_np::weight_calculator), Default_Weight_calculator(tmesh, vpmap_)), choose_parameter(get_parameter(np, internal_np::weight_calculator), Default_Weight_calculator(tmesh, vpmap_)),
choose_param(get_param(np, internal_np::fairing_continuity), 1), choose_parameter(get_parameter(np, internal_np::fairing_continuity), 1),
vpmap_ vpmap_
); );
} }

View File

@ -206,8 +206,8 @@ boost::optional< typename TweakedGetVertexPointMap<PT, NP, PM>::type >
get_vpm(const NP& np, boost::optional<PM*> opm, boost::true_type) get_vpm(const NP& np, boost::optional<PM*> opm, boost::true_type)
{ {
if (boost::none == opm) return boost::none; if (boost::none == opm) return boost::none;
return boost::choose_param( return parameters::choose_parameter(
boost::get_param(np, internal_np::vertex_point), parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(boost::vertex_point, *(*opm)) ); get_property_map(boost::vertex_point, *(*opm)) );
} }

View File

@ -1059,7 +1059,7 @@ namespace internal {
// PMP book : // PMP book :
// "maps the vertices back to the surface" // "maps the vertices back to the surface"
void project_to_surface(boost::param_not_found) void project_to_surface(internal_np::Param_not_found)
{ {
//todo : handle the case of boundary vertices //todo : handle the case of boundary vertices
#ifdef CGAL_PMP_REMESHING_VERBOSE #ifdef CGAL_PMP_REMESHING_VERBOSE

View File

@ -25,7 +25,7 @@
#include <CGAL/license/Polygon_mesh_processing/core.h> #include <CGAL/license/Polygon_mesh_processing/core.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#define CGAL_PMP_NP_TEMPLATE_PARAMETERS CGAL_BGL_NP_TEMPLATE_PARAMETERS #define CGAL_PMP_NP_TEMPLATE_PARAMETERS CGAL_BGL_NP_TEMPLATE_PARAMETERS
#define CGAL_PMP_NP_CLASS CGAL_BGL_NP_CLASS #define CGAL_PMP_NP_CLASS CGAL_BGL_NP_CLASS

View File

@ -402,8 +402,8 @@ compute_face_face_intersection(const FaceRange& face_range1,
const NamedParameters1& np1, const NamedParameters1& np1,
const NamedParameters2& np2) const NamedParameters2& np2)
{ {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
CGAL_precondition(CGAL::is_triangle_mesh(tm1)); CGAL_precondition(CGAL::is_triangle_mesh(tm1));
CGAL_precondition(CGAL::is_triangle_mesh(tm2)); CGAL_precondition(CGAL::is_triangle_mesh(tm2));
@ -433,9 +433,9 @@ compute_face_face_intersection(const FaceRange& face_range1,
typedef typename GetVertexPointMap<TM, NamedParameters1>::const_type VertexPointMap1; typedef typename GetVertexPointMap<TM, NamedParameters1>::const_type VertexPointMap1;
typedef typename GetVertexPointMap<TM, NamedParameters2>::const_type VertexPointMap2; typedef typename GetVertexPointMap<TM, NamedParameters2>::const_type VertexPointMap2;
VertexPointMap1 vpmap1 = choose_param(get_param(np1, internal_np::vertex_point), VertexPointMap1 vpmap1 = choose_parameter(get_parameter(np1, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm1)); get_const_property_map(boost::vertex_point, tm1));
VertexPointMap2 vpmap2 = choose_param(get_param(np2, internal_np::vertex_point), VertexPointMap2 vpmap2 = choose_parameter(get_parameter(np2, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm2)); get_const_property_map(boost::vertex_point, tm2));
CGAL_static_assertion( CGAL_static_assertion(
(boost::is_same< (boost::is_same<
@ -461,7 +461,7 @@ compute_face_face_intersection(const FaceRange& face_range1,
// compute intersections filtered out by boxes // compute intersections filtered out by boxes
typedef typename GetGeomTraits<TM, NamedParameters1>::type GeomTraits; typedef typename GetGeomTraits<TM, NamedParameters1>::type GeomTraits;
GeomTraits gt = choose_param(get_param(np1, internal_np::geom_traits), GeomTraits()); GeomTraits gt = choose_parameter(get_parameter(np1, internal_np::geom_traits), GeomTraits());
internal::Intersect_faces<TM, internal::Intersect_faces<TM,
GeomTraits, GeomTraits,
@ -528,8 +528,8 @@ compute_face_polyline_intersection( const FaceRange& face_range,
OutputIterator out, OutputIterator out,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
CGAL_precondition(CGAL::is_triangle_mesh(tm)); CGAL_precondition(CGAL::is_triangle_mesh(tm));
@ -542,7 +542,7 @@ compute_face_polyline_intersection( const FaceRange& face_range,
typedef typename boost::graph_traits<TM>::face_descriptor face_descriptor; typedef typename boost::graph_traits<TM>::face_descriptor face_descriptor;
typedef typename GetVertexPointMap<TM, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<TM, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm)); get_const_property_map(boost::vertex_point, tm));
typedef typename boost::property_traits<VertexPointMap>::value_type Point; typedef typename boost::property_traits<VertexPointMap>::value_type Point;
CGAL_static_assertion( CGAL_static_assertion(
@ -588,7 +588,7 @@ compute_face_polyline_intersection( const FaceRange& face_range,
// compute intersections filtered out by boxes // compute intersections filtered out by boxes
typedef typename GetGeomTraits<TM, NamedParameters>::type GeomTraits; typedef typename GetGeomTraits<TM, NamedParameters>::type GeomTraits;
GeomTraits gt = choose_param(get_param(np, internal_np::geom_traits), GeomTraits()); GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GeomTraits());
internal::Intersect_face_polyline<TM, internal::Intersect_face_polyline<TM,
GeomTraits, GeomTraits,
@ -657,8 +657,8 @@ compute_face_polylines_intersection(const FaceRange& face_range,
OutputIterator out, OutputIterator out,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
CGAL_precondition(CGAL::is_triangle_mesh(tm)); CGAL_precondition(CGAL::is_triangle_mesh(tm));
@ -677,7 +677,7 @@ compute_face_polylines_intersection(const FaceRange& face_range,
typedef typename boost::graph_traits<TM>::face_descriptor face_descriptor; typedef typename boost::graph_traits<TM>::face_descriptor face_descriptor;
typedef typename GetVertexPointMap<TM, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<TM, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm)); get_const_property_map(boost::vertex_point, tm));
typedef typename boost::property_traits<VertexPointMap>::value_type Point; typedef typename boost::property_traits<VertexPointMap>::value_type Point;
typedef typename boost::range_value<PolylineRange>::type Polyline; typedef typename boost::range_value<PolylineRange>::type Polyline;
@ -731,7 +731,7 @@ compute_face_polylines_intersection(const FaceRange& face_range,
// compute intersections filtered out by boxes // compute intersections filtered out by boxes
typedef typename GetGeomTraits<TM, NamedParameters>::type GeomTraits; typedef typename GetGeomTraits<TM, NamedParameters>::type GeomTraits;
GeomTraits gt = choose_param(get_param(np, internal_np::geom_traits), GeomTraits()); GeomTraits gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GeomTraits());
internal::Intersect_face_polylines<TM, internal::Intersect_face_polylines<TM,
GeomTraits, GeomTraits,
@ -1236,10 +1236,10 @@ bool do_intersect(const TriangleMesh& tm1,
const NamedParameters1& np1, const NamedParameters1& np1,
const NamedParameters2& np2) const NamedParameters2& np2)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
bool test_overlap = choose_param(get_param(np1, internal_np::overlap_test),false) || bool test_overlap = choose_parameter(get_parameter(np1, internal_np::overlap_test),false) ||
choose_param(get_param(np2, internal_np::overlap_test),false); choose_parameter(get_parameter(np2, internal_np::overlap_test),false);
CGAL_precondition(CGAL::is_triangle_mesh(tm1)); CGAL_precondition(CGAL::is_triangle_mesh(tm1));
CGAL_precondition(CGAL::is_triangle_mesh(tm2)); CGAL_precondition(CGAL::is_triangle_mesh(tm2));
@ -1258,12 +1258,12 @@ bool do_intersect(const TriangleMesh& tm1,
{ {
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters1>::const_type VertexPointMap1; typedef typename GetVertexPointMap<TriangleMesh, NamedParameters1>::const_type VertexPointMap1;
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters2>::const_type VertexPointMap2; typedef typename GetVertexPointMap<TriangleMesh, NamedParameters2>::const_type VertexPointMap2;
VertexPointMap1 vpm1 = choose_param(get_param(np1, internal_np::vertex_point), VertexPointMap1 vpm1 = choose_parameter(get_parameter(np1, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm1)); get_const_property_map(boost::vertex_point, tm1));
VertexPointMap2 vpm2 = choose_param(get_param(np2, internal_np::vertex_point), VertexPointMap2 vpm2 = choose_parameter(get_parameter(np2, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm2)); get_const_property_map(boost::vertex_point, tm2));
typedef typename GetGeomTraits<TriangleMesh, NamedParameters1>::type GeomTraits; typedef typename GetGeomTraits<TriangleMesh, NamedParameters1>::type GeomTraits;
GeomTraits gt = choose_param(get_param(np1, internal_np::geom_traits), GeomTraits()); GeomTraits gt = choose_parameter(get_parameter(np1, internal_np::geom_traits), GeomTraits());
return internal::is_mesh2_in_mesh1(tm1, tm2, vpm1, vpm2, gt) || return internal::is_mesh2_in_mesh1(tm1, tm2, vpm1, vpm2, gt) ||
internal::is_mesh2_in_mesh1(tm2, tm1, vpm2, vpm1, gt); internal::is_mesh2_in_mesh1(tm2, tm1, vpm2, vpm1, gt);
@ -1513,17 +1513,17 @@ struct Mesh_callback
template<class Mesh_box> template<class Mesh_box>
void operator()(const Mesh_box* b1, const Mesh_box* b2) void operator()(const Mesh_box* b1, const Mesh_box* b2)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
std::size_t mesh_id_1 = std::distance(meshes.begin(), b1->info()); std::size_t mesh_id_1 = std::distance(meshes.begin(), b1->info());
std::size_t mesh_id_2 = std::distance(meshes.begin(), b2->info()); std::size_t mesh_id_2 = std::distance(meshes.begin(), b2->info());
VPM vpm1 = choose_param(get_param(*(nps.begin() + mesh_id_1), internal_np::vertex_point), VPM vpm1 = choose_parameter(get_parameter(*(nps.begin() + mesh_id_1), internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, *b1->info())); get_const_property_map(CGAL::vertex_point, *b1->info()));
VPM vpm2 = choose_param(get_param(*(nps.begin() + mesh_id_2), internal_np::vertex_point), VPM vpm2 = choose_parameter(get_parameter(*(nps.begin() + mesh_id_2), internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, *b2->info())); get_const_property_map(CGAL::vertex_point, *b2->info()));
//surfacic test //surfacic test
@ -1597,12 +1597,12 @@ OutputIterator intersecting_meshes(const TriangleMeshRange& range,
NamedParameters np, NamedParameters np,
NamedParametersRange nps) NamedParametersRange nps)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename TriangleMeshRange::const_iterator TriangleMeshIterator; typedef typename TriangleMeshRange::const_iterator TriangleMeshIterator;
bool report_overlap = choose_param(get_param(np, internal_np::overlap_test),false); bool report_overlap = choose_parameter(get_parameter(np, internal_np::overlap_test),false);
typedef CGAL::Box_intersection_d::Box_with_info_d<double, 3, TriangleMeshIterator> Mesh_box; typedef CGAL::Box_intersection_d::Box_with_info_d<double, 3, TriangleMeshIterator> Mesh_box;
std::vector<Mesh_box> boxes; std::vector<Mesh_box> boxes;
@ -1620,7 +1620,7 @@ OutputIterator intersecting_meshes(const TriangleMeshRange& range,
typedef typename boost::range_value<NamedParametersRange>::type NP_rng; typedef typename boost::range_value<NamedParametersRange>::type NP_rng;
typedef typename boost::range_value<TriangleMeshRange>::type TriangleMesh; typedef typename boost::range_value<TriangleMeshRange>::type TriangleMesh;
typedef typename GetGeomTraits<TriangleMesh, NamedParameters, NP_rng>::type GT; typedef typename GetGeomTraits<TriangleMesh, NamedParameters, NP_rng>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
//get all the pairs of meshes intersecting (no strict inclusion test) //get all the pairs of meshes intersecting (no strict inclusion test)
@ -1636,7 +1636,7 @@ OutputIterator intersecting_meshes(const TriangleMeshRange& range,
OutputIterator out, OutputIterator out,
NamedParameters np) NamedParameters np)
{ {
std::vector<cgal_bgl_named_params<bool, internal_np::all_default_t> >nps( std::vector<Named_function_parameters<bool, internal_np::all_default_t> >nps(
std::distance(range.begin(), range.end()), parameters::all_default()); std::distance(range.begin(), range.end()), parameters::all_default());
return intersecting_meshes(range, out, np, nps); return intersecting_meshes(range, out, np, nps);
} }
@ -1695,7 +1695,7 @@ surface_intersection(const TriangleMesh& tm1,
const NamedParameters2& np2) const NamedParameters2& np2)
{ {
const bool throw_on_self_intersection = const bool throw_on_self_intersection =
boost::choose_param(get_param(np1, internal_np::throw_on_self_intersection), false); parameters::choose_parameter(parameters::get_parameter(np1, internal_np::throw_on_self_intersection), false);
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters1>::const_type Vpm; NamedParameters1>::const_type Vpm;
@ -1706,12 +1706,10 @@ surface_intersection(const TriangleMesh& tm1,
static const bool same_vpm = (boost::is_same<Vpm,Vpm2>::value);) static const bool same_vpm = (boost::is_same<Vpm,Vpm2>::value);)
CGAL_static_assertion(same_vpm); CGAL_static_assertion(same_vpm);
Vpm vpm1 = choose_const_pmap(get_param(np1, internal_np::vertex_point), Vpm vpm1 = parameters::choose_parameter(parameters::get_parameter(np1, internal_np::vertex_point),
tm1, get_const_property_map(CGAL::vertex_point, tm1));
vertex_point); Vpm vpm2 = parameters::choose_parameter(parameters::get_parameter(np2, internal_np::vertex_point),
Vpm vpm2 = choose_const_pmap(get_param(np2, internal_np::vertex_point), get_const_property_map(CGAL::vertex_point, tm2));
tm2,
vertex_point);
Corefinement::Intersection_of_triangle_meshes<TriangleMesh,Vpm> Corefinement::Intersection_of_triangle_meshes<TriangleMesh,Vpm>
functor(tm1, tm2, vpm1, vpm2); functor(tm1, tm2, vpm1, vpm2);
@ -1755,9 +1753,8 @@ surface_self_intersection(const TriangleMesh& tm,
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::const_type Vpm; NamedParameters>::const_type Vpm;
Vpm vpm = choose_const_pmap(get_param(np, internal_np::vertex_point), Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
tm, get_const_property_map(CGAL::vertex_point, tm));
vertex_point);
// surface intersection algorithm call // surface intersection algorithm call
typedef Corefinement::Default_surface_intersection_visitor<TriangleMesh, typedef Corefinement::Default_surface_intersection_visitor<TriangleMesh,

View File

@ -100,11 +100,11 @@ edge_length(typename boost::graph_traits<PolygonMesh>::halfedge_descriptor h,
const PolygonMesh& pmesh, const PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using internal_np::choose_parameter;
using boost::get_param; using internal_np::get_parameter;
typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, pmesh)); get_const_property_map(CGAL::vertex_point, pmesh));
return CGAL::approximate_sqrt(CGAL::squared_distance(get(vpm, source(h, pmesh)), return CGAL::approximate_sqrt(CGAL::squared_distance(get(vpm, source(h, pmesh)),
@ -321,15 +321,15 @@ face_area(typename boost::graph_traits<TriangleMesh>::face_descriptor f,
const TriangleMesh& tmesh, const TriangleMesh& tmesh,
const CGAL_PMP_NP_CLASS& np) const CGAL_PMP_NP_CLASS& np)
{ {
using boost::choose_param; using internal_np::choose_parameter;
using boost::get_param; using internal_np::get_parameter;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
CGAL_precondition(boost::graph_traits<TriangleMesh>::null_face() != f); CGAL_precondition(boost::graph_traits<TriangleMesh>::null_face() != f);
typename GetVertexPointMap<TriangleMesh, CGAL_PMP_NP_CLASS>::const_type typename GetVertexPointMap<TriangleMesh, CGAL_PMP_NP_CLASS>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, tmesh)); get_const_property_map(CGAL::vertex_point, tmesh));
halfedge_descriptor hd = halfedge(f, tmesh); halfedge_descriptor hd = halfedge(f, tmesh);
@ -504,11 +504,11 @@ volume(const TriangleMesh& tmesh,
CGAL_assertion(is_triangle_mesh(tmesh)); CGAL_assertion(is_triangle_mesh(tmesh));
CGAL_assertion(is_closed(tmesh)); CGAL_assertion(is_closed(tmesh));
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typename GetVertexPointMap<TriangleMesh, CGAL_PMP_NP_CLASS>::const_type typename GetVertexPointMap<TriangleMesh, CGAL_PMP_NP_CLASS>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, tmesh)); get_const_property_map(CGAL::vertex_point, tmesh));
typename GetGeomTraits<TriangleMesh, CGAL_PMP_NP_CLASS>::type::Point_3 origin(0, 0, 0); typename GetGeomTraits<TriangleMesh, CGAL_PMP_NP_CLASS>::type::Point_3 origin(0, 0, 0);

View File

@ -218,7 +218,10 @@ void merge_duplicated_vertices_in_boundary_cycle(
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
typedef typename GetVertexPointMap<PolygonMesh, NamedParameter>::const_type Vpm; typedef typename GetVertexPointMap<PolygonMesh, NamedParameter>::const_type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), using parameters::get_parameter;
using parameters::choose_parameter;
Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pm)); get_const_property_map(vertex_point, pm));
// collect all the halfedges of the cycle // collect all the halfedges of the cycle

View File

@ -69,18 +69,18 @@ namespace internal{
const PolygonMesh& pmesh, const PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
CGAL_assertion(halfedge(v_max, pmesh)!=boost::graph_traits<PolygonMesh>::null_halfedge()); CGAL_assertion(halfedge(v_max, pmesh)!=boost::graph_traits<PolygonMesh>::null_halfedge());
//VertexPointMap //VertexPointMap
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pmesh)); get_const_property_map(vertex_point, pmesh));
//Kernel //Kernel
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
//among the incoming edges of `v_max`, find one edge `e` with the minimal slope //among the incoming edges of `v_max`, find one edge `e` with the minimal slope
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
@ -182,16 +182,16 @@ bool is_outward_oriented(const PolygonMesh& pmesh,
if (faces(pmesh).first == faces(pmesh).second) if (faces(pmesh).first == faces(pmesh).second)
return true; return true;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
//VertexPointMap //VertexPointMap
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pmesh)); get_const_property_map(vertex_point, pmesh));
//Kernel //Kernel
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
//find the vertex with maximal z coordinate //find the vertex with maximal z coordinate
internal::Compare_vertex_points_z_3<GT, VPMap> less_z(vpmap, gt); internal::Compare_vertex_points_z_3<GT, VPMap> less_z(vpmap, gt);
@ -482,16 +482,16 @@ void orient(TriangleMesh& tm, const NamedParameters& np)
CGAL_assertion(is_valid_polygon_mesh(tm)); CGAL_assertion(is_valid_polygon_mesh(tm));
CGAL_assertion(is_closed(tm)); CGAL_assertion(is_closed(tm));
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
bool orient_outward = choose_param( bool orient_outward = choose_parameter(
get_param(np, internal_np::outward_orientation),true); get_parameter(np, internal_np::outward_orientation),true);
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm)); get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = choose_param(get_param(np, internal_np::face_index), Fid_map fid_map = choose_parameter(get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm)); get_const_property_map(boost::face_index, tm));
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1)); std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));
@ -589,16 +589,16 @@ void orient_to_bound_a_volume(TriangleMesh& tm,
if (!is_closed(tm)) return; if (!is_closed(tm)) return;
if (!is_triangle_mesh(tm)) return; if (!is_triangle_mesh(tm)) return;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
bool orient_outward = choose_param( bool orient_outward = choose_parameter(
get_param(np, internal_np::outward_orientation),true); get_parameter(np, internal_np::outward_orientation),true);
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm)); get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = choose_param(get_param(np, internal_np::face_index), Fid_map fid_map = choose_parameter(get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm)); get_const_property_map(boost::face_index, tm));
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1)); std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));

View File

@ -150,8 +150,8 @@ void random_perturbation(VertexRange vertices
, const NamedParameters& np) , const NamedParameters& np)
{ {
typedef TriangleMesh PM; typedef TriangleMesh PM;
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor;
@ -164,22 +164,22 @@ void random_perturbation(VertexRange vertices
#endif #endif
typedef typename GetGeomTraits<PM, NamedParameters>::type GT; typedef typename GetGeomTraits<PM, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tmesh)); get_property_map(vertex_point, tmesh));
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::vertex_is_constrained_t, internal_np::vertex_is_constrained_t,
NamedParameters, NamedParameters,
Constant_property_map<vertex_descriptor, bool> // default Constant_property_map<vertex_descriptor, bool> // default
> ::type VCMap; > ::type VCMap;
VCMap vcmap = choose_param(get_param(np, internal_np::vertex_is_constrained), VCMap vcmap = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained),
Constant_property_map<vertex_descriptor, bool>(false)); Constant_property_map<vertex_descriptor, bool>(false));
unsigned int seed = choose_param(get_param(np, internal_np::random_seed), -1); unsigned int seed = choose_parameter(get_parameter(np, internal_np::random_seed), -1);
bool do_project = choose_param(get_param(np, internal_np::do_project), true); bool do_project = choose_parameter(get_parameter(np, internal_np::do_project), true);
CGAL::Random rng = (seed == unsigned(-1)) ? CGAL::Random() : CGAL::Random(seed); CGAL::Random rng = (seed == unsigned(-1)) ? CGAL::Random() : CGAL::Random(seed);

View File

@ -83,20 +83,20 @@ namespace Polygon_mesh_processing {
VertexOutputIterator vertices_out, VertexOutputIterator vertices_out,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
CGAL_precondition(is_triangle_mesh(tmesh) ); CGAL_precondition(is_triangle_mesh(tmesh) );
typedef typename GetVertexPointMap<TriangleMesh,NamedParameters>::type VPmap; typedef typename GetVertexPointMap<TriangleMesh,NamedParameters>::type VPmap;
VPmap vpm = choose_param(get_param(np, internal_np::vertex_point), VPmap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tmesh)); get_property_map(vertex_point, tmesh));
internal::Refine_Polyhedron_3<TriangleMesh, VPmap> refine_functor(tmesh, vpm); internal::Refine_Polyhedron_3<TriangleMesh, VPmap> refine_functor(tmesh, vpm);
refine_functor.refine(faces, refine_functor.refine(faces,
faces_out, faces_out,
vertices_out, vertices_out,
choose_param(get_param(np, internal_np::density_control_factor), CGAL::sqrt(2.))); choose_parameter(get_parameter(np, internal_np::density_control_factor), CGAL::sqrt(2.)));
return std::make_pair(faces_out, vertices_out); return std::make_pair(faces_out, vertices_out);
} }

View File

@ -148,8 +148,8 @@ void isotropic_remeshing(const FaceRange& faces
typedef PolygonMesh PM; typedef PolygonMesh PM;
typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<PM>::edge_descriptor edge_descriptor; typedef typename boost::graph_traits<PM>::edge_descriptor edge_descriptor;
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
#ifdef CGAL_PMP_REMESHING_VERBOSE #ifdef CGAL_PMP_REMESHING_VERBOSE
std::cout << std::endl; std::cout << std::endl;
@ -160,45 +160,45 @@ void isotropic_remeshing(const FaceRange& faces
#endif #endif
static const bool need_aabb_tree = static const bool need_aabb_tree =
boost::is_default_param(get_param(np, internal_np::projection_functor)); parameters::is_default_parameter(get_parameter(np, internal_np::projection_functor));
typedef typename GetGeomTraits<PM, NamedParameters>::type GT; typedef typename GetGeomTraits<PM, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pmesh)); get_property_map(vertex_point, pmesh));
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FIMap; typedef typename GetFaceIndexMap<PM, NamedParameters>::type FIMap;
FIMap fimap = choose_param(get_param(np, internal_np::face_index), FIMap fimap = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(face_index, pmesh)); get_property_map(face_index, pmesh));
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, NamedParameters,
Constant_property_map<edge_descriptor, bool> // default (no constraint pmap) Constant_property_map<edge_descriptor, bool> // default (no constraint pmap)
> ::type ECMap; > ::type ECMap;
ECMap ecmap = choose_param(get_param(np, internal_np::edge_is_constrained), ECMap ecmap = choose_parameter(get_parameter(np, internal_np::edge_is_constrained),
Constant_property_map<edge_descriptor, bool>(false)); Constant_property_map<edge_descriptor, bool>(false));
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::vertex_is_constrained_t, internal_np::vertex_is_constrained_t,
NamedParameters, NamedParameters,
Constant_property_map<vertex_descriptor, bool> // default (no constraint pmap) Constant_property_map<vertex_descriptor, bool> // default (no constraint pmap)
> ::type VCMap; > ::type VCMap;
VCMap vcmap = choose_param(get_param(np, internal_np::vertex_is_constrained), VCMap vcmap = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained),
Constant_property_map<vertex_descriptor, bool>(false)); Constant_property_map<vertex_descriptor, bool>(false));
bool protect = choose_param(get_param(np, internal_np::protect_constraints), false); bool protect = choose_parameter(get_parameter(np, internal_np::protect_constraints), false);
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::face_patch_t, internal_np::face_patch_t,
NamedParameters, NamedParameters,
internal::Connected_components_pmap<PM, FIMap>//default internal::Connected_components_pmap<PM, FIMap>//default
> ::type FPMap; > ::type FPMap;
FPMap fpmap = choose_param( FPMap fpmap = choose_parameter(
get_param(np, internal_np::face_patch), get_parameter(np, internal_np::face_patch),
internal::Connected_components_pmap<PM, FIMap>(faces, pmesh, ecmap, fimap, internal::Connected_components_pmap<PM, FIMap>(faces, pmesh, ecmap, fimap,
boost::is_default_param(get_param(np, internal_np::face_patch)) && (need_aabb_tree parameters::is_default_parameter(get_parameter(np, internal_np::face_patch)) && (need_aabb_tree
#if !defined(CGAL_NO_PRECONDITIONS) #if !defined(CGAL_NO_PRECONDITIONS)
|| protect // face patch map is used to identify patch border edges to check protected edges are short enough || protect // face patch map is used to identify patch border edges to check protected edges are short enough
#endif #endif
@ -236,10 +236,10 @@ void isotropic_remeshing(const FaceRange& faces
std::cout << " done ("<< t.time() <<" sec)." << std::endl; std::cout << " done ("<< t.time() <<" sec)." << std::endl;
#endif #endif
bool collapse_constraints = choose_param(get_param(np, internal_np::collapse_constraints), true); bool collapse_constraints = choose_parameter(get_parameter(np, internal_np::collapse_constraints), true);
unsigned int nb_iterations = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int nb_iterations = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
bool smoothing_1d = choose_param(get_param(np, internal_np::relax_constraints), false); bool smoothing_1d = choose_parameter(get_parameter(np, internal_np::relax_constraints), false);
unsigned int nb_laplacian = choose_param(get_param(np, internal_np::number_of_relaxation_steps), 1); unsigned int nb_laplacian = choose_parameter(get_parameter(np, internal_np::number_of_relaxation_steps), 1);
#ifdef CGAL_PMP_REMESHING_VERBOSE #ifdef CGAL_PMP_REMESHING_VERBOSE
std::cout << std::endl; std::cout << std::endl;
@ -260,8 +260,8 @@ void isotropic_remeshing(const FaceRange& faces
} }
remesher.equalize_valences(); remesher.equalize_valences();
remesher.tangential_relaxation(smoothing_1d, nb_laplacian); remesher.tangential_relaxation(smoothing_1d, nb_laplacian);
if ( choose_param(get_param(np, internal_np::do_project), true) ) if ( choose_parameter(get_parameter(np, internal_np::do_project), true) )
remesher.project_to_surface(get_param(np, internal_np::projection_functor)); remesher.project_to_surface(get_parameter(np, internal_np::projection_functor));
#ifdef CGAL_PMP_REMESHING_VERBOSE #ifdef CGAL_PMP_REMESHING_VERBOSE
std::cout << std::endl; std::cout << std::endl;
#endif #endif
@ -337,26 +337,26 @@ void split_long_edges(const EdgeRange& edges
typedef PolygonMesh PM; typedef PolygonMesh PM;
typedef typename boost::graph_traits<PM>::edge_descriptor edge_descriptor; typedef typename boost::graph_traits<PM>::edge_descriptor edge_descriptor;
typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<PM>::vertex_descriptor vertex_descriptor;
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename GetGeomTraits<PM, NamedParameters>::type GT; typedef typename GetGeomTraits<PM, NamedParameters>::type GT;
GT gt = choose_param(get_param(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pmesh)); get_property_map(vertex_point, pmesh));
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FIMap; typedef typename GetFaceIndexMap<PM, NamedParameters>::type FIMap;
FIMap fimap = choose_param(get_param(np, internal_np::face_index), FIMap fimap = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(face_index, pmesh)); get_property_map(face_index, pmesh));
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, NamedParameters,
Constant_property_map<edge_descriptor, bool> // default (no constraint pmap) Constant_property_map<edge_descriptor, bool> // default (no constraint pmap)
> ::type ECMap; > ::type ECMap;
ECMap ecmap = choose_param(get_param(np, internal_np::edge_is_constrained), ECMap ecmap = choose_parameter(get_parameter(np, internal_np::edge_is_constrained),
Constant_property_map<edge_descriptor, bool>(false)); Constant_property_map<edge_descriptor, bool>(false));
typename internal::Incremental_remesher<PM, VPMap, GT, ECMap, typename internal::Incremental_remesher<PM, VPMap, GT, ECMap,

View File

@ -581,8 +581,8 @@ bool remove_degenerate_edges(const EdgeRange& edge_range,
CGAL_assertion(CGAL::is_triangle_mesh(tmesh)); CGAL_assertion(CGAL::is_triangle_mesh(tmesh));
CGAL_assertion(CGAL::is_valid_polygon_mesh(tmesh)); CGAL_assertion(CGAL::is_valid_polygon_mesh(tmesh));
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef TriangleMesh TM; typedef TriangleMesh TM;
typedef typename boost::graph_traits<TriangleMesh> GT; typedef typename boost::graph_traits<TriangleMesh> GT;
@ -592,7 +592,7 @@ bool remove_degenerate_edges(const EdgeRange& edge_range,
typedef typename GT::vertex_descriptor vertex_descriptor; typedef typename GT::vertex_descriptor vertex_descriptor;
typedef typename GetVertexPointMap<TM, NamedParameters>::type VertexPointMap; typedef typename GetVertexPointMap<TM, NamedParameters>::type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tmesh)); get_property_map(vertex_point, tmesh));
typedef typename GetGeomTraits<TM, NamedParameters>::type Traits; typedef typename GetGeomTraits<TM, NamedParameters>::type Traits;
@ -1109,8 +1109,8 @@ bool remove_degenerate_faces(const FaceRange& face_range,
{ {
CGAL_assertion(CGAL::is_triangle_mesh(tmesh)); CGAL_assertion(CGAL::is_triangle_mesh(tmesh));
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef TriangleMesh TM; typedef TriangleMesh TM;
typedef typename boost::graph_traits<TriangleMesh> GT; typedef typename boost::graph_traits<TriangleMesh> GT;
@ -1120,10 +1120,10 @@ bool remove_degenerate_faces(const FaceRange& face_range,
typedef typename GT::vertex_descriptor vertex_descriptor; typedef typename GT::vertex_descriptor vertex_descriptor;
typedef typename GetVertexPointMap<TM, NamedParameters>::type VertexPointMap; typedef typename GetVertexPointMap<TM, NamedParameters>::type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tmesh)); get_property_map(vertex_point, tmesh));
typedef typename GetGeomTraits<TM, NamedParameters>::type Traits; typedef typename GetGeomTraits<TM, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
typedef typename boost::property_traits<VertexPointMap>::value_type Point_3; typedef typename boost::property_traits<VertexPointMap>::value_type Point_3;
typedef typename boost::property_traits<VertexPointMap>::reference Point_ref; typedef typename boost::property_traits<VertexPointMap>::reference Point_ref;
@ -2078,18 +2078,18 @@ std::size_t make_umbrella_manifold(typename boost::graph_traits<PolygonMesh>::ha
typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<PolygonMesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VertexPointMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VertexPointMap;
VertexPointMap vpm = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pm)); get_property_map(vertex_point, pm));
typedef typename boost::lookup_named_param_def<internal_np::vertex_is_constrained_t, typedef typename internal_np::Lookup_named_param_def<internal_np::vertex_is_constrained_t,
NamedParameters, NamedParameters,
Constant_property_map<vertex_descriptor, bool> // default (no constraint pmap) Constant_property_map<vertex_descriptor, bool> // default (no constraint pmap)
>::type VerticesMap; >::type VerticesMap;
VerticesMap cmap = choose_param(get_param(np, internal_np::vertex_is_constrained), VerticesMap cmap = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained),
Constant_property_map<vertex_descriptor, bool>(false)); Constant_property_map<vertex_descriptor, bool>(false));
std::size_t nb_new_vertices = 0; std::size_t nb_new_vertices = 0;
@ -2881,12 +2881,12 @@ bool remove_self_intersections(TriangleMesh& tm, const NamedParameters& np)
// named parameter extraction // named parameter extraction
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::type VertexPointMap; typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::type VertexPointMap;
VertexPointMap vpm = boost::choose_param(boost::get_param(np, internal_np::vertex_point), VertexPointMap vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tm)); get_property_map(vertex_point, tm));
const int max_steps = boost::choose_param(boost::get_param(np, internal_np::number_of_iterations), 7); const int max_steps = parameters::choose_parameter(parameters::get_parameter(np, internal_np::number_of_iterations), 7);
bool verbose = boost::choose_param(boost::get_param(np, internal_np::verbosity_level), 0) > 0; bool verbose = parameters::choose_parameter(parameters::get_parameter(np, internal_np::verbosity_level), 0) > 0;
bool preserve_genus = boost::choose_param(boost::get_param(np, internal_np::preserve_genus), true); bool preserve_genus = parameters::choose_parameter(parameters::get_parameter(np, internal_np::preserve_genus), true);
if (verbose) if (verbose)
std::cout << "DEBUG: Starting remove_self_intersections, is_valid(tm)? " << is_valid_polygon_mesh(tm) << "\n"; std::cout << "DEBUG: Starting remove_self_intersections, is_valid(tm)? " << is_valid_polygon_mesh(tm) << "\n";

View File

@ -23,7 +23,7 @@
#include <CGAL/license/Polygon_mesh_processing/repair.h> #include <CGAL/license/Polygon_mesh_processing/repair.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Polygon_mesh_processing/internal/named_function_params.h> #include <CGAL/Polygon_mesh_processing/internal/named_function_params.h>
#include <CGAL/Polygon_mesh_processing/internal/named_params_helper.h> #include <CGAL/Polygon_mesh_processing/internal/named_params_helper.h>
@ -70,7 +70,7 @@ struct Polygon_types
template <typename PointRange, typename PolygonRange, typename NamedParameters> template <typename PointRange, typename PolygonRange, typename NamedParameters>
struct GetPolygonGeomTraits struct GetPolygonGeomTraits
{ {
typedef typename boost::lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::geom_traits_t, internal_np::geom_traits_t,
NamedParameters, NamedParameters,
typename CGAL::Kernel_traits< typename CGAL::Kernel_traits<
@ -518,11 +518,11 @@ std::size_t merge_duplicate_points_in_polygon_soup(PointRange& points,
typedef typename internal::Polygon_types<PointRange, PolygonRange>::Point_3 Point_3; typedef typename internal::Polygon_types<PointRange, PolygonRange>::Point_3 Point_3;
typedef typename internal::Polygon_types<PointRange, PolygonRange>::Polygon_3 Polygon_3; typedef typename internal::Polygon_types<PointRange, PolygonRange>::Polygon_3 Polygon_3;
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename internal::GetPolygonGeomTraits<PointRange, PolygonRange, NamedParameters>::type Traits; typedef typename internal::GetPolygonGeomTraits<PointRange, PolygonRange, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
typedef typename Traits::Less_xyz_3 Less_xyz_3; typedef typename Traits::Less_xyz_3 Less_xyz_3;
@ -909,13 +909,13 @@ std::size_t merge_duplicate_polygons_in_polygon_soup(const PointRange& points,
PolygonRange& polygons, PolygonRange& polygons,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename internal::Polygon_types<PointRange, PolygonRange>::P_ID P_ID; typedef typename internal::Polygon_types<PointRange, PolygonRange>::P_ID P_ID;
const bool erase_all_duplicates = choose_param(get_param(np, internal_np::erase_all_duplicates), false); const bool erase_all_duplicates = choose_parameter(get_parameter(np, internal_np::erase_all_duplicates), false);
const bool same_orientation = choose_param(get_param(np, internal_np::require_same_orientation), false); const bool same_orientation = choose_parameter(get_parameter(np, internal_np::require_same_orientation), false);
#ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE_PP #ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE_PP
std::cout << "Only polygons with the same orientation are duplicates: " << std::boolalpha << same_orientation << std::endl; std::cout << "Only polygons with the same orientation are duplicates: " << std::boolalpha << same_orientation << std::endl;
@ -923,7 +923,7 @@ std::size_t merge_duplicate_polygons_in_polygon_soup(const PointRange& points,
#endif #endif
typedef typename internal::GetPolygonGeomTraits<PointRange, PolygonRange, NamedParameters>::type Traits; typedef typename internal::GetPolygonGeomTraits<PointRange, PolygonRange, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
std::vector<std::vector<P_ID> > all_duplicate_polygons; std::vector<std::vector<P_ID> > all_duplicate_polygons;
internal::collect_duplicate_polygons(points, polygons, std::back_inserter(all_duplicate_polygons), traits, same_orientation); internal::collect_duplicate_polygons(points, polygons, std::back_inserter(all_duplicate_polygons), traits, same_orientation);
@ -1066,11 +1066,11 @@ void repair_polygon_soup(PointRange& points,
PolygonRange& polygons, PolygonRange& polygons,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename internal::GetPolygonGeomTraits<PointRange, PolygonRange, NamedParameters>::type Traits; typedef typename internal::GetPolygonGeomTraits<PointRange, PolygonRange, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
#ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE #ifdef CGAL_PMP_REPAIR_POLYGON_SOUP_VERBOSE
std::cout << "Repairing soup with " << points.size() << " points and " << polygons.size() << " polygons" << std::endl; std::cout << "Repairing soup with " << points.size() << " points and " << polygons.size() << " polygons" << std::endl;

View File

@ -272,7 +272,7 @@ self_intersections(const TriangleMesh& tmesh
#ifdef DOXYGEN_RUNNING #ifdef DOXYGEN_RUNNING
, const NamedParameters& np) , const NamedParameters& np)
#else #else
, const cgal_bgl_named_params<P,T,R>& np) , const Named_function_parameters<P,T,R>& np)
#endif #endif
{ {
return self_intersections(faces(tmesh), tmesh, out, np); return self_intersections(faces(tmesh), tmesh, out, np);
@ -340,7 +340,7 @@ self_intersections( const FaceRange& face_range,
); );
typedef typename GetVertexPointMap<TM, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<TM, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = boost::choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tmesh)); get_const_property_map(boost::vertex_point, tmesh));
for(face_descriptor f : face_range) for(face_descriptor f : face_range)
@ -366,7 +366,7 @@ self_intersections( const FaceRange& face_range,
typedef typename GetGeomTraits<TM, NamedParameters>::type GeomTraits; typedef typename GetGeomTraits<TM, NamedParameters>::type GeomTraits;
CGAL::internal::Intersect_facets<TM,GeomTraits,Box,OutputIterator,VertexPointMap> CGAL::internal::Intersect_facets<TM,GeomTraits,Box,OutputIterator,VertexPointMap>
intersect_facets(tmesh, out, vpmap, intersect_facets(tmesh, out, vpmap,
boost::choose_param(get_param(np, internal_np::geom_traits), GeomTraits())); parameters::choose_parameter(parameters::get_parameter(np, internal_np::geom_traits), GeomTraits()));
std::ptrdiff_t cutoff = 2000; std::ptrdiff_t cutoff = 2000;
CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(),intersect_facets,cutoff); CGAL::box_self_intersection_d(box_ptr.begin(), box_ptr.end(),intersect_facets,cutoff);

View File

@ -74,15 +74,15 @@ bool is_degenerate_edge(typename boost::graph_traits<PolygonMesh>::edge_descript
const PolygonMesh& pm, const PolygonMesh& pm,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pm)); get_const_property_map(vertex_point, pm));
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type Traits; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
return traits.equal_3_object()(get(vpmap, source(e, pm)), get(vpmap, target(e, pm))); return traits.equal_3_object()(get(vpmap, source(e, pm)), get(vpmap, target(e, pm)));
} }
@ -127,15 +127,15 @@ bool is_degenerate_triangle_face(typename boost::graph_traits<TriangleMesh>::fac
{ {
CGAL_precondition(CGAL::is_triangle(halfedge(f, tm), tm)); CGAL_precondition(CGAL::is_triangle(halfedge(f, tm), tm));
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, tm)); get_const_property_map(vertex_point, tm));
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type Traits; typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
typename boost::graph_traits<TriangleMesh>::halfedge_descriptor h = halfedge(f, tm); typename boost::graph_traits<TriangleMesh>::halfedge_descriptor h = halfedge(f, tm);
@ -186,17 +186,17 @@ is_needle_triangle_face(typename boost::graph_traits<TriangleMesh>::face_descrip
{ {
CGAL_precondition(threshold >= 1.); CGAL_precondition(threshold >= 1.);
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, tm)); get_const_property_map(vertex_point, tm));
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type Traits; typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
typedef typename Traits::FT FT; typedef typename Traits::FT FT;
@ -288,18 +288,18 @@ is_cap_triangle_face(typename boost::graph_traits<TriangleMesh>::face_descriptor
CGAL_precondition(threshold >= -1.); CGAL_precondition(threshold >= -1.);
CGAL_precondition(threshold <= 0.); CGAL_precondition(threshold <= 0.);
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::const_type VertexPointMap; typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::const_type VertexPointMap;
VertexPointMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VertexPointMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, tm)); get_const_property_map(vertex_point, tm));
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type Traits; typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type Traits;
Traits traits = choose_param(get_param(np, internal_np::geom_traits), Traits()); Traits traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Traits());
typedef typename Traits::FT FT; typedef typename Traits::FT FT;
typedef typename Traits::Vector_3 Vector_3; typedef typename Traits::Vector_3 Vector_3;

View File

@ -181,13 +181,13 @@ collect_duplicated_stitchable_boundary_edges
Face_cc_map cc; Face_cc_map cc;
std::size_t num_component = 0; std::size_t num_component = 0;
std::vector<std::vector<halfedge_descriptor> > border_edges_per_cc; std::vector<std::vector<halfedge_descriptor> > border_edges_per_cc;
bool per_cc = boost::choose_param(get_param(np, internal_np::apply_per_connected_component), bool per_cc = parameters::choose_parameter(parameters::get_parameter(np, internal_np::apply_per_connected_component),
false); false);
if(per_cc) if(per_cc)
{ {
cc = get(Face_property_tag(), pmesh); cc = get(Face_property_tag(), pmesh);
typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::const_type FIMap; typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::const_type FIMap;
FIMap fim = boost::choose_param(get_param(np, internal_np::face_index), FIMap fim = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(face_index, pmesh)); get_const_property_map(face_index, pmesh));
num_component = num_component_wrapper(pmesh, cc, fim); num_component = num_component_wrapper(pmesh, cc, fim);
border_edges_per_cc.resize(num_component); border_edges_per_cc.resize(num_component);
@ -561,13 +561,13 @@ std::size_t stitch_boundary_cycle(const typename boost::graph_traits<PolygonMesh
PolygonMesh& pm, PolygonMesh& pm,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor halfedge_descriptor;
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::const_type VPMap;
VPMap vpm = choose_param(get_param(np, internal_np::vertex_point), VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pm)); get_const_property_map(vertex_point, pm));
std::size_t stitched_boundary_cycles_n = 0; std::size_t stitched_boundary_cycles_n = 0;
@ -720,8 +720,8 @@ template <typename PolygonMesh,
void stitch_borders(PolygonMesh& pmesh, void stitch_borders(PolygonMesh& pmesh,
const HalfedgePairsRange& hedge_pairs_to_stitch) const HalfedgePairsRange& hedge_pairs_to_stitch)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
internal::stitch_borders_impl(pmesh, hedge_pairs_to_stitch); internal::stitch_borders_impl(pmesh, hedge_pairs_to_stitch);
} }
@ -758,15 +758,15 @@ void stitch_borders(PolygonMesh& pmesh,
template <typename PolygonMesh, class CGAL_PMP_NP_TEMPLATE_PARAMETERS> template <typename PolygonMesh, class CGAL_PMP_NP_TEMPLATE_PARAMETERS>
void stitch_borders(PolygonMesh& pmesh, const CGAL_PMP_NP_CLASS& np) void stitch_borders(PolygonMesh& pmesh, const CGAL_PMP_NP_CLASS& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor typedef typename boost::graph_traits<PolygonMesh>::halfedge_descriptor
halfedge_descriptor; halfedge_descriptor;
std::vector< std::pair<halfedge_descriptor, halfedge_descriptor> > hedge_pairs_to_stitch; std::vector< std::pair<halfedge_descriptor, halfedge_descriptor> > hedge_pairs_to_stitch;
typedef typename GetVertexPointMap<PolygonMesh, CGAL_PMP_NP_CLASS>::const_type VPMap; typedef typename GetVertexPointMap<PolygonMesh, CGAL_PMP_NP_CLASS>::const_type VPMap;
VPMap vpm = choose_param(get_param(np, internal_np::vertex_point), VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pmesh)); get_const_property_map(vertex_point, pmesh));
stitch_boundary_cycles(pmesh, np); stitch_boundary_cycles(pmesh, np);

View File

@ -54,7 +54,7 @@ void transform(const Transformation& transformation,
const NamedParameters& np) const NamedParameters& np)
{ {
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VPMap;
VPMap vpm = choose_param(get_param(np, internal_np::vertex_point), VPMap vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, mesh)); get_property_map(vertex_point, mesh));
for(typename boost::graph_traits<PolygonMesh>::vertex_descriptor vd : vertices(mesh)) for(typename boost::graph_traits<PolygonMesh>::vertex_descriptor vd : vertices(mesh))

View File

@ -430,20 +430,20 @@ bool triangulate_face(typename boost::graph_traits<PolygonMesh>::face_descriptor
PolygonMesh& pmesh, PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
//VertexPointMap //VertexPointMap
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pmesh)); get_property_map(vertex_point, pmesh));
//Kernel //Kernel
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type Kernel; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type Kernel;
Kernel traits = choose_param(get_param(np, internal_np::geom_traits), Kernel()); Kernel traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Kernel());
//Option //Option
bool use_cdt = choose_param(get_param(np, internal_np::use_delaunay_triangulation), true); bool use_cdt = choose_parameter(get_parameter(np, internal_np::use_delaunay_triangulation), true);
internal::Triangulate_modifier<PolygonMesh, VPMap, Kernel> modifier(vpmap, traits); internal::Triangulate_modifier<PolygonMesh, VPMap, Kernel> modifier(vpmap, traits);
return modifier.triangulate_face(f, pmesh, use_cdt); return modifier.triangulate_face(f, pmesh, use_cdt);
@ -485,20 +485,20 @@ bool triangulate_faces(FaceRange face_range,
PolygonMesh& pmesh, PolygonMesh& pmesh,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
//VertexPointMap //VertexPointMap
typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<PolygonMesh, NamedParameters>::type VPMap;
VPMap vpmap = choose_param(get_param(np, internal_np::vertex_point), VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pmesh)); get_property_map(vertex_point, pmesh));
//Kernel //Kernel
typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type Kernel; typedef typename GetGeomTraits<PolygonMesh, NamedParameters>::type Kernel;
Kernel traits = choose_param(get_param(np, internal_np::geom_traits), Kernel()); Kernel traits = choose_parameter(get_parameter(np, internal_np::geom_traits), Kernel());
//Option //Option
bool use_cdt = choose_param(get_param(np, internal_np::use_delaunay_triangulation), true); bool use_cdt = choose_parameter(get_parameter(np, internal_np::use_delaunay_triangulation), true);
internal::Triangulate_modifier<PolygonMesh, VPMap, Kernel> modifier(vpmap, traits); internal::Triangulate_modifier<PolygonMesh, VPMap, Kernel> modifier(vpmap, traits);
return modifier(face_range, pmesh, use_cdt); return modifier(face_range, pmesh, use_cdt);

View File

@ -90,14 +90,14 @@ namespace Polygon_mesh_processing {
OutputIterator out, OutputIterator out,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
bool use_dt3 = bool use_dt3 =
#ifdef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 #ifdef CGAL_HOLE_FILLING_DO_NOT_USE_DT3
false; false;
#else #else
choose_param(get_param(np, internal_np::use_delaunay_triangulation), true); choose_parameter(get_parameter(np, internal_np::use_delaunay_triangulation), true);
#endif #endif
CGAL_precondition(face(border_halfedge, pmesh) == boost::graph_traits<PolygonMesh>::null_face()); CGAL_precondition(face(border_halfedge, pmesh) == boost::graph_traits<PolygonMesh>::null_face());
@ -105,9 +105,9 @@ namespace Polygon_mesh_processing {
return internal::triangulate_hole_polygon_mesh(pmesh, return internal::triangulate_hole_polygon_mesh(pmesh,
border_halfedge, border_halfedge,
out, out,
choose_param(get_param(np, internal_np::vertex_point), get_property_map(vertex_point, pmesh)), choose_parameter(get_parameter(np, internal_np::vertex_point), get_property_map(vertex_point, pmesh)),
use_dt3, use_dt3,
choose_param(get_param(np, internal_np::geom_traits), typename GetGeomTraits<PolygonMesh,NamedParameters>::type())) choose_parameter(get_parameter(np, internal_np::geom_traits), typename GetGeomTraits<PolygonMesh,NamedParameters>::type()))
.first; .first;
} }
@ -343,14 +343,14 @@ namespace Polygon_mesh_processing {
OutputIterator out, OutputIterator out,
const NamedParameters& np) const NamedParameters& np)
{ {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
bool use_dt3 = bool use_dt3 =
#ifdef CGAL_HOLE_FILLING_DO_NOT_USE_DT3 #ifdef CGAL_HOLE_FILLING_DO_NOT_USE_DT3
false; false;
#else #else
choose_param(get_param(np, internal_np::use_delaunay_triangulation), true); choose_parameter(get_parameter(np, internal_np::use_delaunay_triangulation), true);
#endif #endif
typedef CGAL::internal::Weight_min_max_dihedral_and_area Weight; typedef CGAL::internal::Weight_min_max_dihedral_and_area Weight;
@ -370,7 +370,7 @@ namespace Polygon_mesh_processing {
triangulate_hole_polyline(points, third_points, tracer, WC(), triangulate_hole_polyline(points, third_points, tracer, WC(),
use_dt3, use_dt3,
choose_param(get_param(np, internal_np::geom_traits), choose_parameter(get_parameter(np, internal_np::geom_traits),
typename CGAL::Kernel_traits<Point>::Kernel())); typename CGAL::Kernel_traits<Point>::Kernel()));
CGAL_assertion(holes.empty()); CGAL_assertion(holes.empty());

View File

@ -234,7 +234,7 @@ public:
CGAL_static_assertion(same_vpm); CGAL_static_assertion(same_vpm);
Vpm vpm = Vpm vpm =
boost::choose_param(boost::get_param(np, internal_np::vertex_point), parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm) ); get_const_property_map(boost::vertex_point, tm) );
// now add the mesh // now add the mesh
std::size_t id = get_id_for_new_mesh(); std::size_t id = get_id_for_new_mesh();
@ -530,8 +530,8 @@ public:
using Polygon_mesh_processing::GetFaceIndexMap; using Polygon_mesh_processing::GetFaceIndexMap;
const bool maybe_several_cc = const bool maybe_several_cc =
boost::choose_param( parameters::choose_parameter(
boost::get_param(np, internal_np::apply_per_connected_component), true); parameters::get_parameter(np, internal_np::apply_per_connected_component), true);
typedef typename GetVertexPointMap<TriangleMesh, typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::const_type Local_vpm; NamedParameters>::const_type Local_vpm;
@ -542,7 +542,7 @@ public:
CGAL_static_assertion(same_vpm); CGAL_static_assertion(same_vpm);
Vpm vpm = Vpm vpm =
boost::choose_param(boost::get_param(np, internal_np::vertex_point), parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm) ); get_const_property_map(boost::vertex_point, tm) );
if (maybe_several_cc) if (maybe_several_cc)
@ -555,7 +555,7 @@ public:
NamedParameters>::type Fid_map; NamedParameters>::type Fid_map;
Fid_map fid_map = Fid_map fid_map =
boost::choose_param(boost::get_param(np, internal_np::face_index), parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm)); get_const_property_map(boost::face_index, tm));
std::size_t nb_cc = std::size_t nb_cc =

View File

@ -22,10 +22,13 @@ bool test_orientation(TriangleMesh& tm, bool is_positive, const NamedParameters&
typedef typename CGAL::Polygon_mesh_processing::GetFaceIndexMap<TriangleMesh, typedef typename CGAL::Polygon_mesh_processing::GetFaceIndexMap<TriangleMesh,
NamedParameters>::const_type Fid_map; NamedParameters>::const_type Fid_map;
Vpm vpm = boost::choose_param(get_param(np, CGAL::internal_np::vertex_point), using CGAL::parameters::choose_parameter;
using CGAL::parameters::get_parameter;
Vpm vpm = choose_parameter(get_parameter(np, CGAL::internal_np::vertex_point),
CGAL::get_const_property_map(boost::vertex_point, tm)); CGAL::get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = boost::choose_param(get_param(np, CGAL::internal_np::face_index), Fid_map fid_map = choose_parameter(get_parameter(np, CGAL::internal_np::face_index),
CGAL::get_const_property_map(boost::face_index, tm)); CGAL::get_const_property_map(boost::face_index, tm));
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1)); std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));

View File

@ -120,9 +120,9 @@ void Polyhedron_demo_inside_out_plugin::on_actionOrientCC_triggered()
SMesh* pMesh = sm_item->polyhedron(); SMesh* pMesh = sm_item->polyhedron();
if(pMesh){ if(pMesh){
if(is_closed(*pMesh)) if(is_closed(*pMesh))
CGAL::Polygon_mesh_processing::orient_to_bound_a_volume(*pMesh, item==items.first()); CGAL::Polygon_mesh_processing::orient_to_bound_a_volume(*pMesh);
else else
CGAL::Polygon_mesh_processing::orient(*pMesh, item==items.first()); CGAL::Polygon_mesh_processing::orient(*pMesh);
sm_item->invalidateOpenGLBuffers(); sm_item->invalidateOpenGLBuffers();
} }
} }

View File

@ -505,13 +505,13 @@ public:
bool are_radii_uptodate() const { return m_radii_are_uptodate; } bool are_radii_uptodate() const { return m_radii_are_uptodate; }
void set_radii_uptodate(bool /*on*/) { m_radii_are_uptodate = false; } void set_radii_uptodate(bool /*on*/) { m_radii_are_uptodate = false; }
CGAL::cgal_bgl_named_params CGAL::Named_function_parameters
<Kernel, <Kernel,
CGAL::internal_np::geom_traits_t, CGAL::internal_np::geom_traits_t,
CGAL::cgal_bgl_named_params CGAL::Named_function_parameters
<typename Base::template Property_map<Vector>, <typename Base::template Property_map<Vector>,
CGAL::internal_np::normal_t, CGAL::internal_np::normal_t,
CGAL::cgal_bgl_named_params CGAL::Named_function_parameters
<typename Base::template Property_map<Point>, <typename Base::template Property_map<Point>,
CGAL::internal_np::point_t> > > CGAL::internal_np::point_t> > >
inline parameters() const inline parameters() const
@ -598,13 +598,13 @@ namespace Point_set_processing_3
namespace parameters namespace parameters
{ {
template <typename Kernel> template <typename Kernel>
cgal_bgl_named_params Named_function_parameters
<Kernel, <Kernel,
internal_np::geom_traits_t, internal_np::geom_traits_t,
cgal_bgl_named_params Named_function_parameters
<typename ::Point_set_3<Kernel>::template Property_map<typename Kernel::Vector_3>, <typename ::Point_set_3<Kernel>::template Property_map<typename Kernel::Vector_3>,
internal_np::normal_t, internal_np::normal_t,
cgal_bgl_named_params Named_function_parameters
<typename ::Point_set_3<Kernel>::template Property_map<typename Kernel::Point_3>, <typename ::Point_set_3<Kernel>::template Property_map<typename Kernel::Point_3>,
internal_np::point_t> > > internal_np::point_t> > >
inline all_default(const ::Point_set_3<Kernel>& ps) inline all_default(const ::Point_set_3<Kernel>& ps)

View File

@ -29,7 +29,7 @@
#include <CGAL/IO/print_OFF.h> #include <CGAL/IO/print_OFF.h>
#include <CGAL/IO/scan_OFF.h> #include <CGAL/IO/scan_OFF.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <iostream> #include <iostream>
namespace CGAL { namespace CGAL {
@ -41,11 +41,14 @@ template < class Traits,
class HDS, class Alloc, class NamedParameters> class HDS, class Alloc, class NamedParameters>
bool bool
write_off( std::ostream& out, const Polyhedron_3<Traits,Items,HDS,Alloc>& P, const NamedParameters& np){ write_off( std::ostream& out, const Polyhedron_3<Traits,Items,HDS,Alloc>& P, const NamedParameters& np){
using parameters::choose_parameter;
using parameters::get_parameter;
// writes P to `out' in PRETTY, ASCII or BINARY format // writes P to `out' in PRETTY, ASCII or BINARY format
// as the stream indicates. // as the stream indicates.
File_header_OFF header( is_binary( out), ! is_pretty( out), false); File_header_OFF header( is_binary( out), ! is_pretty( out), false);
typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Polyhedron_3<Traits,Items,HDS,Alloc>, NamedParameters>::const_type typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Polyhedron_3<Traits,Items,HDS,Alloc>, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, P)); get_const_property_map(CGAL::vertex_point, P));
CGAL::print_polyhedron_with_header_OFF( out, P, header, vpm); CGAL::print_polyhedron_with_header_OFF( out, P, header, vpm);
return out.good(); return out.good();
@ -71,10 +74,13 @@ read_off(std::istream& in,
NamedParameters np) { NamedParameters np) {
// reads a polyhedron from `in' and appends it to P. // reads a polyhedron from `in' and appends it to P.
typedef typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Polyhedron_3<Traits,Items,HDS,Alloc>, NamedParameters>::type Vpm; typedef typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Polyhedron_3<Traits,Items,HDS,Alloc>, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), using parameters::choose_parameter;
using parameters::get_parameter;
Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, P)); get_property_map(CGAL::vertex_point, P));
CGAL::scan_OFF( in, P); CGAL::scan_OFF( in, P);
if(!boost::is_default_param(get_param(np, internal_np::vertex_point))) if(!parameters::is_default_parameter(get_parameter(np, internal_np::vertex_point)))
{ {
typedef typename boost::graph_traits<Polyhedron_3<Traits,Items,HDS,Alloc> >::vertex_descriptor Vertex; typedef typename boost::graph_traits<Polyhedron_3<Traits,Items,HDS,Alloc> >::vertex_descriptor Vertex;
typename property_map_selector<Polyhedron_3<Traits,Items,HDS,Alloc>, boost::vertex_point_t>::type typename property_map_selector<Polyhedron_3<Traits,Items,HDS,Alloc>, boost::vertex_point_t>::type

View File

@ -24,7 +24,7 @@
#include <CGAL/license/Polyhedron.h> #include <CGAL/license/Polyhedron.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/property_map.h> #include <CGAL/property_map.h>
#include <boost/graph/graph_traits.hpp> #include <boost/graph/graph_traits.hpp>

View File

@ -0,0 +1,17 @@
#!/bin/bash
ack -l --cpp boost::lookup_named_param_def | xargs sed -i 's/boost::lookup_named_param_def/internal_np::Lookup_named_param_def/g'
ack -l --cpp boost::param_not_found | xargs sed -i 's/boost::param_not_found/internal_np::Param_not_found/g'
ack -l --cpp boost::is_default_param | xargs sed -i 's/boost::is_default_param/parameters::is_default_parameter/g'
ack -l --cpp boost::get_param | xargs sed -i 's/boost::get_param/parameters::get_parameter/g'
ack -l --cpp boost::choose_param | xargs sed -i 's/boost::choose_param/parameters::choose_parameter/g'
ack -l --cpp cgal_bgl_named_params | xargs sed -i 's/cgal_bgl_named_params/Named_function_parameters/g'
ack -l --cpp choose_param | xargs sed -i -E 's/choose_param[ ]*\(/choose_parameter(/g'
ack -l --cpp get_param | xargs sed -i -E 's/get_param[ ]*\(/get_parameter(/g'
ack -l --cpp is_default_param | xargs sed -i -E 's/is_default_param[ ]*\(/is_default_parameter(/g'
ack vertex_index_t | grep get_param
git checkout BGL/include/CGAL/boost/graph/dijkstra_shortest_paths.hpp

View File

@ -31,7 +31,7 @@
#include <CGAL/circulator.h> #include <CGAL/circulator.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h> #include <CGAL/Subdivision_method_3/internal/subdivision_hosts_impl_3.h>
@ -84,14 +84,14 @@ void PQQ(PolygonMesh& pmesh, Mask mask, int step = 1) {
template <class PolygonMesh, class Mask, class NamedParameters> template <class PolygonMesh, class Mask, class NamedParameters>
void PQQ(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) { void PQQ(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) {
// todo: static assert that PolygonMesh == Mask::PolygonMesh // todo: static assert that PolygonMesh == Mask::PolygonMesh
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
for (unsigned int i = 0; i < step; i++) for (unsigned int i = 0; i < step; i++)
internal::PQQ_1step(pmesh, vpm, mask); internal::PQQ_1step(pmesh, vpm, mask);
} }
@ -131,14 +131,14 @@ void PTQ(PolygonMesh& pmesh, Mask mask, int step = 1) {
template <class PolygonMesh, class Mask, class NamedParameters> template <class PolygonMesh, class Mask, class NamedParameters>
void PTQ(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) { void PTQ(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) {
// todo: static assert that PolygonMesh == Mask::PolygonMesh // todo: static assert that PolygonMesh == Mask::PolygonMesh
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
for (unsigned int i = 0; i < step; i++) for (unsigned int i = 0; i < step; i++)
internal::PTQ_1step(pmesh, vpm, mask); internal::PTQ_1step(pmesh, vpm, mask);
} }
@ -181,14 +181,14 @@ void DQQ(PolygonMesh& pmesh, Mask mask, int step = 1) {
template <class PolygonMesh, class Mask, class NamedParameters> template <class PolygonMesh, class Mask, class NamedParameters>
void DQQ(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) { void DQQ(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) {
// todo: static assert that PolygonMesh == Mask::PolygonMesh // todo: static assert that PolygonMesh == Mask::PolygonMesh
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
for (unsigned int i = 0; i < step; i++) for (unsigned int i = 0; i < step; i++)
internal::DQQ_1step(pmesh, vpm, mask); internal::DQQ_1step(pmesh, vpm, mask);
} }
@ -233,14 +233,14 @@ void Sqrt3(PolygonMesh& pmesh, Mask mask, int step = 1) {
template <class PolygonMesh, class Mask, class NamedParameters> template <class PolygonMesh, class Mask, class NamedParameters>
void Sqrt3(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) { void Sqrt3(PolygonMesh& pmesh, Mask mask, const NamedParameters& np) {
// todo: static assert that PolygonMesh == Mask::PolygonMesh // todo: static assert that PolygonMesh == Mask::PolygonMesh
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
for (unsigned int i = 0; i < step; i++) for (unsigned int i = 0; i < step; i++)
internal::Sqrt3_1step(pmesh, vpm, mask, (i%2==1)); internal::Sqrt3_1step(pmesh, vpm, mask, (i%2==1));
} }

View File

@ -29,7 +29,7 @@
#include <CGAL/circulator.h> #include <CGAL/circulator.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/Subdivision_method_3/subdivision_hosts_3.h> #include <CGAL/Subdivision_method_3/subdivision_hosts_3.h>
@ -128,13 +128,13 @@ void CatmullClark_subdivision(PolygonMesh& pmesh, int step) {
**/ **/
template <class PolygonMesh, class NamedParameters> template <class PolygonMesh, class NamedParameters>
void CatmullClark_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { void CatmullClark_subdivision(PolygonMesh& pmesh, const NamedParameters& np) {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
CatmullClark_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm); CatmullClark_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm);
for(unsigned int i = 0; i < step; i++) for(unsigned int i = 0; i < step; i++)
@ -181,13 +181,13 @@ void Loop_subdivision(PolygonMesh& pmesh, int step) {
**/ **/
template <class PolygonMesh, class NamedParameters> template <class PolygonMesh, class NamedParameters>
void Loop_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { void Loop_subdivision(PolygonMesh& pmesh, const NamedParameters& np) {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
Loop_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm); Loop_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm);
for(unsigned int i = 0; i < step; i++) for(unsigned int i = 0; i < step; i++)
@ -234,13 +234,13 @@ void DooSabin_subdivision(PolygonMesh& pmesh, int step) {
**/ **/
template <class PolygonMesh, class NamedParameters> template <class PolygonMesh, class NamedParameters>
void DooSabin_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { void DooSabin_subdivision(PolygonMesh& pmesh, const NamedParameters& np) {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
DooSabin_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm); DooSabin_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm);
for(unsigned int i = 0; i < step; i++) for(unsigned int i = 0; i < step; i++)
@ -292,13 +292,13 @@ void Sqrt3_subdivision(PolygonMesh& pmesh, int step) {
**/ **/
template <class PolygonMesh, class NamedParameters> template <class PolygonMesh, class NamedParameters>
void Sqrt3_subdivision(PolygonMesh& pmesh, const NamedParameters& np) { void Sqrt3_subdivision(PolygonMesh& pmesh, const NamedParameters& np) {
using boost::choose_param; using parameters::choose_parameter;
using boost::get_param; using parameters::get_parameter;
typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm; typedef typename Polygon_mesh_processing::GetVertexPointMap<PolygonMesh, NamedParameters>::type Vpm;
Vpm vpm = choose_param(get_param(np, internal_np::vertex_point), Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(CGAL::vertex_point, pmesh)); get_property_map(CGAL::vertex_point, pmesh));
unsigned int step = choose_param(get_param(np, internal_np::number_of_iterations), 1); unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1);
Sqrt3_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm); Sqrt3_mask_3<PolygonMesh,Vpm> mask(&pmesh, vpm);
for(unsigned int i = 0; i < step; i++) for(unsigned int i = 0; i < step; i++)

View File

@ -56,7 +56,7 @@
#include <CGAL/Surface_mesh/IO/PLY.h> #include <CGAL/Surface_mesh/IO/PLY.h>
#include <CGAL/Handle_hash_function.h> #include <CGAL/Handle_hash_function.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
namespace CGAL { namespace CGAL {
@ -2112,13 +2112,16 @@ private: //------------------------------------------------------- private data
bool has_fcolors; bool has_fcolors;
boost::tie(fcolors, has_fcolors) = sm.template property_map<typename Mesh::Face_index, CGAL::Color >("f:color"); boost::tie(fcolors, has_fcolors) = sm.template property_map<typename Mesh::Face_index, CGAL::Color >("f:color");
using parameters::choose_parameter;
using parameters::get_parameter;
if(!has_fcolors && !has_vcolors) if(!has_fcolors && !has_vcolors)
os << "OFF\n" << sm.number_of_vertices() << " " << sm.number_of_faces() << " 0\n"; os << "OFF\n" << sm.number_of_vertices() << " " << sm.number_of_faces() << " 0\n";
else else
os << "COFF\n" << sm.number_of_vertices() << " " << sm.number_of_faces() << " 0\n"; os << "COFF\n" << sm.number_of_vertices() << " " << sm.number_of_faces() << " 0\n";
std::vector<int> reindex; std::vector<int> reindex;
typename Polygon_mesh_processing::GetVertexPointMap<Surface_mesh<P>, NamedParameters>::const_type typename Polygon_mesh_processing::GetVertexPointMap<Surface_mesh<P>, NamedParameters>::const_type
vpm = choose_param(get_param(np, internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(CGAL::vertex_point, sm)); get_const_property_map(CGAL::vertex_point, sm));
reindex.resize(sm.num_vertices()); reindex.resize(sm.num_vertices());
int n = 0; int n = 0;
@ -2398,8 +2401,11 @@ private: //------------------------------------------------------- private data
typedef typename Mesh::Face_index Face_index; typedef typename Mesh::Face_index Face_index;
typedef typename Mesh::Vertex_index Vertex_index; typedef typename Mesh::Vertex_index Vertex_index;
typedef typename Mesh::size_type size_type; typedef typename Mesh::size_type size_type;
using parameters::choose_parameter;
using parameters::get_parameter;
typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Surface_mesh<P>, NamedParameters>::type typename CGAL::Polygon_mesh_processing::GetVertexPointMap<Surface_mesh<P>, NamedParameters>::type
vpm = choose_param(get_param(np, CGAL::internal_np::vertex_point), vpm = choose_parameter(get_parameter(np, CGAL::internal_np::vertex_point),
get_property_map(CGAL::vertex_point, sm)); get_property_map(CGAL::vertex_point, sm));
int n, f, e; int n, f, e;
std::string off; std::string off;

View File

@ -26,7 +26,7 @@
#include <CGAL/license/Surface_mesh.h> #include <CGAL/license/Surface_mesh.h>
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <boost/graph/graph_traits.hpp> #include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp> #include <boost/graph/properties.hpp>

View File

@ -27,7 +27,7 @@
#include <CGAL/Variational_shape_approximation.h> #include <CGAL/Variational_shape_approximation.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <CGAL/property_map.h> #include <CGAL/property_map.h>
@ -127,22 +127,22 @@ unspecified_type all_default();
template <typename TriangleMesh, typename NamedParameters> template <typename TriangleMesh, typename NamedParameters>
bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np) bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np)
{ {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
using boost::is_default_param; using parameters::is_default_parameter;
typedef typename Polygon_mesh_processing::GetGeomTraits<TriangleMesh, NamedParameters>::type Geom_traits; typedef typename Polygon_mesh_processing::GetGeomTraits<TriangleMesh, NamedParameters>::type Geom_traits;
typedef typename Geom_traits::FT FT; typedef typename Geom_traits::FT FT;
typedef typename Polygon_mesh_processing::GetVertexPointMap<TriangleMesh, NamedParameters>::type Vertex_point_map; typedef typename Polygon_mesh_processing::GetVertexPointMap<TriangleMesh, NamedParameters>::type Vertex_point_map;
Vertex_point_map point_pmap = choose_param(get_param(np, internal_np::vertex_point), Vertex_point_map point_pmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, const_cast<TriangleMesh &>(tm))); get_property_map(vertex_point, const_cast<TriangleMesh &>(tm)));
typedef CGAL::Variational_shape_approximation<TriangleMesh, Vertex_point_map> L21_approx; typedef CGAL::Variational_shape_approximation<TriangleMesh, Vertex_point_map> L21_approx;
typedef typename L21_approx::Error_metric L21_metric; typedef typename L21_approx::Error_metric L21_metric;
const Verbose_level vl = choose_param( const Verbose_level vl = choose_parameter(
get_param(np, internal_np::verbose_level), SILENT); get_parameter(np, internal_np::verbose_level), SILENT);
const std::size_t number_of_faces = std::distance(faces(tm).first, faces(tm).second); const std::size_t number_of_faces = std::distance(faces(tm).first, faces(tm).second);
const std::size_t number_of_vertices = std::distance(vertices(tm).first, vertices(tm).second); const std::size_t number_of_vertices = std::distance(vertices(tm).first, vertices(tm).second);
@ -157,14 +157,14 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np
L21_approx approx(tm, point_pmap, metric); L21_approx approx(tm, point_pmap, metric);
// hierarchical seeding by default // hierarchical seeding by default
const Seeding_method method = choose_param( const Seeding_method method = choose_parameter(
get_param(np, internal_np::seeding_method), HIERARCHICAL); get_parameter(np, internal_np::seeding_method), HIERARCHICAL);
const std::size_t max_nb_of_proxies = choose_param( const std::size_t max_nb_of_proxies = choose_parameter(
get_param(np, internal_np::max_number_of_proxies), 0); get_parameter(np, internal_np::max_number_of_proxies), 0);
const FT min_error_drop = choose_param( const FT min_error_drop = choose_parameter(
get_param(np, internal_np::min_error_drop), FT(0.0)); get_parameter(np, internal_np::min_error_drop), FT(0.0));
const std::size_t nb_of_relaxations = choose_param( const std::size_t nb_of_relaxations = choose_parameter(
get_param(np, internal_np::number_of_relaxations), 5); get_parameter(np, internal_np::number_of_relaxations), 5);
if (vl == VERBOSE) { if (vl == VERBOSE) {
std::cout << (method == RANDOM ? "Random" : std::cout << (method == RANDOM ? "Random" :
@ -179,8 +179,8 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np
if (vl == MAIN_STEPS || vl == VERBOSE) if (vl == MAIN_STEPS || vl == VERBOSE)
std::cout << "Seeding done." << std::endl; std::cout << "Seeding done." << std::endl;
const std::size_t nb_of_iterations = choose_param( const std::size_t nb_of_iterations = choose_parameter(
get_param(np, internal_np::number_of_iterations), 20); get_parameter(np, internal_np::number_of_iterations), 20);
if (vl == VERBOSE) if (vl == VERBOSE)
std::cout << "\n#nb_of_iterations = " << nb_of_iterations << std::endl; std::cout << "\n#nb_of_iterations = " << nb_of_iterations << std::endl;
@ -193,30 +193,30 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np
} }
// get proxy map // get proxy map
approx.proxy_map( get_param(np, internal_np::face_proxy_map) ); approx.proxy_map( get_parameter(np, internal_np::face_proxy_map) );
if (!boost::is_default_param(get_param(np, internal_np::face_proxy_map)) if (!parameters::is_default_parameter(get_parameter(np, internal_np::face_proxy_map))
&& (vl == MAIN_STEPS || vl == VERBOSE)) && (vl == MAIN_STEPS || vl == VERBOSE))
std::cout << "Filling face proxy map done." << std::endl; std::cout << "Filling face proxy map done." << std::endl;
// get proxies // get proxies
approx.proxies( get_param(np, internal_np::proxies) ); approx.proxies( get_parameter(np, internal_np::proxies) );
if (!is_default_param( get_param(np, internal_np::proxies) ) if (!is_default_parameter( get_parameter(np, internal_np::proxies) )
&& (vl == MAIN_STEPS || vl == VERBOSE)) && (vl == MAIN_STEPS || vl == VERBOSE))
std::cout << "Get proxies done." << std::endl; std::cout << "Get proxies done." << std::endl;
// meshing // meshing
bool is_manifold = false; bool is_manifold = false;
if (!is_default_param( get_param(np, internal_np::anchors)) if (!is_default_parameter( get_parameter(np, internal_np::anchors))
|| !is_default_param( get_param(np, internal_np::triangles) )) || !is_default_parameter( get_parameter(np, internal_np::triangles) ))
{ {
if (vl == VERBOSE) { if (vl == VERBOSE) {
const FT subdivision_ratio = choose_param(get_param(np, internal_np::subdivision_ratio), FT(5.0)); const FT subdivision_ratio = choose_parameter(get_parameter(np, internal_np::subdivision_ratio), FT(5.0));
const bool relative_to_chord = choose_param(get_param(np, internal_np::relative_to_chord), false); const bool relative_to_chord = choose_parameter(get_parameter(np, internal_np::relative_to_chord), false);
const bool with_dihedral_angle = choose_param(get_param(np, internal_np::with_dihedral_angle), false); const bool with_dihedral_angle = choose_parameter(get_parameter(np, internal_np::with_dihedral_angle), false);
const bool optimize_anchor_location = choose_param(get_param(np, internal_np::optimize_anchor_location), true); const bool optimize_anchor_location = choose_parameter(get_parameter(np, internal_np::optimize_anchor_location), true);
const bool pca_plane = choose_param(get_param(np, internal_np::pca_plane), false); const bool pca_plane = choose_parameter(get_parameter(np, internal_np::pca_plane), false);
std::cout << "Meshing: " std::cout << "Meshing: "
<< "\nchord_error = " << subdivision_ratio << "\nchord_error = " << subdivision_ratio
<< "\nrelative_to_chord = " << relative_to_chord << "\nrelative_to_chord = " << relative_to_chord
@ -233,16 +233,16 @@ bool approximate_triangle_mesh(const TriangleMesh &tm, const NamedParameters &np
} }
// get anchor points // get anchor points
approx.anchor_points( get_param(np, internal_np::anchors) ); approx.anchor_points( get_parameter(np, internal_np::anchors) );
if (!is_default_param( get_param(np, internal_np::anchors) ) if (!is_default_parameter( get_parameter(np, internal_np::anchors) )
&& (vl == MAIN_STEPS || vl == VERBOSE)) && (vl == MAIN_STEPS || vl == VERBOSE))
std::cout << "Get anchors done." << std::endl; std::cout << "Get anchors done." << std::endl;
// get indexed triangles // get indexed triangles
approx.indexed_triangles( get_param(np, internal_np::triangles) ); approx.indexed_triangles( get_parameter(np, internal_np::triangles) );
if (!is_default_param( get_param(np, internal_np::triangles) ) if (!is_default_parameter( get_parameter(np, internal_np::triangles) )
&& (vl == MAIN_STEPS || vl == VERBOSE)) && (vl == MAIN_STEPS || vl == VERBOSE))
std::cout << "Get indexed triangles done." << std::endl; std::cout << "Get indexed triangles done." << std::endl;

View File

@ -44,7 +44,7 @@
#include <boost/graph/subgraph.hpp> #include <boost/graph/subgraph.hpp>
#include <boost/optional.hpp> #include <boost/optional.hpp>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/named_params_helper.h> #include <CGAL/boost/graph/named_params_helper.h>
#include <vector> #include <vector>
@ -322,17 +322,17 @@ public:
*/ */
template <typename NamedParameters> template <typename NamedParameters>
std::size_t initialize_seeds(const NamedParameters &np) { std::size_t initialize_seeds(const NamedParameters &np) {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
const Surface_mesh_approximation::Seeding_method method = choose_param( const Surface_mesh_approximation::Seeding_method method = choose_parameter(
get_param(np, internal_np::seeding_method), Surface_mesh_approximation::HIERARCHICAL); get_parameter(np, internal_np::seeding_method), Surface_mesh_approximation::HIERARCHICAL);
std::size_t max_nb_proxies = choose_param( std::size_t max_nb_proxies = choose_parameter(
get_param(np, internal_np::max_number_of_proxies), 0); get_parameter(np, internal_np::max_number_of_proxies), 0);
FT min_error_drop = choose_param( FT min_error_drop = choose_parameter(
get_param(np, internal_np::min_error_drop), FT(0.0)); get_parameter(np, internal_np::min_error_drop), FT(0.0));
const std::size_t nb_relaxations = choose_param( const std::size_t nb_relaxations = choose_parameter(
get_param(np, internal_np::number_of_relaxations), 5); get_parameter(np, internal_np::number_of_relaxations), 5);
// adjust parameters // adjust parameters
if (max_nb_proxies < (m_nb_of_faces / 3) && max_nb_proxies > 0) { if (max_nb_proxies < (m_nb_of_faces / 3) && max_nb_proxies > 0) {
@ -797,14 +797,14 @@ public:
*/ */
template <typename NamedParameters> template <typename NamedParameters>
bool extract_mesh(const NamedParameters &np) { bool extract_mesh(const NamedParameters &np) {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
const FT subdivision_ratio = choose_param(get_param(np, internal_np::subdivision_ratio), FT(5.0)); const FT subdivision_ratio = choose_parameter(get_parameter(np, internal_np::subdivision_ratio), FT(5.0));
const bool relative_to_chord = choose_param(get_param(np, internal_np::relative_to_chord), false); const bool relative_to_chord = choose_parameter(get_parameter(np, internal_np::relative_to_chord), false);
const bool with_dihedral_angle = choose_param(get_param(np, internal_np::with_dihedral_angle), false); const bool with_dihedral_angle = choose_parameter(get_parameter(np, internal_np::with_dihedral_angle), false);
const bool optimize_anchor_location = choose_param(get_param(np, internal_np::optimize_anchor_location), true); const bool optimize_anchor_location = choose_parameter(get_parameter(np, internal_np::optimize_anchor_location), true);
const bool pca_plane = choose_param(get_param(np, internal_np::pca_plane), false); const bool pca_plane = choose_parameter(get_parameter(np, internal_np::pca_plane), false);
// compute averaged edge length, used in chord subdivision // compute averaged edge length, used in chord subdivision
m_average_edge_length = compute_averaged_edge_length(*m_ptm, m_vpoint_map); m_average_edge_length = compute_averaged_edge_length(*m_ptm, m_vpoint_map);
@ -860,19 +860,19 @@ public:
*/ */
template <typename NamedParameters> template <typename NamedParameters>
void output(const NamedParameters &np) const { void output(const NamedParameters &np) const {
using boost::get_param; using parameters::get_parameter;
using boost::choose_param; using parameters::choose_parameter;
// get proxy map // get proxy map
proxy_map( get_param(np, internal_np::face_proxy_map) ); proxy_map( get_parameter(np, internal_np::face_proxy_map) );
// get proxies // get proxies
proxies( get_param(np, internal_np::proxies) ); proxies( get_parameter(np, internal_np::proxies) );
// get anchor points // get anchor points
anchor_points( get_param(np, internal_np::anchors) ); anchor_points( get_parameter(np, internal_np::anchors) );
// get indexed triangles // get indexed triangles
indexed_triangles( get_param(np, internal_np::triangles) ); indexed_triangles( get_parameter(np, internal_np::triangles) );
} }
/*! /*!
@ -896,7 +896,7 @@ public:
/*! /*!
* @brief dummy function for named parameters. * @brief dummy function for named parameters.
*/ */
void proxy_map(boost::param_not_found) const {} void proxy_map(internal_np::Param_not_found) const {}
/*! /*!
* @brief gets the face region of the specified proxy. * @brief gets the face region of the specified proxy.
@ -928,7 +928,7 @@ public:
/*! /*!
* @brief dummy function for named parameters. * @brief dummy function for named parameters.
*/ */
void proxies(boost::param_not_found) const {} void proxies(internal_np::Param_not_found) const {}
/*! /*!
* @brief gets the wrapped proxies. * @brief gets the wrapped proxies.
@ -955,7 +955,7 @@ public:
/*! /*!
* @brief dummy function for named parameters. * @brief dummy function for named parameters.
*/ */
void anchor_points(boost::param_not_found) const {} void anchor_points(internal_np::Param_not_found) const {}
/*! /*!
* @brief gets the anchor vertices. * @brief gets the anchor vertices.
@ -983,7 +983,7 @@ public:
/*! /*!
* @brief dummy function for named parameters. * @brief dummy function for named parameters.
*/ */
void indexed_triangles(boost::param_not_found) const {} void indexed_triangles(internal_np::Param_not_found) const {}
/*! /*!
* @brief gets the indexed boundary polygon approximation. * @brief gets the indexed boundary polygon approximation.

View File

@ -47,7 +47,7 @@
#endif #endif
#include <CGAL/IO/trace.h> #include <CGAL/IO/trace.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <boost/version.hpp> #include <boost/version.hpp>
#ifdef CGAL_DO_NOT_USE_BOYKOV_KOLMOGOROV_MAXFLOW_SOFTWARE #ifdef CGAL_DO_NOT_USE_BOYKOV_KOLMOGOROV_MAXFLOW_SOFTWARE

View File

@ -24,7 +24,7 @@
#include <CGAL/boost/graph/properties.h> #include <CGAL/boost/graph/properties.h>
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/Surface_mesh_simplification/Detail/Edge_collapse.h> #include <CGAL/Surface_mesh_simplification/Detail/Edge_collapse.h>
#include <CGAL/Surface_mesh_simplification/Detail/Common.h> #include <CGAL/Surface_mesh_simplification/Detail/Common.h>
@ -102,12 +102,11 @@ struct Dummy_visitor
template<class TM, class ShouldStop, class P, class T, class R> template<class TM, class ShouldStop, class P, class T, class R>
int edge_collapse ( TM& aSurface int edge_collapse ( TM& aSurface
, ShouldStop const& aShould_stop , ShouldStop const& aShould_stop
, cgal_bgl_named_params<P,T,R> const& aParams , Named_function_parameters<P,T,R> const& aParams
) )
{ {
using boost::choose_param ; using parameters::choose_parameter;
using boost::choose_const_pmap ; using parameters::get_parameter;
using boost::get_param ;
LindstromTurk_params lPolicyParams ; LindstromTurk_params lPolicyParams ;
@ -115,25 +114,24 @@ int edge_collapse ( TM& aSurface
return edge_collapse(aSurface return edge_collapse(aSurface
,aShould_stop ,aShould_stop
,choose_const_pmap(get_param(aParams,internal_np::vertex_index),aSurface,boost::vertex_index) ,choose_parameter(get_parameter(aParams,internal_np::vertex_index), get_const_property_map(boost::vertex_index, aSurface))
,choose_pmap(get_param(aParams,internal_np::vertex_point),aSurface,boost::vertex_point) ,choose_parameter(get_parameter(aParams,internal_np::vertex_point),get_property_map(vertex_point, aSurface))
,choose_const_pmap(get_param(aParams,internal_np::halfedge_index),aSurface,boost::halfedge_index) ,choose_parameter(get_parameter(aParams,internal_np::halfedge_index),get_const_property_map(boost::halfedge_index, aSurface))
,choose_param (get_param(aParams,internal_np::edge_is_constrained),No_constrained_edge_map<TM>()) ,choose_parameter(get_parameter(aParams,internal_np::edge_is_constrained),No_constrained_edge_map<TM>())
,choose_param (get_param(aParams,internal_np::get_cost_policy), LindstromTurk_cost<TM>()) ,choose_parameter(get_parameter(aParams,internal_np::get_cost_policy), LindstromTurk_cost<TM>())
,choose_param (get_param(aParams,internal_np::get_placement_policy), LindstromTurk_placement<TM>()) ,choose_parameter(get_parameter(aParams,internal_np::get_placement_policy), LindstromTurk_placement<TM>())
,choose_param (get_param(aParams,vis), Dummy_visitor()) ,choose_parameter(get_parameter(aParams,vis), Dummy_visitor())
); );
} }
template<class TM, class ShouldStop, class GT, class P, class T, class R> template<class TM, class ShouldStop, class GT, class P, class T, class R>
int edge_collapse ( TM& aSurface int edge_collapse ( TM& aSurface
, ShouldStop const& aShould_stop , ShouldStop const& aShould_stop
, cgal_bgl_named_params<P,T,R> const& aParams , Named_function_parameters<P,T,R> const& aParams
) )
{ {
using boost::choose_param ; using parameters::choose_parameter;
using boost::choose_const_pmap ; using parameters::get_parameter;
using boost::get_param ;
LindstromTurk_params lPolicyParams ; LindstromTurk_params lPolicyParams ;
@ -141,13 +139,13 @@ int edge_collapse ( TM& aSurface
return edge_collapse(aSurface return edge_collapse(aSurface
,aShould_stop ,aShould_stop
,choose_const_pmap(get_param(aParams,internal_np::vertex_index),aSurface,boost::vertex_index) ,choose_parameter(get_parameter(aParams,internal_np::vertex_index), get_const_property_map(boost::vertex_index, aSurface))
,choose_const_pmap(get_param(aParams,internal_np::vertex_point),aSurface,boost::vertex_point) ,choose_parameter(get_parameter(aParams,internal_np::vertex_point),get_property_map(vertex_point, aSurface))
,choose_const_pmap(get_param(aParams,internal_np::halfedge_index),aSurface,boost::halfedge_index) ,choose_parameter(get_parameter(aParams,internal_np::halfedge_index),get_const_property_map(boost::halfedge_index, aSurface))
,choose_param (get_param(aParams,internal_np::edge_is_constrained),No_constrained_edge_map<TM>()) ,choose_parameter(get_parameter(aParams,internal_np::edge_is_constrained),No_constrained_edge_map<TM>())
,choose_param (get_param(aParams,internal_np::get_cost_policy), LindstromTurk_cost<TM>()) ,choose_parameter(get_parameter(aParams,internal_np::get_cost_policy), LindstromTurk_cost<TM>())
,choose_param (get_param(aParams,internal_np::get_placement_policy), LindstromTurk_placement<TM>()) ,choose_parameter(get_parameter(aParams,internal_np::get_placement_policy), LindstromTurk_placement<TM>())
,choose_param (get_param(aParams,vis), Dummy_visitor()) ,choose_parameter(get_parameter(aParams,vis), Dummy_visitor())
); );
} }

View File

@ -24,7 +24,7 @@
#include <functional> #include <functional>
// include this to avoid a VC15 warning // include this to avoid a VC15 warning
#include <CGAL/boost/graph/named_function_params.h> #include <CGAL/boost/graph/Named_function_parameters.h>
#include <CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h> #include <CGAL/boost/graph/internal/graph_traits_2D_triangulation_helper.h>
#include <CGAL/boost/graph/properties_Triangulation_data_structure_2.h> #include <CGAL/boost/graph/properties_Triangulation_data_structure_2.h>