From cb0e72049b18b04c012c9ed220f582a62be7bebc Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Thu, 29 Apr 2021 18:07:01 +0200 Subject: [PATCH] using constant property map instead of new get scalar value class --- .../CGAL/boost/graph/named_params_helper.h | 24 ----------------- .../compute_registration_transformation.h | 26 ++++++++++++------- 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/BGL/include/CGAL/boost/graph/named_params_helper.h b/BGL/include/CGAL/boost/graph/named_params_helper.h index 53969a90367..b3a32e15dc4 100644 --- a/BGL/include/CGAL/boost/graph/named_params_helper.h +++ b/BGL/include/CGAL/boost/graph/named_params_helper.h @@ -435,30 +435,6 @@ CGAL_DEF_GET_INITIALIZED_INDEX_MAP(face, typename boost::graph_traits::fa > ::type type; }; - template - class GetScalarMap - { - struct DummyScalarMap - { - typedef typename std::iterator_traits::value_type key_type; - typedef typename GetK::Kernel::FT value_type; - typedef value_type reference; - typedef boost::read_write_property_map_tag category; - - typedef DummyScalarMap Self; - friend reference get(const Self&, const key_type&) { return value_type(1); } - friend void put(const Self&, const key_type&, const value_type&) { } - }; - - public: - typedef DummyScalarMap NoMap; - typedef typename internal_np::Lookup_named_param_def < - internal_np::scalar_t, - NamedParameters, - DummyScalarMap // default - > ::type type; - }; - template class GetPlaneMap { diff --git a/Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h b/Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h index 735414a3766..fbc6fb82a79 100644 --- a/Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h +++ b/Point_set_processing_3/include/CGAL/pointmatcher/compute_registration_transformation.h @@ -21,6 +21,7 @@ #include #include #include +#include #include @@ -590,6 +591,11 @@ compute_registration_transformation (const PointRange1& point_set_1, const Point namespace PSP = CGAL::Point_set_processing_3; + // basic types + typedef typename PSP::GetK::Kernel Kernel; + typedef typename Kernel::FT Scalar; + typedef typename Kernel::Aff_transformation_3 Transformation; + // property map types typedef typename CGAL::GetPointMap::type PointMap1; typedef typename CGAL::GetPointMap::type PointMap2; @@ -603,22 +609,22 @@ compute_registration_transformation (const PointRange1& point_set_1, const Point typename boost::property_traits::value_type> ::value), "The vector type of input ranges must be the same"); - typedef typename PSP::GetScalarMap::type WeightMap1; - typedef typename PSP::GetScalarMap::type WeightMap2; - CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, - typename boost::property_traits::value_type> ::value), - "The scalar type of input ranges must be the same"); + typedef typename std::iterator_traits::value_type key_type1; + typedef typename std::iterator_traits::value_type key_type2; - typedef typename PSP::GetK::Kernel Kernel; - typedef typename Kernel::FT Scalar; - typedef typename Kernel::Aff_transformation_3 Transformation; + typedef typename CGAL::Constant_property_map DefaultWeightMap1; + typedef typename CGAL::Constant_property_map DefaultWeightMap2; PointMap1 point_map1 = choose_parameter(get_parameter(np1, internal_np::point_map), PointMap1()); NormalMap1 normal_map1 = choose_parameter(get_parameter(np1, internal_np::normal_map), NormalMap1()); - WeightMap1 weight_map1 = choose_parameter(get_parameter(np1, internal_np::scalar_map), WeightMap1()); + auto weight_map1 = choose_parameter(get_parameter(np1, internal_np::scalar_map), DefaultWeightMap1(Scalar(1))); PointMap2 point_map2 = choose_parameter(get_parameter(np2, internal_np::point_map), PointMap2()); NormalMap2 normal_map2 = choose_parameter(get_parameter(np2, internal_np::normal_map), NormalMap2()); - WeightMap2 weight_map2 = choose_parameter(get_parameter(np2, internal_np::scalar_map), WeightMap2()); + auto weight_map2 = choose_parameter(get_parameter(np2, internal_np::scalar_map), DefaultWeightMap2(Scalar(1))); + + CGAL_static_assertion_msg((boost::is_same< typename boost::property_traits::value_type, + typename boost::property_traits::value_type> ::value), + "The scalar type of input ranges must be the same"); // initial transformation Transformation initial_transformation