mirror of https://github.com/CGAL/cgal
follow up of commits making default value for dynamic maps a parameter pack
the free function becomes a better match than with a default value for the default parameter
This commit is contained in:
parent
8e0f2d6f73
commit
26b6857c4f
|
|
@ -67,23 +67,8 @@ template <CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS, typename CGAL_XX_YATP>
|
|||
struct property_map<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, DTAG<CGAL_XX_YATP> > \
|
||||
: property_map<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME, DTAG<CGAL_XX_YATP> > \
|
||||
{};\
|
||||
} /* boost namespace */\
|
||||
\
|
||||
namespace CGAL { \
|
||||
template <CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS, typename CGAL_XX_YATP>\
|
||||
typename boost::property_map<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, DTAG<CGAL_XX_YATP> >::type \
|
||||
get(DTAG<CGAL_XX_YATP> t, CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, const CGAL_XX_YATP& default_value = CGAL_XX_YATP()) \
|
||||
{ \
|
||||
return get(t, static_cast<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value); \
|
||||
} \
|
||||
\
|
||||
template <CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS, typename CGAL_XX_YATP>\
|
||||
typename boost::property_map<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, DTAG<CGAL_XX_YATP> >::const_type \
|
||||
get(DTAG<CGAL_XX_YATP> t, const CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, const CGAL_XX_YATP& default_value = CGAL_XX_YATP()) \
|
||||
{ \
|
||||
return get(t, static_cast<const CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value); \
|
||||
}\
|
||||
} //CGAL namespace
|
||||
} /* boost namespace */
|
||||
|
||||
|
||||
CGAL_PM_DT_SPEC(CGAL::dynamic_vertex_property_t)
|
||||
CGAL_PM_DT_SPEC(CGAL::dynamic_halfedge_property_t)
|
||||
|
|
@ -94,12 +79,31 @@ CGAL_PM_DT_SPEC(CGAL::dynamic_edge_property_t)
|
|||
|
||||
namespace CGAL {
|
||||
|
||||
template <CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS,
|
||||
typename Dynamic_property_tag,
|
||||
typename = std::enable_if_t<is_dynamic_property_tag<Dynamic_property_tag>()>,
|
||||
typename ...Default_value_args>
|
||||
auto
|
||||
get(Dynamic_property_tag t, CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, Default_value_args&&... default_value_args)
|
||||
{
|
||||
return get(t, static_cast<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value_args...);
|
||||
}
|
||||
|
||||
template <CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS,
|
||||
typename Dynamic_property_tag,
|
||||
typename = std::enable_if_t<is_dynamic_property_tag<Dynamic_property_tag>()>,
|
||||
typename ...Default_value_args>
|
||||
auto
|
||||
get(Dynamic_property_tag t, const CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, Default_value_args&&... default_value_args)
|
||||
{
|
||||
return get(t, static_cast<const CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value_args...);
|
||||
}
|
||||
|
||||
template <CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS, typename CGAL_XX_YATP>
|
||||
struct graph_has_property<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, CGAL_XX_YATP> :
|
||||
public CGAL::graph_has_property<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME, CGAL_XX_YATP>
|
||||
{};
|
||||
|
||||
|
||||
} // CGAL namespace
|
||||
|
||||
#undef CGAL_GRAPH_TRAITS_INHERITANCE_TEMPLATE_PARAMS
|
||||
|
|
@ -126,23 +130,8 @@ template <typename CGAL_XX_YATP> \
|
|||
struct property_map<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, DTAG<CGAL_XX_YATP> > \
|
||||
: property_map<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME, DTAG<CGAL_XX_YATP> > \
|
||||
{};\
|
||||
} /* boost namespace */\
|
||||
\
|
||||
namespace CGAL { \
|
||||
template <typename CGAL_XX_YATP>\
|
||||
typename boost::property_map<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, DTAG<CGAL_XX_YATP> >::type \
|
||||
get(DTAG<CGAL_XX_YATP> t, CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, const CGAL_XX_YATP& default_value = CGAL_XX_YATP()) \
|
||||
{ \
|
||||
return get(t, static_cast<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value); \
|
||||
} \
|
||||
\
|
||||
template <typename CGAL_XX_YATP>\
|
||||
typename boost::property_map<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, DTAG<CGAL_XX_YATP> >::const_type \
|
||||
get(DTAG<CGAL_XX_YATP> t, const CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, const CGAL_XX_YATP& default_value = CGAL_XX_YATP()) \
|
||||
{ \
|
||||
return get(t, static_cast<const CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value); \
|
||||
}\
|
||||
} //CGAL namespace
|
||||
} /* boost namespace */
|
||||
|
||||
|
||||
CGAL_PM_DT_SPEC(CGAL::dynamic_vertex_property_t)
|
||||
CGAL_PM_DT_SPEC(CGAL::dynamic_halfedge_property_t)
|
||||
|
|
@ -153,14 +142,32 @@ CGAL_PM_DT_SPEC(CGAL::dynamic_edge_property_t)
|
|||
|
||||
namespace CGAL {
|
||||
|
||||
template <typename Dynamic_property_tag,
|
||||
typename = std::enable_if_t<is_dynamic_property_tag<Dynamic_property_tag>()>,
|
||||
typename ...Default_value_args>
|
||||
auto
|
||||
get(Dynamic_property_tag t, CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, Default_value_args&&... default_value_args)
|
||||
{
|
||||
return get(t, static_cast<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value_args...);
|
||||
}
|
||||
|
||||
template <typename Dynamic_property_tag,
|
||||
typename = std::enable_if_t<is_dynamic_property_tag<Dynamic_property_tag>()>,
|
||||
typename ...Default_value_args>
|
||||
auto
|
||||
get(Dynamic_property_tag t, const CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME& g, Default_value_args&&... default_value_args)
|
||||
{
|
||||
return get(t, static_cast<const CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME&>(g), default_value_args...);
|
||||
}
|
||||
|
||||
template <typename CGAL_XX_YATP>
|
||||
struct graph_has_property<CGAL_GRAPH_TRAITS_INHERITANCE_CLASS_NAME, CGAL_XX_YATP> :
|
||||
public CGAL::graph_has_property<CGAL_GRAPH_TRAITS_INHERITANCE_BASE_CLASS_NAME, CGAL_XX_YATP>
|
||||
{};
|
||||
|
||||
|
||||
} // CGAL namespace
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <CGAL/Surface_mesh.h>
|
||||
#include <CGAL/boost/graph/graph_traits_Linear_cell_complex_for_combinatorial_map.h>
|
||||
#include <CGAL/convex_hull_3.h>
|
||||
#include <CGAL/Polygon_mesh_processing/manifoldness.h>
|
||||
|
||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
|
||||
|
||||
|
|
@ -75,5 +76,12 @@ int main()
|
|||
My_mesh_5 poly5;
|
||||
CGAL::convex_hull_3(points.begin(), points.end(), poly5);
|
||||
|
||||
|
||||
CGAL::Polygon_mesh_processing::non_manifold_vertices(poly1, CGAL::Emptyset_iterator());
|
||||
CGAL::Polygon_mesh_processing::non_manifold_vertices(poly2, CGAL::Emptyset_iterator());
|
||||
CGAL::Polygon_mesh_processing::non_manifold_vertices(poly3, CGAL::Emptyset_iterator());
|
||||
CGAL::Polygon_mesh_processing::non_manifold_vertices(poly4, CGAL::Emptyset_iterator());
|
||||
CGAL::Polygon_mesh_processing::non_manifold_vertices(poly5, CGAL::Emptyset_iterator());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue