From c843d165c9903aa6feb50e4e8b000c7f1b941dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Thu, 8 Aug 2013 19:07:24 +0200 Subject: [PATCH] update refman --- .../DeformationClosestRotationTraits_3.h | 10 ++--- Surface_modeling/include/CGAL/Deform_mesh.h | 38 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/Surface_modeling/doc/Surface_modeling/Concepts/DeformationClosestRotationTraits_3.h b/Surface_modeling/doc/Surface_modeling/Concepts/DeformationClosestRotationTraits_3.h index b666733421b..777fa0ca830 100644 --- a/Surface_modeling/doc/Surface_modeling/Concepts/DeformationClosestRotationTraits_3.h +++ b/Surface_modeling/doc/Surface_modeling/Concepts/DeformationClosestRotationTraits_3.h @@ -14,9 +14,9 @@ class DeformationClosestRotationTraits_3{ public: /// \name Types /// @{ - /// 3x3 matrix type with copy constructor and assignment operator + /// 3x3 matrix type having a copy constructor and an assignment operator typedef Hidden_type Matrix; - /// 3x1 vector type with copy constructor + /// 3D vector type having a copy constructor typedef Hidden_type Vector; /// @} @@ -44,18 +44,16 @@ public: /// Returns an identity matrix Matrix identity_matrix(); - /// Returns a zero initialized matrix + /// Returns a matrix initialized with zero Matrix zero_matrix(); - /// Returns a vector initialized with parameters + /// Returns the vector (x,y,z) Vector vector(double x, double y, double z); /// Returns `i`th coefficient of a vector double vector_coeff(const Vector& v, int i); /// Computes a rotation matrix close to `m` and places it into `R` - /// \note It is expecting to provide the closest rotation in Frobenius norm, however not returning the closest rotation does not lead to a crash or non-convergence. - /// For example in the context of the deformation, always returning the identity matrix independently of `m` will result in a naive Laplacian deformation. void compute_close_rotation(const Matrix& m, Matrix& R); /// @} diff --git a/Surface_modeling/include/CGAL/Deform_mesh.h b/Surface_modeling/include/CGAL/Deform_mesh.h index c0cd2c6a6d1..b95a4a3b8bc 100644 --- a/Surface_modeling/include/CGAL/Deform_mesh.h +++ b/Surface_modeling/include/CGAL/Deform_mesh.h @@ -105,7 +105,7 @@ class Deform_mesh //Typedefs public: - /// \name Template parameter types + /// \name Template parameters /// @{ // typedefed template parameters, main reason is doxygen creates autolink to typedefs but not template parameters typedef HG Halfedge_graph; /**< model of HalfedgeGraph */ @@ -152,9 +152,9 @@ public: #else CR // no parameter provided, and Eigen is not enabled: so don't compile! #endif - >::type CR_helper; + >::type Closest_rotation_helper; #else - typedef CR CR_helper; /**< model of DeformationClosestRotationTraits_3 */ + typedef CR Closest_rotation_helper; /**< model of DeformationClosestRotationTraits_3 */ #endif // vertex point pmap @@ -184,8 +184,8 @@ private: typedef std::list Handle_container; typedef std::list Handle_group_container; - typedef typename CR_helper::Matrix CR_matrix; - typedef typename CR_helper::Vector CR_vector; + typedef typename Closest_rotation_helper::Matrix CR_matrix; + typedef typename Closest_rotation_helper::Vector CR_vector; public: /** The type used as the representative of a group of handles*/ @@ -250,7 +250,7 @@ private: // Public methods public: -/// \name Preprocess Section +/// \name Preprocessing /// @{ /// \cond SKIP_FROM_MANUAL @@ -325,7 +325,7 @@ private: public: /** - * Puts the object in the same state as after the creation (except iterations and tolerance). + * Puts `*this` in the same state as after the creation (except iterations and tolerance). */ void reset() { @@ -567,9 +567,9 @@ public: assemble_laplacian_and_factorize(); return last_preprocess_successful; // which is set by assemble_laplacian_and_factorize() } -/// @} Preprocess Section +/// @} Preprocessing -/// \name Deform Section +/// \name Deformation /// @{ /** * Sets the transformation to apply to all the vertices in a group of handles to be a translation by vector `t`. @@ -695,7 +695,7 @@ public: // copy solution to target mesh assign_solution(); } -/// @} Deform Section +/// @} Deformation /// \name Utilities /// @{ @@ -788,7 +788,7 @@ public: } // also set rotation matrix to identity - std::fill(rot_mtr.begin(), rot_mtr.end(), CR_helper().identity_matrix()); + std::fill(rot_mtr.begin(), rot_mtr.end(), Closest_rotation_helper().identity_matrix()); need_preprocess_both(); // now we need reprocess } @@ -886,7 +886,7 @@ private: rot_mtr[v_ros_id] = old_rot_mtr[ old_ros_id_map[v_id] ]; } else { - rot_mtr[v_ros_id] = CR_helper().identity_matrix(); + rot_mtr[v_ros_id] = Closest_rotation_helper().identity_matrix(); } } @@ -1053,7 +1053,7 @@ private: } void optimal_rotations_arap() { - CR_helper cr_helper; + Closest_rotation_helper cr_helper; CR_matrix cov = cr_helper.zero_matrix(); // only accumulate ros vertices @@ -1082,7 +1082,7 @@ private: } void optimal_rotations_spokes_and_rims() { - CR_helper cr_helper; + Closest_rotation_helper cr_helper; CR_matrix cov =cr_helper.zero_matrix(); // only accumulate ros vertices @@ -1170,7 +1170,7 @@ private: typename Sparse_linear_solver::Vector Y(ros.size()), By(ros.size()); typename Sparse_linear_solver::Vector Z(ros.size()), Bz(ros.size()); - CR_helper cr_helper; + Closest_rotation_helper cr_helper; // assemble right columns of linear system for ( std::size_t k = 0; k < ros.size(); k++ ) @@ -1232,7 +1232,7 @@ private: typename Sparse_linear_solver::Vector Y(ros.size()), By(ros.size()); typename Sparse_linear_solver::Vector Z(ros.size()), Bz(ros.size()); - CR_helper cr_helper; + Closest_rotation_helper cr_helper; // assemble right columns of linear system for ( std::size_t k = 0; k < ros.size(); k++ ) @@ -1322,7 +1322,7 @@ private: } double energy_arap() const { - CR_helper cr_helper; + Closest_rotation_helper cr_helper; double sum_of_energy = 0; // only accumulate ros vertices @@ -1350,7 +1350,7 @@ private: } double energy_spokes_and_rims() const { - CR_helper cr_helper; + Closest_rotation_helper cr_helper; double sum_of_energy = 0; // only accumulate ros vertices @@ -1393,7 +1393,7 @@ private: /// p1 - p2, return CR_vector CR_vector sub_to_CR_vector(const Point& p1, const Point& p2) const { - return CR_helper().vector(p1.x() - p2.x(), p1.y() - p2.y(), p1.z() - p2.z()); + return Closest_rotation_helper().vector(p1.x() - p2.x(), p1.y() - p2.y(), p1.z() - p2.z()); } template