From 91902b9dda24325bc31d87cd9bdf945bfd1605d7 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Fri, 13 Mar 2015 09:01:50 +0100 Subject: [PATCH] improve manual --- Ridges_3/doc/Ridges_3/CGAL/Ridges.h | 118 +++++++++---------- Ridges_3/doc/Ridges_3/CGAL/Umbilics.h | 52 ++++---- Ridges_3/doc/Ridges_3/Ridges_3.txt | 4 +- Ridges_3/examples/Ridges_3/compute_normals.h | 1 + 4 files changed, 89 insertions(+), 86 deletions(-) diff --git a/Ridges_3/doc/Ridges_3/CGAL/Ridges.h b/Ridges_3/doc/Ridges_3/CGAL/Ridges.h index 587137f9c6d..944cf248247 100644 --- a/Ridges_3/doc/Ridges_3/CGAL/Ridges.h +++ b/Ridges_3/doc/Ridges_3/CGAL/Ridges.h @@ -4,7 +4,7 @@ namespace CGAL { \ingroup PkgRidges_3Enums The enum `Ridge_order` describes the order of differential quantities used to distinguish elliptic and hyperbolic ridges. Third or fourth -order quantities may be used as explained in Section \ref ridgemesh +order quantities may be used as explained in Section \ref Ridges_3Approximating of the User Manual. \sa `Ridge_approximation` @@ -26,12 +26,9 @@ enum Ridge_type { /*! \ingroup PkgRidges_3 -The function `compute_crest_ridges()` is a shortcut to the method of the same name -of the class `Ridge_approximation`. +The function `compute_crest_ridges()` is a shortcut to the +method `Ridge_approximation::compute_crest_ridges()`. -The operator `<<` is overloaded for this class and returns the -line type, strength, sharpness and coordinates of the points of the -polyline. */ @@ -40,14 +37,14 @@ template < class TriangleMesh, class VertexVectorMap, class OutputIterator> OutputIterator compute_crest_ridges(const TriangleMesh &tm, - VertexFTMap vertex2k1_pm, - VertexFTMap vertex2k2_pm, - VertexFTMap vertex2b0_pm, - VertexFTMap vertex2b3_pm, - VertexVectorMap vertex2d1_pm, - VertexVectorMap vertex2d2_pm, - VertexFTMap vertex2P1_pm, - VertexFTMap vertex2P2_pm, + VertexFTMap vertex_k1_pm, + VertexFTMap vertex_k2_pm, + VertexFTMap vertex_b0_pm, + VertexFTMap vertex_b3_pm, + VertexVectorMap vertex_d1_pm, + VertexVectorMap vertex_d2_pm, + VertexFTMap vertex_P1_pm, + VertexFTMap vertex_P2_pm, OutputIterator it, CGAL::Ridge_order order = CGAL::Ridge_order_3); @@ -58,8 +55,8 @@ namespace CGAL { /*! \ingroup PkgRidges_3 -The function `compute_max_ridges()` is a shortcut to the method of the same name -of the class `Ridge_approximation`. +The function `compute_max_ridges()` is a shortcut to the +method `Ridge_approximation::compute_max_ridges()`. */ template < class TriangleMesh, @@ -67,14 +64,14 @@ template < class TriangleMesh, class VertexVectorMap, class OutputIterator> OutputIterator compute_max_ridges(const TriangleMesh &tm, - VertexFTMap vertex2k1_pm, - VertexFTMap vertex2k2_pm, - VertexFTMap vertex2b0_pm, - VertexFTMap vertex2b3_pm, - VertexVectorMap vertex2d1_pm, - VertexVectorMap vertex2d2_pm, - VertexFTMap vertex2P1_pm, const - VertexFTMap vertex2P2_pm, + VertexFTMap vertex_k1_pm, + VertexFTMap vertex_k2_pm, + VertexFTMap vertex_b0_pm, + VertexFTMap vertex_b3_pm, + VertexVectorMap vertex_d1_pm, + VertexVectorMap vertex_d2_pm, + VertexFTMap vertex_P1_pm, const + VertexFTMap vertex_P2_pm, OutputIterator it, CGAL::Ridge_order order = CGAL::Ridge_order_3); @@ -85,8 +82,8 @@ namespace CGAL { /*! \ingroup PkgRidges_3 -The function `compute_min_ridges()` is a shortcut to the method of the same name -of the class `Ridge_approximation`. +The function `compute_min_ridges()` is a shortcut to +the method `Ridge_approximation::compute_min_ridges()`. */ @@ -95,14 +92,14 @@ class VertexFTMap, class VertexVectorMap, class OutputIterator> OutputIterator compute_min_ridges(const TriangleMesh &tm, - VertexFTMap vertex2k1_pm, - VertexFTMap vertex2k2_pm, - VertexFTMap vertex2b0_pm, - VertexFTMap vertex2b3_pm, - VertexVectorMap vertex2d1_pm, - VertexVectorMap vertex2d2_pm, - VertexFTMap vertex2P1_pm, - VertexFTMap vertex2P2_pm, + VertexFTMap vertex_k1_pm, + VertexFTMap vertex_k2_pm, + VertexFTMap vertex_b0_pm, + VertexFTMap vertex_b3_pm, + VertexVectorMap vertex_d1_pm, + VertexVectorMap vertex_d2_pm, + VertexFTMap vertex_P1_pm, + VertexFTMap vertex_P2_pm, OutputIterator it, CGAL::Ridge_order order = CGAL::Ridge_order_3); @@ -124,12 +121,12 @@ the surface associated to its vertices. Requirements (checked at compile time): - the types `TriangleMesh::Traits::FT` and - `boost::property_traits::value_type` must coincide; + `boost::property_traits::%value_type` must coincide; - the types `TriangleMesh::Traits::Vector_3` and - `boost::property_traits::value_type` must coincide; -- the types `boost::graph_traits::vertex_descriptor`, - `boost::property_traits::key_type` and - `boost::property_traits::key_type` must coincide; + `boost::property_traits::%value_type` must coincide; +- the types `boost::graph_traits::%vertex_descriptor`, + `boost::property_traits::%key_type` and + `boost::property_traits::%key_type` must coincide; \sa `Ridge_line` @@ -145,7 +142,7 @@ public: Order of differential quantities used to distinguish elliptic and hyperbolic ridges. Third (`Tag_3`) or fourth (`Tag_4`) order quantities may be used as -explained in Section \ref ridgemesh of the User Manual. +explained in Section \ref Ridges_3Approximating of the User Manual. */ enum Tag_order {Tag_3, Tag_4}; @@ -162,24 +159,24 @@ property maps shall be initialized with their default constructors. \param tm the triangle mesh -\param vertex2k1_pm -\param vertex2k2_pm -\param vertex2b0_pm -\param vertex2b3_pm -\param vertex2d1_pm -\param vertex2d2_pm -\param vertex2P1_pm -\param vertex2P2_pm +\param vertex_k1_pm differential quantities for principal curvatures +\param vertex_k2_pm differential quantities for principal curvatures +\param vertex_b0_pm third order extremalities +\param vertex_b3_pm third order extremalities +\param vertex_d1_pm principal directions of curvature +\param vertex_d2_pm principal directions of curvature +\param vertex_P1_pm fourth order quantities +\param vertex_P2_pm fourth order quantities */ Ridge_approximation(const TriangleMesh &tm, - VertexFTMap vertex2k1_pm, - VertexFTMap vertex2k2_pm, - VertexFTMap vertex2b0_pm, - VertexFTMap vertex2b3_pm, - VertexVectorMap vertex2d1_pm, - VertexVectorMap vertex2d2_pm, - VertexFTMap vertex2P1_pm, - VertexFTMap vertex2P2_pm); + VertexFTMap vertex_k1_pm, + VertexFTMap vertex_k2_pm, + VertexFTMap vertex_b0_pm, + VertexFTMap vertex_b3_pm, + VertexVectorMap vertex_d1_pm, + VertexVectorMap vertex_d2_pm, + VertexFTMap vertex_P1_pm, + VertexFTMap vertex_P2_pm); /*! Outputs ridges of types `MAX_ELLIPTIC_RIDGE` and `MAX_HYPERBOLIC_RIDGE`. @@ -278,15 +275,18 @@ FT sharpness() const; */ const std::list* line() const; + +/// @} + +}; /* end Ridge_line */ + /*! +\relates Ridge_line Writes the line type, strength, sharpness and coordinates of the points of the polyline to `os`. */ template< typename TriangleMesh > std::ostream& operator<<(std::ostream& os, const Ridge_line& r); -/// @} - -}; /* end Ridge_line */ } /* end namespace CGAL */ diff --git a/Ridges_3/doc/Ridges_3/CGAL/Umbilics.h b/Ridges_3/doc/Ridges_3/CGAL/Umbilics.h index 2a604b5dd89..4357f896920 100644 --- a/Ridges_3/doc/Ridges_3/CGAL/Umbilics.h +++ b/Ridges_3/doc/Ridges_3/CGAL/Umbilics.h @@ -11,8 +11,8 @@ enum Umbilic_type { NON_GENERIC_UMBILIC, ELLIPTIC_UMBILIC, HYPERBOLIC_UMBILIC }; /*! \ingroup PkgRidges_3 -The function `compute_umbilics()` is a shortcut to the method `compute()` of -the class `Umbilic_approximation`. +The function `compute_umbilics()` is a shortcut to the +method `Umbilic_approximation::compute()`. */ @@ -21,10 +21,10 @@ class VertexFTMap, class VertexVectorMap, class OutputIterator> OutputIterator compute_umbilics(const TriangleMesh &tm, -const VertexFTMap& vertex2k1_pm, -const VertexFTMap& vertex2k2_pm, -const VertexVectorMap& vertex2d1_pm, -const VertexVectorMap& vertex2d2_pm, +const VertexFTMap& vertex_k1_pm, +const VertexFTMap& vertex_k2_pm, +const VertexVectorMap& vertex_d1_pm, +const VertexVectorMap& vertex_d2_pm, OutputIterator it, double size); @@ -46,12 +46,12 @@ the differential properties of the surface associated to its vertices. Requirements (checked at compile time) : - the types `TriangleMesh::Traits::FT` and - `boost::property_traits::value_type` must coincide; + `boost::property_traits::%value_type` must coincide; - the types `TriangleMesh::Traits::Vector_3` and - `boost::property_traits::vertex_descriptor`, - `boost::property_traits::key_type` and - `boost::property_traits::key_type` must coincide; + `boost::property_traits::%vertex_descriptor`, + `boost::property_traits::%key_type` and + `boost::property_traits::%key_type` must coincide; \sa `Umbilic` \sa `TriangleMesh` @@ -80,16 +80,16 @@ typedef typename TriangleMesh::Traits::FT FT; Constructor. \param tm the triangle mesh -\param vertex2k1_pm -\param vertex2k2_pm -\param vertex2d1_pm -\param vertex2d2_pm +\param vertex_k1_pm differential quantities for principal curvatures +\param vertex_k2_pm differential quantities for principal curvatures +\param vertex_d1_pm principal directions of curvature +\param vertex_d2_pm principal directions of curvature */ Umbilic_approximation(const TriangleMesh& tm, - VertexFTMap vertex2k1_pm, - VertexFTMap vertex2k2_pm, - VertexVectorMap vertex2d1_pm, - VertexVectorMap vertex2d2_pm); + VertexFTMap vertex_k1_pm, + VertexFTMap vertex_k2_pm, + VertexVectorMap vertex_d1_pm, + VertexVectorMap vertex_d2_pm); /// @} @@ -117,11 +117,6 @@ namespace CGAL { The class `Umbilic` stores the description of an umbilic. -\cgalHeading{Operations} - -The insert operator `<<` is overloaded for `Umbilic`, it -gives the location (3d coordinates of the vertex) and the type. - \sa `Umbilic_approximation` */ @@ -165,4 +160,13 @@ const std::list& contour_list()const; /// @} }; /* end Umbilic */ + +/*! +\relates Umbilic + +Writes the location and the umbilic type to `os`. +*/ +template< typename TriangleMesh > +std::ostream& operator<<(std::ostream& os, const Umbilic& u); + } /* end namespace CGAL */ diff --git a/Ridges_3/doc/Ridges_3/Ridges_3.txt b/Ridges_3/doc/Ridges_3/Ridges_3.txt index 526e0ec5b6d..7bb4ccc97f0 100644 --- a/Ridges_3/doc/Ridges_3/Ridges_3.txt +++ b/Ridges_3/doc/Ridges_3/Ridges_3.txt @@ -173,8 +173,6 @@ Elliptic and hyperbolic umbilics. \section Ridges_3Approximating Approximating Ridges on Triangulated Surface Meshes -\anchor ridgemesh - Our method aims at reporting ridges as polygonal lines living on the mesh. It assumes differential quantities are available for each vertex of the mesh (principal curvatures and directions together with third @@ -335,7 +333,7 @@ Property maps enables the user to store scalars and vectors associated to a vertex either internally in extended vertices or externally with a `std::map` combined with -a `boost::associative_property_map`. +a `boost::associative_property_map`. Output of ridges or umbilics are provided via output iterators. diff --git a/Ridges_3/examples/Ridges_3/compute_normals.h b/Ridges_3/examples/Ridges_3/compute_normals.h index 23d152c5781..ca32c6f82e7 100644 --- a/Ridges_3/examples/Ridges_3/compute_normals.h +++ b/Ridges_3/examples/Ridges_3/compute_normals.h @@ -60,4 +60,5 @@ void compute_facets_normals(const TriangleMesh& tm, } + #endif