Changes after Guillaume's review

This commit is contained in:
Andreas Fabri 2018-11-12 09:57:58 +01:00
parent 3f7300283e
commit f0e6802f74
2 changed files with 27 additions and 27 deletions

View File

@ -31,22 +31,22 @@ public:
/// and have a constructor with three parameters of a type constructibe from `double`. /// and have a constructor with three parameters of a type constructibe from `double`.
typedef unspecified_type Vector_3; typedef unspecified_type Vector_3;
/// Functor with operator: `Vector_3 operator()(Point_3 from, Point_3 to) const`, which constructs the vector from `from` to `to` . /// Functor with operator: `Vector_3 operator()(Point_3 from, Point_3 to) const`, which constructs the vector from `to - from` .
typedef unspecified_type Construct_vector_3; typedef unspecified_type Construct_vector_3;
/// Functor with operator: `Vector_3 operator()(Vector_3 v, Vector_3 w) const`, which constructs the vector `v+ w`. /// Functor with operator: `Vector_3 operator()(Vector_3 v, Vector_3 w) const`, which constructs the vector `v + w`.
typedef unspecified_type Construct_sum_of_vectors_3; typedef unspecified_type Construct_sum_of_vectors_3;
/// Functor with operator: `Vector_3 operator()(Vector_3 v, double d) const`, which constructs the vector `d* v`. /// Functor with operator: `Vector_3 operator()(Vector_3 v, double d) const`, which constructs the vector `d * v`.
typedef unspecified_type Construct_scaled_vector_3; typedef unspecified_type Construct_scaled_vector_3;
/// Functor with operator: `Vector_3 operator()(Vector_3 v, Vector_3 w) const`, which constructs the cross product of `v`and `w`. /// Functor with operator: `Vector_3 operator()(Vector_3 v, Vector_3 w) const`, which constructs the cross product of `v` and `w`.
typedef unspecified_type Construct_cross_product_vector_3; typedef unspecified_type Construct_cross_product_vector_3;
/// Functor with operator: `FT operator()(Vector_3 v, Vector_3 w) const, which constructs the scalar product of `v`and `w`.`. /// Functor with operator: `FT operator()(Vector_3 v, Vector_3 w) const, which constructs the scalar product of `v` and `w`.
typedef unspecified_type Compute_scalar_product_3; typedef unspecified_type Compute_scalar_product_3;
/// Functor with operator: `FT operator()(Point_3 p, Point_3 q) const` which computes the squared distance between `p`and `q`. /// Functor with operator: `FT operator()(Point_3 p, Point_3 q) const` which computes the squared distance between `p` and `q`.
typedef unspecified_type Compute_squared_distance_3; typedef unspecified_type Compute_squared_distance_3;

View File

@ -74,16 +74,16 @@ protected:
friend Surface_mesh_geodesic_distances_3_private_tests; friend Surface_mesh_geodesic_distances_3_private_tests;
#endif #endif
/// Polygon_mesh typedefs /// Polygon_mesh typedefs
typedef typename boost::graph_traits<TriangleMesh> graph_traits; typedef typename boost::graph_traits<TriangleMesh> graph_traits;
typedef typename graph_traits::vertex_descriptor vertex_descriptor; typedef typename graph_traits::vertex_descriptor vertex_descriptor;
typedef typename graph_traits::edge_descriptor edge_descriptor; typedef typename graph_traits::edge_descriptor edge_descriptor;
typedef typename graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename graph_traits::halfedge_descriptor halfedge_descriptor;
typedef typename graph_traits::face_descriptor face_descriptor; typedef typename graph_traits::face_descriptor face_descriptor;
typedef typename std::set<vertex_descriptor> Vertex_range; typedef typename std::set<vertex_descriptor> Vertex_const_range;
/// Geometric typedefs /// Geometric typedefs
typedef typename Traits::Point_3 Point_3; typedef typename Traits::Point_3 Point_3;
typedef typename Traits::FT FT; typedef typename Traits::FT FT;
typedef typename Traits::Vector_3 Vector_3; typedef typename Traits::Vector_3 Vector_3;
// Property map typedefs // Property map typedefs
typedef typename boost::property_traits<VertexPointMap>::reference VertexPointMap_reference; typedef typename boost::property_traits<VertexPointMap>::reference VertexPointMap_reference;
@ -177,13 +177,13 @@ public:
/** /**
* adds vertices in the `vrange` to the source set'. * adds vertices in the `vrange` to the source set'.
* \tparam VertexRange a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::%vertex_descriptor` * \tparam VertexConstRange a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::%vertex_descriptor`
*/ */
template <typename VertexRange> template <typename VertexConstRange>
void void
add_sources(const VertexRange& vrange) add_sources(const VertexConstRange& vrange)
{ {
typedef typename std::iterator_traits<typename VertexRange::const_iterator>::value_type value_type; typedef typename std::iterator_traits<typename VertexConstRange::const_iterator>::value_type value_type;
m_source_change_flag = true; m_source_change_flag = true;
BOOST_FOREACH(value_type vd, vrange){ BOOST_FOREACH(value_type vd, vrange){
m_sources.insert(v2v(vd)); m_sources.insert(v2v(vd));
@ -218,7 +218,7 @@ public:
* returns the set of source vertices. * returns the set of source vertices.
*/ */
const Vertex_range& const Vertex_const_range&
sources() const sources() const
{ {
return m_sources; return m_sources;
@ -835,10 +835,10 @@ public:
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
#ifndef DOXYGEN_RUNNING #ifndef DOXYGEN_RUNNING
/// Source vertex iterator type /// Source vertex iterator type
typedef typename Base_helper::type::Vertex_range Vertex_range; typedef typename Base_helper::type::Vertex_const_range Vertex_const_range;
#else #else
/// a model of `ConstRange` with an iterator that is model of `ForwardIterator` with `vertex_descriptor` as value type. /// a model of `ConstRange` with an iterator that is model of `ForwardIterator` with `vertex_descriptor` as value type.
typedef unspecified_type Vertex_range; typedef unspecified_type Vertex_const_range;
/// Vertex point map type derived from `VertexPointMap`. /// Vertex point map type derived from `VertexPointMap`.
typedef unspecified_type Vertex_point_map; typedef unspecified_type Vertex_point_map;
#endif #endif
@ -876,11 +876,11 @@ public:
/** /**
* adds the range of vertices to the source set. * adds the range of vertices to the source set.
* \tparam VertexRange a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::%vertex_descriptor` * \tparam VertexConstRange a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::%vertex_descriptor`
*/ */
template <typename VertexRange> template <typename VertexConstRange>
void void
add_sources(const VertexRange& vrange) add_sources(const VertexConstRange& vrange)
{ {
base().add_sources(vrange); base().add_sources(vrange);
} }
@ -916,7 +916,7 @@ public:
/** /**
* returns the source set. * returns the source set.
*/ */
const Vertex_range& const Vertex_const_range&
sources() const sources() const
{ {
return base().sources(); return base().sources();
@ -985,17 +985,17 @@ estimate_geodesic_distances(const TriangleMesh& tm,
/// It must have an internal vertex point property map with the value type being a 3D point from a cgal Kernel model /// It must have an internal vertex point property map with the value type being a 3D point from a cgal Kernel model
/// \tparam VertexDistanceMap a property map model of `WritablePropertyMap` /// \tparam VertexDistanceMap a property map model of `WritablePropertyMap`
/// with `boost::graph_traits<TriangleMesh>::%vertex_descriptor` as key type and `double` as value type. /// with `boost::graph_traits<TriangleMesh>::%vertex_descriptor` as key type and `double` as value type.
/// \tparam VertexRange a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::%vertex_descriptor` /// \tparam VertexConstRange a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::%vertex_descriptor`
/// \tparam Mode either the tag `Direct` or `Intrinsic_Delaunay`, which determines if the geodesic distance /// \tparam Mode either the tag `Direct` or `Intrinsic_Delaunay`, which determines if the geodesic distance
/// is computed directly on the mesh or if the intrinsic Delaunay triangulation is applied first. /// is computed directly on the mesh or if the intrinsic Delaunay triangulation is applied first.
/// The default is `Direct`. /// The default is `Direct`.
/// \warning The return type is `double` even when used with an exact kernel. /// \warning The return type is `double` even when used with an exact kernel.
/// \sa CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3 /// \sa CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3
template <typename TriangleMesh, typename VertexDistanceMap, typename VertexRange, typename Mode> template <typename TriangleMesh, typename VertexDistanceMap, typename VertexConstRange, typename Mode>
void void
estimate_geodesic_distances(const TriangleMesh& tm, estimate_geodesic_distances(const TriangleMesh& tm,
VertexDistanceMap vdm, VertexDistanceMap vdm,
const VertexRange& sources, const VertexConstRange& sources,
Mode) Mode)
{ {
CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3<TriangleMesh, Mode> hm(tm); CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3<TriangleMesh, Mode> hm(tm);