Use the functions where possible

This commit is contained in:
Maxime Gimeno 2019-09-27 11:50:55 +02:00
parent fe78af0029
commit 8583935ae8
8 changed files with 44 additions and 69 deletions

View File

@ -187,20 +187,9 @@ namespace Polygon_mesh_processing {
{
if (faces.empty()) return out;
typedef PolygonMesh PM;
typedef typename GetFaceIndexMap<PM, NamedParameters>::const_type FIMap;
typedef typename boost::property_map<typename internal::Dummy_PM,
CGAL::face_index_t>::type Unset_FIMap;
if (boost::is_same<FIMap, Unset_FIMap>::value || faces.size() == 1)
{
//face index map is not given in named parameters, nor as an internal property map
return internal::border_halfedges_impl(faces, out, pmesh);
}
//face index map given as a named parameter, or as an internal property map
FIMap fim = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(CGAL::face_index, pmesh));
auto fim =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
return internal::border_halfedges_impl(faces, fim, out, pmesh, np);
}

View File

@ -413,10 +413,9 @@ std::size_t keep_large_connected_components(PolygonMesh& pmesh,
using parameters::choose_parameter;
using parameters::get_parameter;
// FaceIndexMap
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FaceIndexMap;
FaceIndexMap fim = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh));
typedef typename Default_face_index_map<NamedParameters, PolygonMesh>::type FaceIndexMap;
FaceIndexMap fim =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
typedef typename internal_np::Lookup_named_param_def<internal_np::face_size_map_t,
NamedParameters,
@ -488,9 +487,8 @@ void keep_or_remove_connected_components(PolygonMesh& pmesh
typedef typename boost::graph_traits<PolygonMesh>::edge_iterator edge_iterator;
//VertexIndexMap
typedef typename GetVertexIndexMap<PM, NamedParameters>::type VertexIndexMap;
VertexIndexMap vim = choose_parameter(get_parameter(np, internal_np::vertex_index),
get_const_property_map(boost::vertex_index, pmesh));
typedef typename Default_vertex_index_map<NamedParameters, PM>::type VertexIndexMap;
VertexIndexMap vim = get_initialized_vertex_index_map(pmesh, np);
std::set<std::size_t> cc_to_keep;
for(std::size_t i : components_to_keep)
@ -730,9 +728,9 @@ void remove_connected_components(PolygonMesh& pmesh
using parameters::get_parameter;
//FaceIndexMap
typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::type FaceIndexMap;
FaceIndexMap fim = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh));
typedef typename Default_face_index_map<CGAL_PMP_NP_CLASS, PolygonMesh>::type FaceIndexMap;
FaceIndexMap fim =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
//vector_property_map
boost::vector_property_map<std::size_t, FaceIndexMap> face_cc(fim);
@ -788,9 +786,9 @@ void keep_connected_components(PolygonMesh& pmesh
using parameters::get_parameter;
//FaceIndexMap
typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::type FaceIndexMap;
FaceIndexMap fim = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, pmesh));
typedef typename Default_face_index_map<CGAL_PMP_NP_CLASS, PolygonMesh>::type FaceIndexMap;
FaceIndexMap fim =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
//vector_property_map
boost::vector_property_map<std::size_t, FaceIndexMap> face_cc(fim);

View File

@ -185,8 +185,6 @@ bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np)
typedef typename GT::vertex_descriptor vertex_descriptor;
typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::const_type Vpm;
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters>::const_type Fid_map;
typedef typename Kernel_traits<
typename boost::property_traits<Vpm>::value_type >::Kernel Kernel;
@ -196,8 +194,8 @@ bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np)
Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm));
auto fid_map =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(tm, np);
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));
@ -524,19 +522,18 @@ corefine_and_compute_boolean_operations(
Edge_mark_map_tuple;
// Face index point maps
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters1>::type Fid_map;
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters2>::type Fid_map2;
typedef typename CGAL::Polygon_mesh_processing::
Default_face_index_map<NamedParameters1, TriangleMesh>::type Fid_map;
typedef typename CGAL::Polygon_mesh_processing::
Default_face_index_map<NamedParameters2, TriangleMesh>::type Fid_map2;
CGAL_USE_TYPE(Fid_map2);
CGAL_assertion_code(
static const bool same_fidmap = (boost::is_same<Fid_map,Fid_map2>::value);)
CGAL_static_assertion(same_fidmap);
Fid_map fid_map1 = parameters::choose_parameter(parameters::get_parameter(np1, internal_np::face_index),
get_property_map(boost::face_index, tm1));
Fid_map fid_map2 = parameters::choose_parameter(parameters::get_parameter(np2, internal_np::face_index),
get_property_map(boost::face_index, tm2));
Fid_map fid_map1 = get_initialized_face_index_map(tm1, np1);
Fid_map fid_map2 = get_initialized_face_index_map(tm2, np2);
// User visitor
typedef typename internal_np::Lookup_named_param_def <
internal_np::graph_visitor_t,
@ -1023,10 +1020,10 @@ namespace experimental {
Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_property_map(boost::vertex_point, tm));
// Face index map
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters>::type Fid_map;
Fid_map fid_map = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_property_map(boost::face_index, tm));
typedef typename Default_face_index_map<NamedParameters, TriangleMesh>::type Fid_map;
Fid_map fid_map =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(tm, np);
// Edge is-constrained maps
typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t,

View File

@ -148,9 +148,8 @@ detect_surface_patches(PolygonMesh& p,
const NamedParameters& np)
{
//extract types from NPs
typename GetFaceIndexMap<PolygonMesh, NamedParameters>::const_type
fimap = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, p));
auto fimap =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(p, np);
int offset = static_cast<int>(
parameters::choose_parameter(parameters::get_parameter(np, internal_np::first_index),

View File

@ -475,8 +475,6 @@ void orient(TriangleMesh& tm, const NamedParameters& np)
typedef typename Graph_traits::halfedge_descriptor halfedge_descriptor;
typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::const_type Vpm;
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters>::const_type Fid_map;
CGAL_assertion(is_triangle_mesh(tm));
CGAL_assertion(is_valid_polygon_mesh(tm));
@ -491,8 +489,8 @@ void orient(TriangleMesh& tm, const NamedParameters& np)
Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = choose_parameter(get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm));
auto fid_map =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(tm, np);
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));
@ -582,8 +580,6 @@ void orient_to_bound_a_volume(TriangleMesh& tm,
typedef typename Graph_traits::vertex_descriptor vertex_descriptor;
typedef typename GetVertexPointMap<TriangleMesh,
NamedParameters>::const_type Vpm;
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters>::const_type Fid_map;
typedef typename Kernel_traits<
typename boost::property_traits<Vpm>::value_type >::Kernel Kernel;
if (!is_closed(tm)) return;
@ -598,8 +594,8 @@ void orient_to_bound_a_volume(TriangleMesh& tm,
Vpm vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_const_property_map(boost::vertex_point, tm));
Fid_map fid_map = choose_parameter(get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm));
auto fid_map =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(tm, np);
std::vector<std::size_t> face_cc(num_faces(tm), std::size_t(-1));

View File

@ -168,10 +168,9 @@ void isotropic_remeshing(const FaceRange& faces
typedef typename GetVertexPointMap<PM, NamedParameters>::type VPMap;
VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pmesh));
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FIMap;
FIMap fimap = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(face_index, pmesh));
typedef typename Default_face_index_map<NamedParameters, PolygonMesh>::type FIMap;
FIMap fimap =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t,
@ -347,9 +346,9 @@ void split_long_edges(const EdgeRange& edges
VPMap vpmap = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, pmesh));
typedef typename GetFaceIndexMap<PM, NamedParameters>::type FIMap;
FIMap fimap = choose_parameter(get_parameter(np, internal_np::face_index),
get_property_map(face_index, pmesh));
typedef typename Default_face_index_map<NamedParameters, PolygonMesh>::type FIMap;
FIMap fimap =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t,

View File

@ -186,9 +186,9 @@ collect_duplicated_stitchable_boundary_edges
if(per_cc)
{
cc = get(Face_property_tag(), pmesh);
typedef typename GetFaceIndexMap<PM, CGAL_PMP_NP_CLASS>::const_type FIMap;
FIMap fim = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(face_index, pmesh));
auto fim =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(pmesh, np);
num_component = num_component_wrapper(pmesh, cc, fim);
border_edges_per_cc.resize(num_component);
}

View File

@ -551,12 +551,9 @@ public:
std::vector<std::size_t> cc_ids(num_faces(tm));
// face index map
typedef typename GetFaceIndexMap<TriangleMesh,
NamedParameters>::type Fid_map;
Fid_map fid_map =
parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_index),
get_const_property_map(boost::face_index, tm));
auto fid_map =
CGAL::Polygon_mesh_processing::get_initialized_face_index_map(tm, np);
std::size_t nb_cc =
Polygon_mesh_processing::connected_components(