diff --git a/Surface_mesh_parameterization/doc/concepts/Matrix.h b/Surface_mesh_parameterization/doc/concepts/Matrix.h index 03597f398f2..7a46f271261 100644 --- a/Surface_mesh_parameterization/doc/concepts/Matrix.h +++ b/Surface_mesh_parameterization/doc/concepts/Matrix.h @@ -50,14 +50,14 @@ public: /// Read access to a matrix coefficient. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 0 <= row < row_dimension(). /// - 0 <= column < column_dimension(). NT get_coef (int row, int column) const; /// Write access to a matrix coefficient: a_ij <- a_ij + val. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 0 <= row < row_dimension(). /// - 0 <= column < column_dimension(). void add_coef(int row, int column, NT value); @@ -68,7 +68,7 @@ public: /// - Caller can optimize this call by setting 'new_coef' to true /// if the coefficient does not already exist in the matrix. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 0 <= i < row_dimension(). /// - 0 <= j < column_dimension(). void set_coef(int row, int column, NT value, bool new_coef = false); diff --git a/Surface_mesh_parameterization/doc/concepts/ParameterizerTraits_3.h b/Surface_mesh_parameterization/doc/concepts/ParameterizerTraits_3.h index 9dbc6b4bbde..6ce9891d121 100644 --- a/Surface_mesh_parameterization/doc/concepts/ParameterizerTraits_3.h +++ b/Surface_mesh_parameterization/doc/concepts/ParameterizerTraits_3.h @@ -54,7 +54,7 @@ public: /// The mapping is linear by pieces (linear in each triangle). /// The result is the (u,v) pair image of each vertex of the 3D surface. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 'mesh' must be a surface with one connected component and no hole. /// - 'mesh' must be a triangular mesh. Error_code parameterize (Adaptor& mesh); diff --git a/Surface_mesh_parameterization/doc/concepts/SparseLinearAlgebraTraits_d.h b/Surface_mesh_parameterization/doc/concepts/SparseLinearAlgebraTraits_d.h index d97b6069f7d..7e90fecfe89 100644 --- a/Surface_mesh_parameterization/doc/concepts/SparseLinearAlgebraTraits_d.h +++ b/Surface_mesh_parameterization/doc/concepts/SparseLinearAlgebraTraits_d.h @@ -37,7 +37,7 @@ public: /// Solve the sparse linear system "A*X = B". /// Return true on success. The solution is then (1/D) * X. /// - /// Preconditions: + /// @commentheading Preconditions: /// - A.row_dimension() == B.dimension(). /// - A.column_dimension() == X.dimension(). bool linear_solver (const Matrix& A, const Vector& B, Vector& X, NT& D); diff --git a/Surface_mesh_parameterization/doc/concepts/Vector.h b/Surface_mesh_parameterization/doc/concepts/Vector.h index dd24d61b0f6..d91d04b7e01 100644 --- a/Surface_mesh_parameterization/doc/concepts/Vector.h +++ b/Surface_mesh_parameterization/doc/concepts/Vector.h @@ -51,7 +51,7 @@ public: /// Read/write access to a vector coefficient. /// - /// Precondition: 0 <= row < dimension(). + /// @commentheading Precondition: 0 <= row < dimension(). NT operator[] (int row) const; NT& operator[] (int row); }; diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Barycentric_mapping_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Barycentric_mapping_parameterizer_3.tex index fd7f0470d23..fd0f080991c 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Barycentric_mapping_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Barycentric_mapping_parameterizer_3.tex @@ -83,11 +83,9 @@ class \ccc{BorderParameterizer_3} = \ccc{Circular_border_arc_length_parameterize class \ccc{SparseLinearAlgebraTraits_d} = \ccc{OpenNL::DefaultLinearSolverTraits}$>$ \\ class \ccc{Barycentric_mapping_parameterizer_3}; +\ccCommentHeading{Parameters} \begin{description} -\item[Parameters:] -\begin{description} -\item[\ccc{ParameterizationMesh_3}]3D surface mesh. \item[\ccc{BorderParameterizer_3}]Strategy to parameterize the surface border. \item[\ccc{SparseLinearAlgebraTraits_d}]Traits class to solve a sparse linear system. Note: the system is NOT symmetric because \ccc{Fixed_border_parameterizer_3} does not remove (yet) border vertices from the system. \end{description} -\end{description} +\item \ccc{ParameterizationMesh_3}: 3D surface mesh. \item \ccc{BorderParameterizer_3}: Strategy to parameterize the surface border. \item \ccc{SparseLinearAlgebraTraits_d}: Traits class to solve a sparse linear system. Note: the system is NOT symmetric because \ccc{Fixed_border_parameterizer_3} does not remove (yet) border vertices from the system. \end{description} %END-AUTO(\ccParameters) @@ -101,14 +99,11 @@ class \ccc{Barycentric_mapping_parameterizer_3}; \ccConstructor{Barycentric_mapping_parameterizer_3(Border_param border_param = Border_param(), Sparse_LA sparse_la = Sparse_LA());} { Constructor. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{border_param}: Object that maps the surface's border to 2D space. \item \ccc{sparse_la}: Traits object to access a sparse linear system. \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[\ccc{border_param}]Object that maps the surface's border to 2D space. \item[\ccc{sparse_la}]Traits object to access a sparse linear system. \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_arc_length_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_arc_length_parameterizer_3.tex index 8e7868d4a6a..0533d2a1bc7 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_arc_length_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_arc_length_parameterizer_3.tex @@ -82,13 +82,6 @@ class \ccc{Circular_border_arc_length_parameterizer_3}; %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{bp} %% variable name for \ccMethod below diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_uniform_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_uniform_parameterizer_3.tex index b781c80aa03..07598c6c2cd 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_uniform_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Circular_border_uniform_parameterizer_3.tex @@ -79,13 +79,6 @@ class \ccc{Circular_border_uniform_parameterizer_3}; %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{bp} %% choose variable name for \ccMethod diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_authalic_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_authalic_parameterizer_3.tex index 62568576fee..17f73526e91 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_authalic_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_authalic_parameterizer_3.tex @@ -88,13 +88,6 @@ class \ccc{Discrete_authalic_parameterizer_3}; %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{param} %% variable name used by \ccMethod below @@ -104,14 +97,11 @@ class \ccc{Discrete_authalic_parameterizer_3}; \ccConstructor{Discrete_authalic_parameterizer_3(Border_param border_param = Border_param(), Sparse_LA sparse_la = Sparse_LA());} { Constructor. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{border_param}: Object that maps the surface's border to 2D space. \item \ccc{sparse_la}: Traits object to access a sparse linear system. \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[\ccc{border_param}]Object that maps the surface's border to 2D space. \item[\ccc{sparse_la}]Traits object to access a sparse linear system. \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_conformal_map_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_conformal_map_parameterizer_3.tex index 7787ba5bebd..9bfb9034af8 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_conformal_map_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Discrete_conformal_map_parameterizer_3.tex @@ -85,22 +85,13 @@ class \ccc{BorderParameterizer_3} = \ccc{Circular_border_arc_length_parameterize class \ccc{SparseLinearAlgebraTraits_d} = \ccc{OpenNL::DefaultLinearSolverTraits}$>$ \\ class \ccc{Discrete_conformal_map_parameterizer_3}; +\ccCommentHeading{Parameters} \begin{description} -\item[Parameters:] -\begin{description} -\item[\ccc{ParameterizationMesh_3}]3D surface mesh. \item[\ccc{BorderParameterizer_3}]Strategy to parameterize the surface border. \item[\ccc{SparseLinearAlgebraTraits_d}]Traits class to solve a sparse linear system. Note: the system is NOT symmetric because \ccc{Fixed_border_parameterizer_3} does not remove (yet) border vertices from the system. \end{description} -\end{description} +\item \ccc{ParameterizationMesh_3}: 3D surface mesh. \item \ccc{BorderParameterizer_3}: Strategy to parameterize the surface border. \item \ccc{SparseLinearAlgebraTraits_d}: Traits class to solve a sparse linear system. Note: the system is NOT symmetric because \ccc{Fixed_border_parameterizer_3} does not remove (yet) border vertices from the system. \end{description} %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{param} %% choose variable name for \ccMethod @@ -110,14 +101,11 @@ class \ccc{Discrete_conformal_map_parameterizer_3}; \ccConstructor{Discrete_conformal_map_parameterizer_3(Border_param border_param = Border_param(), Sparse_LA sparse_la = Sparse_LA());} { Constructor. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{border_param}: Object that maps the surface's border to 2D space. \item \ccc{sparse_la}: Traits object to access a sparse linear system. \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[\ccc{border_param}]Object that maps the surface's border to 2D space. \item[\ccc{sparse_la}]Traits object to access a sparse linear system. \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Fixed_border_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Fixed_border_parameterizer_3.tex index 43e0923886c..89299251799 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Fixed_border_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Fixed_border_parameterizer_3.tex @@ -114,14 +114,11 @@ Export \ccc{SparseLinearAlgebraTraits_d} template parameter. \ccConstructor{Fixed_border_parameterizer_3(Border_param border_param = Border_param(), Sparse_LA sparse_la = Sparse_LA());} { Constructor. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{border_param}: Object that maps the surface's border to 2D space \item \ccc{sparse_la}: Traits object to access a sparse linear system \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[\ccc{border_param}]Object that maps the surface's border to 2D space \item[\ccc{sparse_la}]Traits object to access a sparse linear system \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) @@ -135,7 +132,7 @@ Constructor. { [virtual] \\ Compute a one-to-one mapping from a triangular 3D surface \ccc{mesh} to a piece of the 2D space. The mapping is linear by pieces (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item \ccc{mesh} must be a surface with one connected component.\item \ccc{mesh} must be a triangular mesh.\item the mesh border must be mapped onto a convex polygon. \end{itemize} } \ccGlue @@ -150,7 +147,7 @@ Check parameterize() preconditions:\begin{itemize} { [protected] \\ Initialize A, Bu and Bv after border parameterization. Fill the border vertices' lines in both linear systems: {\em u = constant} and {\em v = constant}. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item vertices must be indexed.\item A, Bu and Bv must be allocated.\item border vertices must be parameterized. \end{itemize} } \ccGlue @@ -165,7 +162,7 @@ Compute \ccc{w_ij} = (i, j) coefficient of matrix A for j neighbor vertex of i. [protected, virtual] \\ Compute the line i of matrix A for i inner vertex:\begin{itemize} \item call \ccc{compute_w_ij}() to compute the A coefficient \ccc{w_ij} for each neighbor \ccc{v_j}.\item compute \ccc{w_ii} = - sum of \ccc{w_ijs}.\end{itemize} -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item vertices must be indexed.\item vertex i musn't be already parameterized.\item line i of A must contain only zeros. \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/LSCM_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/LSCM_parameterizer_3.tex index 14a601e5067..85e7621a1fc 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/LSCM_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/LSCM_parameterizer_3.tex @@ -113,14 +113,11 @@ Export \ccc{SparseLinearAlgebraTraits_d} template parameter. \ccConstructor{LSCM_parameterizer_3(Border_param border_param = Border_param(), Sparse_LA sparse_la = Sparse_LA());} { Constructor. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{border_param}: Object that maps the surface's border to 2D space \item \ccc{sparse_la}: Traits object to access a sparse linear system \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[\ccc{border_param}]Object that maps the surface's border to 2D space \item[\ccc{sparse_la}]Traits object to access a sparse linear system \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) @@ -134,7 +131,7 @@ Constructor. { [virtual] \\ Compute a one-to-one mapping from a triangular 3D surface \ccc{mesh} to a piece of the 2D space. The mapping is linear by pieces (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item \ccc{mesh} must be a surface with one connected component.\item \ccc{mesh} must be a triangular mesh. \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Matrix.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Matrix.tex index b9a9961ad7e..8a4439fc3cc 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Matrix.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Matrix.tex @@ -89,14 +89,14 @@ Return the matrix number of columns. \ccMethod{NT get_coef(int row, int column) const;} { Read access to a matrix coefficient. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item 0 $<$= row $<$ \ccc{row_dimension}().\item 0 $<$= column $<$ \ccc{column_dimension}(). \end{itemize} } \ccGlue \ccMethod{void add_coef(int row, int column, NT value);} { Write access to a matrix coefficient: \ccc{a_ij} $<$- \ccc{a_ij} + val. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item 0 $<$= row $<$ \ccc{row_dimension}().\item 0 $<$= column $<$ \ccc{column_dimension}(). \end{itemize} } \ccGlue @@ -105,7 +105,7 @@ Preconditions:\begin{itemize} Write access to a matrix coefficient: \ccc{a_ij} $<$- val. Optimization:\begin{itemize} \item Caller can optimize this call by setting \ccc{new_coef} to true if the coefficient does not already exist in the matrix.\end{itemize} -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item 0 $<$= i $<$ \ccc{row_dimension}().\item 0 $<$= j $<$ \ccc{column_dimension}(). \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Mean_value_coordinates_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Mean_value_coordinates_parameterizer_3.tex index 1e44c5aa509..242273faca0 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Mean_value_coordinates_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Mean_value_coordinates_parameterizer_3.tex @@ -88,13 +88,6 @@ class \ccc{Mean_value_coordinates_parameterizer_3}; %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{param} %% variable name used by \ccMethod below @@ -104,14 +97,11 @@ class \ccc{Mean_value_coordinates_parameterizer_3}; \ccConstructor{Mean_value_coordinates_parameterizer_3(Border_param border_param = Border_param(), Sparse_LA sparse_la = Sparse_LA());} { Constructor. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{border_param}: Object that maps the surface's border to 2D space. \item \ccc{sparse_la}: Traits object to access a sparse linear system. \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[\ccc{border_param}]Object that maps the surface's border to 2D space. \item[\ccc{sparse_la}]Traits object to access a sparse linear system. \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizationPatchableMesh_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizationPatchableMesh_3.tex index 83a50a5f054..2e3bc7fbce6 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizationPatchableMesh_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizationPatchableMesh_3.tex @@ -59,13 +59,6 @@ In addition to the requirements described in the concept \ccc{ParameterizationMe \ccc{ParameterizationPatchableMesh_3} provides the following: -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{mesh} %% define variable name used by \ccMethod below diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterization_mesh_patch_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterization_mesh_patch_3.tex index dc9f38d43dc..129caeb1e3e 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterization_mesh_patch_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterization_mesh_patch_3.tex @@ -68,11 +68,8 @@ template$<$ \\ class \ccc{ParameterizationPatchableMesh_3}$>$ \\ class \ccc{Parameterization_mesh_patch_3}; -\begin{description} -\item[Parameters:] -\begin{description} -\item[\ccc{ParameterizationPatchableMesh_3}]3D surface mesh. \end{description} -\end{description} +\ccCommentHeading{Parameters} +\ccc{ParameterizationPatchableMesh_3}: 3D surface mesh. %END-AUTO(\ccParameters) @@ -221,11 +218,11 @@ The decorated mesh. % The section below is automatically generated. Do not edit! %START-AUTO(\ccCreation) -\ccConstructor{templateParameterization_mesh_patch_3(Adaptor& mesh, InputIterator first_seam_vertex, InputIterator end_seam_vertex);} +\ccConstructor{template Parameterization_mesh_patch_3(Adaptor& mesh, InputIterator first_seam_vertex, InputIterator end_seam_vertex);} { Create a Decorator for an existing \ccc{ParameterizationPatchableMesh_3} mesh. The input mesh can be of any genus, but it has to come with a {\em seam} that describes the border of a topological disc. This border may be an actual border of the mesh or a virtual border. -Preconditions:\begin{itemize} -\item \ccc{first_seam_vertex} -$>$ \ccc{end_seam_vertex} defines the outer seam, i.e. \ccc{Parameterization_mesh_patch_3} will export the {\em right} of the seam.\item The {\em seam} is given as a container of \ccc{Adaptor::Vertex_handle} elements.\item The {\em seam} is implicitely a loop. The first vertex should $\ast$not$\ast$ be duplicated at the end. \end{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} +\item \ccc{first_seam_vertex} -$>$ \ccc{end_seam_vertex} defines the outer seam, i.e. \ccc{Parameterization_mesh_patch_3} will export the {\em right} of the seam.\item The {\em seam} is given as a container of \ccc{Adaptor::Vertex_handle} elements.\item The {\em seam} is implicitely a loop. The first vertex should {\bf not} be duplicated at the end. \end{itemize} } \ccGlue @@ -243,11 +240,9 @@ non-mutable counterpart methods, i.e. \ccc{const}, returning a \ccc{const_handle \ccMethod{Adaptor& get_decorated_mesh();} { +\ccCommentHeading{Returns} the decorated mesh. } \ccGlue -\begin{description} -\item[Returns:]the decorated mesh. \end{description} -\ccGlue \ccMethod{const Adaptor& get_decorated_mesh() const;} { } @@ -308,16 +303,11 @@ Get iterator over past-the-end vertex of mesh's main border (aka {\em seam}). \ccGlue \ccMethod{std::list get_border(Vertex_handle seed_vertex);} { +\ccCommentHeading{Returns} the border containing \ccc{seed_vertex} (or an empty list if not found). +\ccCommentHeading{Parameters} +\ccc{seed_vertex}: a border vertex. } \ccGlue -\begin{description} -\item[Returns:]the border containing \ccc{seed_vertex} (or an empty list if not found). \end{description} -\begin{description} -\item[Parameters:] -\begin{description} -\item[\ccc{seed_vertex}]a border vertex. \end{description} -\end{description} -\ccGlue \ccMethod{Facet_iterator mesh_facets_begin();} { Get iterator over first facet of mesh. diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizerTraits_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizerTraits_3.tex index 1cda8ca353e..75097306c58 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizerTraits_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/ParameterizerTraits_3.tex @@ -57,13 +57,10 @@ Export the type of mesh to parameterize. % The section below is automatically generated. Do not edit! %START-AUTO(\ccConstants) -\ccEnum{enum Error_code { OK, ERROR_EMPTY_MESH, ERROR_NON_TRIANGULAR_MESH, ERROR_NO_TOPOLOGICAL_DISC, ERROR_BORDER_TOO_SHORT, ERROR_NON_CONVEX_BORDER, ERROR_CANNOT_SOLVE_LINEAR_SYSTEM, ERROR_NO_1_TO_1_MAPPING, ERROR_OUT_OF_MEMORY, ERROR_WRONG_PARAMETER };} +\ccEnum{enum Error_code { OK, ERROR_EMPTY_MESH, ERROR_NON_TRIANGULAR_MESH, ERROR_NO_TOPOLOGICAL_DISC, ERROR_BORDER_TOO_SHORT, ERROR_NON_CONVEX_BORDER, ERROR_CANNOT_SOLVE_LINEAR_SYSTEM, ERROR_NO_1_TO_1_MAPPING, ERROR_OUT_OF_MEMORY, ERROR_WRONG_PARAMETER };} { List of errors detected by this package. -} -\ccGlue -\begin{description} -\item[Enumeration values: ] +\ccCommentHeading{Enumeration values} \begin{description} \item[OK ]Success. \item[\ccc{ERROR_EMPTY_MESH} @@ -76,7 +73,7 @@ List of errors detected by this package. ]Parameterization failed: no one-to-one mapping. \item[\ccc{ERROR_OUT_OF_MEMORY} ]Not enough memory. \item[\ccc{ERROR_WRONG_PARAMETER} ]A method received an unexpected parameter. \end{description} -\end{description} +} \ccGlue %END-AUTO(\ccConstants) @@ -100,7 +97,7 @@ Construction and destruction are undefined. \ccMethod{Error_code parameterize(Adaptor& mesh);} { Compute a one-to-one mapping from a triangular 3D surface \ccc{mesh} to a piece of the 2D space. The mapping is linear by pieces (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item \ccc{mesh} must be a surface with one connected component and no hole.\item \ccc{mesh} must be a triangular mesh. \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterizer_traits_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterizer_traits_3.tex index c8bed32bf42..74572103533 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterizer_traits_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Parameterizer_traits_3.tex @@ -196,13 +196,10 @@ Export \ccc{ParameterizationMesh_3} template parameter. % The section below is automatically generated. Do not edit! %START-AUTO(\ccConstants) -\ccEnum{enum Error_code { OK, ERROR_EMPTY_MESH, ERROR_NON_TRIANGULAR_MESH, ERROR_NO_TOPOLOGICAL_DISC, ERROR_BORDER_TOO_SHORT, ERROR_NON_CONVEX_BORDER, ERROR_CANNOT_SOLVE_LINEAR_SYSTEM, ERROR_NO_1_TO_1_MAPPING, ERROR_OUT_OF_MEMORY, ERROR_WRONG_PARAMETER };} +\ccEnum{enum Error_code { OK, ERROR_EMPTY_MESH, ERROR_NON_TRIANGULAR_MESH, ERROR_NO_TOPOLOGICAL_DISC, ERROR_BORDER_TOO_SHORT, ERROR_NON_CONVEX_BORDER, ERROR_CANNOT_SOLVE_LINEAR_SYSTEM, ERROR_NO_1_TO_1_MAPPING, ERROR_OUT_OF_MEMORY, ERROR_WRONG_PARAMETER };} { List of errors detected by this package. -} -\ccGlue -\begin{description} -\item[Enumeration values: ] +\ccCommentHeading{Enumeration values} \begin{description} \item[OK ]Success. \item[\ccc{ERROR_EMPTY_MESH} @@ -215,7 +212,7 @@ List of errors detected by this package. ]Parameterization failed: no one-to-one mapping. \item[\ccc{ERROR_OUT_OF_MEMORY} ]Not enough memory. \item[\ccc{ERROR_WRONG_PARAMETER} ]A method received an unexpected parameter. \end{description} -\end{description} +} \ccGlue %END-AUTO(\ccConstants) @@ -238,7 +235,7 @@ List of errors detected by this package. { [pure virtual] \\ Compute a one-to-one mapping from a 3D surface \ccc{mesh} to a piece of the 2D space. The mapping is linear by pieces (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item \ccc{mesh} must be a surface with one connected component.\item \ccc{mesh} must be a triangular mesh. \end{itemize} } \ccGlue @@ -246,16 +243,11 @@ Preconditions:\begin{itemize} { [static] \\ Get message (in English) corresponding to an error code +\ccCommentHeading{Parameters} +\ccc{error_code}: The code returned by parameterize() +\ccCommentHeading{Returns} The string describing the error code } \ccGlue -\begin{description} -\item[Parameters:] -\begin{description} -\item[\ccc{error_code}]The code returned by parameterize() \end{description} -\end{description} -\begin{description} -\item[Returns:]The string describing the error code \end{description} -\ccGlue %END-AUTO(\ccOperations) diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/SparseLinearAlgebraTraits_d.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/SparseLinearAlgebraTraits_d.tex index 13c9610d289..63b7ddd14f0 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/SparseLinearAlgebraTraits_d.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/SparseLinearAlgebraTraits_d.tex @@ -82,7 +82,7 @@ Default constructor. \ccMethod{bool linear_solver(const Matrix& A, const Vector& B, Vector& X, NT& D);} { Solve the sparse linear system {\em A$\ast$X = B}. Return true on success. The solution is then (1/D) $\ast$ X. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item A.\ccc{row_dimension}() == B.dimension().\item A.\ccc{column_dimension}() == X.dimension(). \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_arc_length_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_arc_length_parameterizer_3.tex index ffc4061b43d..39f05cf9537 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_arc_length_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_arc_length_parameterizer_3.tex @@ -12,7 +12,7 @@ % +------------------------------------------------------------------------+ -\begin{ccRefClass}{Square_border_arc_length_parameterizer_3} +\begin{ccRefClass}{Square_border_arc_length_parameterizer_3} %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[class]{} %% add further index entries @@ -81,13 +81,6 @@ class \ccc{Square_border_arc_length_parameterizer_3}; %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{bp} %% variable name for \ccMethod diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_uniform_parameterizer_3.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_uniform_parameterizer_3.tex index 9305d79f43b..ba54e359303 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_uniform_parameterizer_3.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Square_border_uniform_parameterizer_3.tex @@ -81,13 +81,6 @@ class \ccc{Square_border_uniform_parameterizer_3}; %END-AUTO(\ccParameters) -\ccTypes - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccTypes) -%END-AUTO(\ccTypes) - - \ccCreation \ccCreationVariable{bp} %% variable name for \ccMethod diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_matrix.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_matrix.tex index 002e7a23cd6..181f1635296 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_matrix.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_matrix.tex @@ -58,6 +58,9 @@ template$<$ \\ class T$>$ \\ struct \ccc{Taucs_matrix}; +\ccCommentHeading{Parameters} +\ccc{T}: Number type. Tested with T = \ccc{taucs_single} or \ccc{taucs_double}. May also work with T = \ccc{taucs_dcomplex} and \ccc{taucs_scomplex}. + %END-AUTO(\ccParameters) @@ -83,25 +86,20 @@ struct \ccc{Taucs_matrix}; \ccConstructor{Taucs_matrix(int dim, bool is_symmetric = false);} { Create a square matrix initialized with zeros. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{dim}: Matrix dimension. \item \ccc{is_symmetric}: Symmetric/hermitian? \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[dim]Matrix dimension. \item[\ccc{is_symmetric}]Symmetric/hermitian? \end{description} -\end{description} -\ccGlue \ccConstructor{Taucs_matrix(int rows, int columns, bool is_symmetric = false);} { Create a rectangular matrix initialized with zeros. +\ccPrecond rows == columns if \ccc{is_symmetric} is true. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{rows}: Number of rows. \item \ccc{columns}: Number of columns. \item \ccc{is_symmetric}: Symmetric/hermitian? \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[rows]Matrix dimensions. \item[\ccc{is_symmetric}]Symmetric/hermitian? \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) @@ -124,7 +122,7 @@ Return the matrix number of columns. \ccMethod{T get_coef(int i, int j) const;} { Read access to a matrix coefficient. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item 0 $<$= i $<$ \ccc{row_dimension}().\item 0 $<$= j $<$ \ccc{column_dimension}(). \end{itemize} } \ccGlue @@ -133,7 +131,7 @@ Preconditions:\begin{itemize} Write access to a matrix coefficient: \ccc{a_ij} $<$- val. Optimizations:\begin{itemize} \item For symmetric matrices, \ccc{Taucs_matrix} stores only the lower triangle \ccc{set_coef}() does nothing if (i, j) belongs to the upper triangle.\item Caller can optimize this call by setting \ccc{new_coef} to true if the coefficient does not already exist in the matrix.\end{itemize} -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item 0 $<$= i $<$ \ccc{row_dimension}().\item 0 $<$= j $<$ \ccc{column_dimension}(). \end{itemize} } \ccGlue @@ -141,7 +139,7 @@ Preconditions:\begin{itemize} { Write access to a matrix coefficient: \ccc{a_ij} $<$- \ccc{a_ij} + val. Optimization: For symmetric matrices, \ccc{Taucs_matrix} stores only the lower triangle \ccc{add_coef}() does nothing if (i, j) belongs to the upper triangle. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item 0 $<$= i $<$ \ccc{row_dimension}().\item 0 $<$= j $<$ \ccc{column_dimension}(). \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_solver_traits.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_solver_traits.tex index dd11602acf1..89d47840385 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_solver_traits.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_solver_traits.tex @@ -103,7 +103,7 @@ Create a TAUCS sparse linear solver for GENERAL (aka unsymmetric) matrices. \ccMethod{bool linear_solver(const Matrix& A, const Vector& B, Vector& X, NT& D);} { Solve the sparse linear system {\em A$\ast$X = B}. Return true on success. The solution is then (1/D) $\ast$ X. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item A.\ccc{row_dimension}() == B.dimension().\item A.\ccc{column_dimension}() == X.dimension(). \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_matrix.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_matrix.tex index a7e6eff87a6..0abadbfe5b4 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_matrix.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_matrix.tex @@ -23,7 +23,7 @@ % The section below is automatically generated. Do not edit! %START-AUTO(\ccDefinition) -The class \ccc{Taucs_symmetric_matrix} is a C++ wrapper around a TAUCS $\ast$symmetric$\ast$ matrix (type \ccc{taucs_ccs_matrix}). +The class \ccc{Taucs_symmetric_matrix} is a C++ wrapper around a TAUCS {\bf symmetric} matrix (type \ccc{taucs_ccs_matrix}). Symmetric matrices store only the lower triangle. @@ -68,6 +68,9 @@ template$<$ \\ class T$>$ \\ struct \ccc{Taucs_symmetric_matrix}; +\ccCommentHeading{Parameters} +\ccc{T}: Number type. Tested with T = \ccc{taucs_single} or \ccc{taucs_double}. May also work with T = \ccc{taucs_dcomplex} and \ccc{taucs_scomplex}. + %END-AUTO(\ccParameters) @@ -92,37 +95,24 @@ struct \ccc{Taucs_symmetric_matrix}; \ccConstructor{Taucs_symmetric_matrix(int dim);} { -Create a square SYMMETRIC matrix initialized with zeros. The max number of non 0 elements in the matrix is automatically computed. +Create a square {\bf symmetric} matrix initialized with zeros. +\ccCommentHeading{Parameters} +\ccc{dim}: Matrix dimension. } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[dim]Matrix dimension. \end{description} -\end{description} -\ccGlue \ccConstructor{Taucs_symmetric_matrix(int rows, int columns);} { -Create a square SYMMETRIC matrix initialized with zeros. +Create a square {\bf symmetric} matrix initialized with zeros. +\ccPrecond rows == columns. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{rows}: Number of rows. \item \ccc{columns}: Number of columns. \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[rows]Matrix dimensions. \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) -\ccOperations - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccOperations) -%END-AUTO(\ccOperations) - - \ccSeeAlso \ccRefIdfierPage{CGAL::Taucs_solver_traits} \\ diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_solver_traits.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_solver_traits.tex index 0c21e5c9af2..6e03fb7096c 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_solver_traits.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_symmetric_solver_traits.tex @@ -89,14 +89,11 @@ class \ccc{Taucs_symmetric_solver_traits}; \ccConstructor{Taucs_symmetric_solver_traits(const char * options[] = NULL, const void * arguments[] = NULL);} { Create a TAUCS sparse linear solver for symmetric positive definite matrices. The default solver is the Multifrontal Supernodal Cholesky Factorization. See \ccc{taucs_linsolve}() documentation for the meaning of the \ccc{options} and \ccc{arguments} parameters. +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{options}: must be persistent \item \ccc{arguments}: must be persistent \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[options]must be persistent \item[arguments]must be persistent \end{description} -\end{description} -\ccGlue %END-AUTO(\ccCreation) @@ -109,7 +106,7 @@ Create a TAUCS sparse linear solver for symmetric positive definite matrices. Th \ccMethod{bool linear_solver(const Matrix& A, const Vector& B, Vector& X, NT& D);} { Solve the sparse linear system {\em A$\ast$X = B}. Return true on success. The solution is then (1/D) $\ast$ X. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item A.\ccc{row_dimension}() == B.dimension().\item A.\ccc{column_dimension}() == X.dimension(). \end{itemize} } \ccGlue diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_vector.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_vector.tex index 877a21c81b8..97b53f1458d 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_vector.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Taucs_vector.tex @@ -97,7 +97,7 @@ Copy constructor. % The section below is automatically generated. Do not edit! %START-AUTO(\ccOperations) -\ccMethod{Taucs_vector& operator=(const Taucs_vector& toCopy);} +\ccMethod{Taucs_vector& operator =(const Taucs_vector& toCopy);} { operator =() } @@ -110,7 +110,7 @@ Return the vector's number of coefficients. \ccMethod{T operator[](int i) const;} { Read/write access to a vector coefficient. -Preconditions: 0 $<$= i $<$ dimension(). +\ccCommentHeading{Preconditions} 0 $<$= i $<$ dimension(). } \ccGlue \ccMethod{T& operator[](int i);} diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Vector.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Vector.tex index 2ce1b5bb146..068f2032abb 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Vector.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/Vector.tex @@ -74,7 +74,7 @@ Copy constructor. % The section below is automatically generated. Do not edit! %START-AUTO(\ccOperations) -\ccMethod{Vector& operator=(const Vector& toCopy);} +\ccMethod{Vector& operator =(const Vector& toCopy);} { operator =() } @@ -87,7 +87,7 @@ Return the vector's number of coefficients. \ccMethod{NT operator[](int row) const;} { Read/write access to a vector coefficient. -Precondition: 0 $<$= row $<$ dimension(). +\ccPrecond 0 $<$= row $<$ dimension(). } \ccGlue \ccMethod{NT& operator[](int row);} diff --git a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/parameterize.tex b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/parameterize.tex index 8f66fd173a8..1a404900cba 100644 --- a/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/parameterize.tex +++ b/Surface_mesh_parameterization/doc_tex/Surface_mesh_parameterization_ref/parameterize.tex @@ -33,57 +33,30 @@ of Floater Mean Value Coordinates. % The section below is automatically generated. Do not edit! %START-AUTO(\ccDefinition) -\ccFunction{Parameterizer_traits_3::Error_code parameterize(ParameterizationMesh_3& mesh);} +\ccFunction{template Parameterizer_traits_3::Error_code parameterize(ParameterizationMesh_3& mesh);} { Compute a one-to-one mapping from a 3D triangle surface \ccc{mesh} to a 2D circle, using Floater Mean Value Coordinates algorithm. A one-to-one mapping is guaranteed. The mapping is piecewise linear on the input mesh triangles. The result is a (u,v) pair of parameter coordinates for each vertex of the input mesh. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item \ccc{mesh} must be a surface with one connected component.\item \ccc{mesh} must be a triangular mesh. \end{itemize} +\ccCommentHeading{Parameters} +\ccc{mesh}: 3D mesh, model of \ccc{ParameterizationMesh_3} concept } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[mesh]3D mesh, model of \ccc{ParameterizationMesh_3} concept \end{description} -\end{description} -\ccGlue -\ccFunction{Parameterizer_traits_3::Error_code parameterize(ParameterizationMesh_3& mesh, ParameterizerTraits_3 parameterizer);} +\ccFunction{template Parameterizer_traits_3::Error_code parameterize(ParameterizationMesh_3& mesh, ParameterizerTraits_3 parameterizer);} { Compute a one-to-one mapping from a 3D triangle surface \ccc{mesh} to a simple 2D domain. The mapping is piecewise linear on the triangle mesh. The result is a pair (u,v) of parameter coordinates for each vertex of the input mesh. One-to-one mapping may be guaranteed or not, depending on the chosen \ccc{ParametizerTraits_3} algorithm. -Preconditions:\begin{itemize} +\ccCommentHeading{Preconditions}\begin{itemize} \item \ccc{mesh} must be a surface with one connected component.\item \ccc{mesh} must be a triangular mesh.\item the mesh border must be mapped onto a convex polygon (for fixed border parameterizations). \end{itemize} +\ccCommentHeading{Parameters} +\begin{description} +\item \ccc{mesh}: 3D mesh, model of \ccc{ParameterizationMesh_3} \item \ccc{parameterizer}: Parameterization method for \ccc{mesh} \end{description} } \ccGlue -\begin{description} -\item[Parameters: ] -\begin{description} -\item[mesh]3D mesh, model of \ccc{ParameterizationMesh_3} \item[parameterizer]Parameterization method for \ccc{mesh} \end{description} -\end{description} -\ccGlue %END-AUTO(\ccDefinition) -\ccParameters - -The full template declarations are: - -% The section below is automatically generated. Do not edit! -%START-AUTO(\ccParameters) - -template$<$ \\ -class \ccc{ParameterizationMesh_3}$>$ \\ -\ccc{Parameterizer_traits_3::Error_code} \\ -parameterize (\ccc{ParameterizationMesh_3}\& mesh); \\ - \\ -template$<$ \\ -class \ccc{ParameterizationMesh_3}, \\ -class \ccc{ParameterizerTraits_3}$>$ \\ -\ccc{Parameterizer_traits_3::Error_code} \\ -parameterize (\ccc{ParameterizationMesh_3}\& mesh, \ccc{ParameterizerTraits_3} parameterizer); \\ - -%END-AUTO(\ccParameters) - \ccSeeAlso \ccRefIdfierPage{CGAL::Barycentric_mapping_parameterizer_3} \\ diff --git a/Surface_mesh_parameterization/include/CGAL/Fixed_border_parameterizer_3.h b/Surface_mesh_parameterization/include/CGAL/Fixed_border_parameterizer_3.h index f5abb4f6802..98c9369eadb 100644 --- a/Surface_mesh_parameterization/include/CGAL/Fixed_border_parameterizer_3.h +++ b/Surface_mesh_parameterization/include/CGAL/Fixed_border_parameterizer_3.h @@ -151,7 +151,7 @@ public: /// The mapping is linear by pieces (linear in each triangle). /// The result is the (u,v) pair image of each vertex of the 3D surface. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 'mesh' must be a surface with one connected component. /// - 'mesh' must be a triangular mesh. /// - the mesh border must be mapped onto a convex polygon. @@ -169,7 +169,7 @@ protected: /// Fill the border vertices' lines in both linear systems: /// "u = constant" and "v = constant". /// - /// Preconditions: + /// @commentheading Preconditions: /// - vertices must be indexed. /// - A, Bu and Bv must be allocated. /// - border vertices must be parameterized. @@ -187,7 +187,7 @@ protected: /// - call compute_w_ij() to compute the A coefficient w_ij for each neighbor v_j. /// - compute w_ii = - sum of w_ijs. /// - /// Preconditions: + /// @commentheading Preconditions: /// - vertices must be indexed. /// - vertex i musn't be already parameterized. /// - line i of A must contain only zeros. diff --git a/Surface_mesh_parameterization/include/CGAL/LSCM_parameterizer_3.h b/Surface_mesh_parameterization/include/CGAL/LSCM_parameterizer_3.h index 0e9527f3ed3..8ee90874002 100644 --- a/Surface_mesh_parameterization/include/CGAL/LSCM_parameterizer_3.h +++ b/Surface_mesh_parameterization/include/CGAL/LSCM_parameterizer_3.h @@ -148,7 +148,7 @@ public: /// The mapping is linear by pieces (linear in each triangle). /// The result is the (u,v) pair image of each vertex of the 3D surface. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 'mesh' must be a surface with one connected component. /// - 'mesh' must be a triangular mesh. virtual Error_code parameterize(Adaptor& mesh); @@ -163,7 +163,7 @@ private: /// Initialize "A*X = B" linear system after /// (at least two) border vertices are parameterized. /// - /// Preconditions: + /// @commentheading Preconditions: /// - vertices must be indexed. /// - X and B must be allocated and empty. /// - (at least two) border vertices must be parameterized. @@ -178,7 +178,7 @@ private: /// Create two lines in the linear system per triangle (one for u, one for v). /// - /// Preconditions: + /// @commentheading Preconditions: /// - vertices must be indexed. Error_code setup_triangle_relations(LeastSquaresSolver& solver, const Adaptor& mesh, diff --git a/Surface_mesh_parameterization/include/CGAL/Param_mesh_patch_circulators.h b/Surface_mesh_parameterization/include/CGAL/Param_mesh_patch_circulators.h index 979ecc425d0..d5a2d719e09 100644 --- a/Surface_mesh_parameterization/include/CGAL/Param_mesh_patch_circulators.h +++ b/Surface_mesh_parameterization/include/CGAL/Param_mesh_patch_circulators.h @@ -370,9 +370,9 @@ public: } private: - /// Update the inherited vertex handle + /// Update the inherited vertex handle. /// - /// Precondition: m_adaptor_circulator and m_center are valid + /// @commentheading Precondition: m_adaptor_circulator and m_center are valid. void update_inherited_handle() { Vertex_handle current_decorated_vertex = NULL; @@ -566,9 +566,9 @@ public: } private: - /// Update the inherited vertex handle + /// Update the inherited vertex handle. /// - /// Precondition: m_adaptor_circulator is valid + /// @commentheading Precondition: m_adaptor_circulator is valid. void update_inherited_handle() { Vertex_handle current_decorated_vertex = NULL; diff --git a/Surface_mesh_parameterization/include/CGAL/Parameterization_mesh_patch_3.h b/Surface_mesh_parameterization/include/CGAL/Parameterization_mesh_patch_3.h index 52a99ab5931..fa375f3f740 100644 --- a/Surface_mesh_parameterization/include/CGAL/Parameterization_mesh_patch_3.h +++ b/Surface_mesh_parameterization/include/CGAL/Parameterization_mesh_patch_3.h @@ -157,7 +157,7 @@ public: /// describes the border of a topological disc. This border may be an actual /// border of the mesh or a virtual border. /// - /// Preconditions: + /// @commentheading Preconditions: /// - first_seam_vertex -> end_seam_vertex defines the outer seam, /// i.e. Parameterization_mesh_patch_3 will export the "right" of the seam. /// - The "seam" is given as a container of Adaptor::Vertex_handle elements. @@ -600,7 +600,7 @@ private: /// w.r.t. the first_seam_vertex -> end_seam_vertex border /// (outer seam edges are marked BORDER). /// - /// Preconditions: + /// @commentheading Preconditions: /// - first_seam_vertex -> end_seam_vertex defines the outer seam, /// i.e. Parameterization_mesh_patch_3 will export the "right" of the seam. /// - The "seam" is given as a container of Adaptor::Vertex_handle elements. @@ -694,7 +694,7 @@ private: /// Set the seaming flag of inner vertices and edges to INNER /// by filling the topological disk. /// - /// Preconditions: + /// @commentheading Preconditions: /// - Inner vertices are marked as OUTER, seam vertices as BORDER. /// - Inner edges are marked as OUTER, /// outer seam edges as BORDER, inner seam edges as INNER. @@ -746,7 +746,7 @@ private: // Check that the seam is valid, i.e. that the cut mesh is 2-manifold. /// - /// Preconditions: + /// @commentheading Preconditions: /// - first_seam_vertex -> end_seam_vertex defines the outer seam, /// i.e. Parameterization_mesh_patch_3 will export the "right" of the seam. /// - The "seam" is given as a container of Adaptor::Vertex_handle elements. @@ -841,7 +841,7 @@ private: /// Create a patch vertex from an adaptor vertex + one of its neighbors. /// - /// Preconditions: + /// @commentheading Preconditions: /// - adaptor_neighbor is a neighbor of adaptor_vertex. /// - (adaptor_vertex, adaptor_neighbor) must NOT be a seam (non-oriented) edge. Vertex_const_handle get_decorated_vertex_from_inner_edge( @@ -903,7 +903,7 @@ private: /// Create a patch vertex from a border/seam adaptor vertex /// + one of its neighbors on the seam. /// - /// Preconditions: + /// @commentheading Preconditions: /// - adaptor_vertex is a border/seam vertex. /// - [first_cw_neighbor, last_cw_neighbor] defines the range /// of the valid neighbors of adaptor_vertex (included) or are NULL. diff --git a/Surface_mesh_parameterization/include/CGAL/Parameterizer_traits_3.h b/Surface_mesh_parameterization/include/CGAL/Parameterizer_traits_3.h index c30f3d8b8d3..30a57a3dd26 100644 --- a/Surface_mesh_parameterization/include/CGAL/Parameterizer_traits_3.h +++ b/Surface_mesh_parameterization/include/CGAL/Parameterizer_traits_3.h @@ -112,7 +112,7 @@ public: /// The mapping is linear by pieces (linear in each triangle). /// The result is the (u,v) pair image of each vertex of the 3D surface. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 'mesh' must be a surface with one connected component. /// - 'mesh' must be a triangular mesh. virtual Error_code parameterize (Adaptor& mesh) = 0; diff --git a/Surface_mesh_parameterization/include/CGAL/Taucs_matrix.h b/Surface_mesh_parameterization/include/CGAL/Taucs_matrix.h index 8a53c12013c..59cd491b5d9 100644 --- a/Surface_mesh_parameterization/include/CGAL/Taucs_matrix.h +++ b/Surface_mesh_parameterization/include/CGAL/Taucs_matrix.h @@ -43,8 +43,11 @@ template struct Taucs_traits; /// /// @heading Is Model for the Concepts: Model of the SparseLinearAlgebraTraits_d::Matrix concept. /// -template // Tested with T = float or double - // May also work with T = taucs_dcomplex and taucs_scomplex +/// @heading Parameters: +/// @param T Number type. Tested with T = taucs_single or taucs_double. +/// May also work with T = taucs_dcomplex and taucs_scomplex. + +template struct Taucs_matrix { // Public types @@ -161,8 +164,10 @@ public: } /// Create a rectangular matrix initialized with zeros. - Taucs_matrix(int rows, ///< Matrix dimensions. - int columns, + /// + /// @commentheading Precondition: rows == columns if is_symmetric is true. + Taucs_matrix(int rows, ///< Number of rows. + int columns, ///< Number of columns. bool is_symmetric = false) ///< Symmetric/hermitian? { CGAL_precondition(rows > 0); @@ -199,7 +204,7 @@ public: /// Read access to a matrix coefficient. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 0 <= i < row_dimension(). /// - 0 <= j < column_dimension(). T get_coef(int i, int j) const @@ -227,7 +232,7 @@ public: /// - Caller can optimize this call by setting 'new_coef' to true /// if the coefficient does not already exist in the matrix. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 0 <= i < row_dimension(). /// - 0 <= j < column_dimension(). void set_coef(int i, int j, T val, bool new_coef = false) @@ -260,7 +265,7 @@ public: /// For symmetric matrices, Taucs_matrix stores only the lower triangle /// add_coef() does nothing if (i, j) belongs to the upper triangle. /// - /// Preconditions: + /// @commentheading Preconditions: /// - 0 <= i < row_dimension(). /// - 0 <= j < column_dimension(). void add_coef(int i, int j, T val) @@ -403,9 +408,12 @@ private: /// Symmetric matrices store only the lower triangle. /// /// @heading Is Model for the Concepts: Model of the SparseLinearAlgebraTraits_d::Matrix concept. +/// +/// @heading Parameters: +/// @param T Number type. Tested with T = taucs_single or taucs_double. +/// May also work with T = taucs_dcomplex and taucs_scomplex. -template // Tested with T = taucs_single or taucs_double - // May also work with T = taucs_dcomplex and taucs_scomplex +template struct Taucs_symmetric_matrix : public Taucs_matrix { @@ -417,16 +425,17 @@ public: // Public operations public: - /// Create a square SYMMETRIC matrix initialized with zeros. - /// The max number of non 0 elements in the matrix is automatically computed. + /// Create a square *symmetric* matrix initialized with zeros. Taucs_symmetric_matrix(int dim) ///< Matrix dimension. : Taucs_matrix(dim, true /* symmetric */) { } - /// Create a square SYMMETRIC matrix initialized with zeros. - Taucs_symmetric_matrix(int rows, ///< Matrix dimensions. - int columns) + /// Create a square *symmetric* matrix initialized with zeros. + /// + /// @commentheading Precondition: rows == columns. + Taucs_symmetric_matrix(int rows, ///< Number of rows. + int columns) ///< Number of columns. : Taucs_matrix(rows, columns, true /* symmetric */) { } diff --git a/Surface_mesh_parameterization/include/CGAL/Taucs_solver_traits.h b/Surface_mesh_parameterization/include/CGAL/Taucs_solver_traits.h index 18c9c0eecb5..18d8424fc88 100644 --- a/Surface_mesh_parameterization/include/CGAL/Taucs_solver_traits.h +++ b/Surface_mesh_parameterization/include/CGAL/Taucs_solver_traits.h @@ -84,7 +84,7 @@ public: /// Solve the sparse linear system "A*X = B". /// Return true on success. The solution is then (1/D) * X. /// - /// Preconditions: + /// @commentheading Preconditions: /// - A.row_dimension() == B.dimension(). /// - A.column_dimension() == X.dimension(). bool linear_solver (const Matrix& A, const Vector& B, Vector& X, NT& D) @@ -209,7 +209,7 @@ public: /// Solve the sparse linear system "A*X = B". /// Return true on success. The solution is then (1/D) * X. /// - /// Preconditions: + /// @commentheading Preconditions: /// - A.row_dimension() == B.dimension(). /// - A.column_dimension() == X.dimension(). bool linear_solver (const Matrix& A, const Vector& B, Vector& X, NT& D) diff --git a/Surface_mesh_parameterization/include/CGAL/Taucs_vector.h b/Surface_mesh_parameterization/include/CGAL/Taucs_vector.h index 18b939b6183..09ba0154e67 100644 --- a/Surface_mesh_parameterization/include/CGAL/Taucs_vector.h +++ b/Surface_mesh_parameterization/include/CGAL/Taucs_vector.h @@ -87,7 +87,7 @@ public: /// Read/write access to a vector coefficient. /// - /// Preconditions: + /// @commentheading Preconditions: /// 0 <= i < dimension(). T operator[](int i) const { CGAL_precondition(i < m_dimension); diff --git a/Surface_mesh_parameterization/include/CGAL/parameterize.h b/Surface_mesh_parameterization/include/CGAL/parameterize.h index 42ba9e4387a..df3e0e36fde 100644 --- a/Surface_mesh_parameterization/include/CGAL/parameterize.h +++ b/Surface_mesh_parameterization/include/CGAL/parameterize.h @@ -32,7 +32,7 @@ CGAL_BEGIN_NAMESPACE /// The mapping is piecewise linear on the input mesh triangles. /// The result is a (u,v) pair of parameter coordinates for each vertex of the input mesh. /// -/// Preconditions: +/// @commentheading Preconditions: /// - 'mesh' must be a surface with one connected component. /// - 'mesh' must be a triangular mesh. /// @@ -53,7 +53,7 @@ parameterize(ParameterizationMesh_3& mesh) ///< 3D mesh, model of Parameterizat /// One-to-one mapping may be guaranteed or /// not, depending on the chosen ParametizerTraits_3 algorithm. /// -/// Preconditions: +/// @commentheading Preconditions: /// - 'mesh' must be a surface with one connected component. /// - 'mesh' must be a triangular mesh. /// - the mesh border must be mapped onto a convex polygon