rename Surface_modeling package to Surface_mesh_deformation for consistency

This commit is contained in:
Sébastien Loriot 2016-02-08 12:12:19 +01:00
parent 6a405ff7e3
commit eb2ba8cefe
497 changed files with 72 additions and 72 deletions

View File

@ -177,7 +177,7 @@ the concepts provided by \cgal to implement a simple algorithm.
The following example program computes the minimum spanning tree on a surface mesh.
More examples can be found in the chapters
\ref PkgSurfaceMeshSimplificationSummary, \ref PkgSurfaceSegmentationSummary, and \ref PkgSurfaceModelingSummary.
\ref PkgSurfaceMeshSimplificationSummary, \ref PkgSurfaceSegmentationSummary, and \ref PkgSurfaceMeshDeformationSummary.
The surface mesh class uses integer indices to address vertices and edges,
and it comes with a built-in property mechanism that maps nicely on the \sc{Bgl}.

View File

@ -11,6 +11,6 @@ Triangulation_2
Surface_mesh
Surface_mesh_simplification
Surface_mesh_segmentation
Surface_modeling
Surface_mesh_deformation
Property_map
Miscellany

View File

@ -88,7 +88,7 @@ Surface_reconstruction_points_3
Surface_mesh_segmentation
Stream_lines_2
Stream_support
Surface_modeling
Surface_mesh_deformation
Barycentric_coordinates_2
Surface_mesh
Surface_mesh_shortest_path

View File

@ -108,7 +108,7 @@ h1 {
\package_listing{Subdivision_method_3}
\package_listing{Surface_mesh_segmentation}
\package_listing{Surface_mesh_simplification}
\package_listing{Surface_modeling}
\package_listing{Surface_mesh_deformation}
\package_listing{Surface_mesh_parameterization}
\package_listing{Surface_mesh_shortest_path}
\package_listing{Surface_mesh_skeletonization}

View File

@ -53,7 +53,7 @@ pushd Arrangement_on_surface_2_Demo; zip ../arrangements_2.zip *;
pushd Periodic_2_triangulation_2_Demo; zip ../Periodic_2_Delaunay_triangulation_2.zip *;
popd
# probably an error, in CGAL-4.5:
rm -rf Surface_modeling_Demo
rm -rf Surface_mesh_deformation_Demo
# Demo not announced in the CGAL manual, from CGAL-3.8:
rm -rf Circular_kernel_3_Demo

View File

@ -8,6 +8,6 @@ Polyhedron
BGL
Solver_interface
Surface_mesh
Surface_modeling
Surface_mesh_deformation
AABB_tree
Triangulation_2

View File

@ -258,9 +258,9 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND)
target_link_libraries(scene_polyhedron_shortest_path_item scene_polyhedron_item_decorator scene_polyhedron_item scene_polylines_item)
if(EIGEN3_FOUND )
qt5_wrap_ui( editionUI_FILES Plugins/Surface_modeling/Deform_mesh.ui )
qt5_wrap_ui( editionUI_FILES Plugins/Surface_mesh_deformation/Deform_mesh.ui )
add_item(scene_textured_polyhedron_item Scene_textured_polyhedron_item.cpp texture.cpp)
add_item(scene_edit_polyhedron_item Plugins/Surface_modeling/Scene_edit_polyhedron_item.cpp
add_item(scene_edit_polyhedron_item Plugins/Surface_mesh_deformation/Scene_edit_polyhedron_item.cpp
${editionUI_FILES})
target_link_libraries(scene_edit_polyhedron_item scene_polyhedron_item scene_polyhedron_item_k_ring_selection)
endif()

View File

@ -105,7 +105,7 @@ and \ref PkgJet_fitting_3. At that time, these packages were relying
on \sc{Taucs}, \sc{LAPACK}, \sc{BLAS} and \sc{OpenNL}. Gaël Guennebaud
then introduced new models using the \ref thirdpartyEigen library that
became the only supported models by \cgal. Later on the packages \ref
PkgMeanCurvatureSkeleton3Summary and \ref PkgSurfaceModelingSummary
PkgMeanCurvatureSkeleton3Summary and \ref PkgSurfaceMeshDeformationSummary
extended the existing concepts.
Simon Giraudot was responsible for gathering all concepts and classes, and also wrote this user manual

View File

@ -5,6 +5,6 @@ Algebraic_foundations
Miscellany
Surface_mesh_parameterization
Surface_mesh_skeletonization
Surface_modeling
Surface_mesh_deformation
Jet_fitting_3
Poisson_surface_reconstruction_3

View File

@ -33,7 +33,7 @@ as well as through the BGL API as described in the package \ref PkgBGLSummary,
as it is a model of the concepts `MutableFaceGraph` and `FaceListGraph`.
Therefore it is possible to apply the algorithms of the packages
\ref PkgSurfaceMeshSimplificationSummary,
\ref PkgSurfaceSegmentationSummary, and \ref PkgSurfaceModelingSummary on a surface mesh.
\ref PkgSurfaceSegmentationSummary, and \ref PkgSurfaceMeshDeformationSummary on a surface mesh.
\section sectionSurfaceMeshUsage Usage

View File

@ -12,7 +12,7 @@
#define COMPUTE_V_AS_MATRIX
#define COMPUTE_U_AS_MATRIX
#include <CGAL/internal/Surface_modeling/auxiliary/Singular_Value_Decomposition_Preamble.hpp>
#include <CGAL/internal/Surface_mesh_deformation/auxiliary/Singular_Value_Decomposition_Preamble.hpp>
int main() {
@ -49,7 +49,7 @@ int main() {
for (int i = 0; i < ite; i++)
{
#include <CGAL/internal/Surface_modeling/auxiliary/Singular_Value_Decomposition_Kernel_Declarations.hpp>
#include <CGAL/internal/Surface_mesh_deformation/auxiliary/Singular_Value_Decomposition_Kernel_Declarations.hpp>
ENABLE_SCALAR_IMPLEMENTATION(Sa11.f=m(0,0);)
ENABLE_SCALAR_IMPLEMENTATION(Sa21.f=m(1,0);)
@ -71,7 +71,7 @@ int main() {
ENABLE_SSE_IMPLEMENTATION(Va23=_mm_set1_ps(m(1,2));)
ENABLE_SSE_IMPLEMENTATION(Va33=_mm_set1_ps(m(2,2));)
#include <CGAL/internal/Surface_modeling/auxiliary/Singular_Value_Decomposition_Main_Kernel_Body.hpp>
#include <CGAL/internal/Surface_mesh_deformation/auxiliary/Singular_Value_Decomposition_Main_Kernel_Body.hpp>
std::pair<Eigen::Matrix3d, Eigen::Matrix3d> solver;

View File

@ -2,7 +2,7 @@
# This is the CMake script for compiling a CGAL application.
project( Surface_modeling_demo )
project( Surface_mesh_deformation_demo )
cmake_minimum_required(VERSION 2.8.11)
if(POLICY CMP0043)

View File

@ -1,5 +1,5 @@
/*!
\ingroup PkgSurfaceModelingConcepts
\ingroup PkgSurfaceMeshDeformationConcepts
\cgalConcept
@brief Concept describing the set of requirements for computing a 3x3 rotation matrix that is close to a given 3x3 matrix, together with basic computations used in the class `CGAL::Surface_mesh_deformation`.

View File

@ -1,4 +1,4 @@
/// \ingroup PkgSurfaceModelingConcepts
/// \ingroup PkgSurfaceMeshDeformationConcepts
/// \cgalConcept
///
/// Concept describing the set of requirements of a simple point type.

View File

@ -1,4 +1,4 @@
/// \ingroup PkgSurfaceModelingConcepts
/// \ingroup PkgSurfaceMeshDeformationConcepts
/// \cgalConcept
///
/// @brief Concept describing the set of requirements for calculating weights for halfedges.
@ -6,7 +6,7 @@
/// \cgalHeading{Example:}
///
/// \code
/// // a simple model to SurfaceModelingWeights concept, which provides uniform weights
/// // a simple model to SurfaceMeshDeformationWeights concept, which provides uniform weights
/// template <class HalfedgeGraph>
/// struct Identity_weight
/// {
@ -18,7 +18,7 @@
/// \endcode
///
///
class SurfaceModelingWeights
class SurfaceMeshDeformationWeights
{
public:
/// \name Types
@ -30,7 +30,7 @@ public:
/// \name Creation
/// @{
/// Default constructor. Required only if the default parameter is used in the constructor of `CGAL::Surface_mesh_deformation`.
SurfaceModelingWeights();
SurfaceMeshDeformationWeights();
/// @}
/// \name Operations

View File

@ -1,16 +1,16 @@
/// \defgroup PkgSurfaceModeling Triangulated Surface Mesh Deformation Reference
/// \defgroup PkgSurfaceModelingConcepts Concepts
/// \ingroup PkgSurfaceModeling
/// \defgroup PkgSurfaceMeshDeformation Triangulated Surface Mesh Deformation Reference
/// \defgroup PkgSurfaceMeshDeformationConcepts Concepts
/// \ingroup PkgSurfaceMeshDeformation
/*!
\addtogroup PkgSurfaceModeling
\cgalPkgDescriptionBegin{Triangulated Surface Mesh Deformation,PkgSurfaceModelingSummary}
\addtogroup PkgSurfaceMeshDeformation
\cgalPkgDescriptionBegin{Triangulated Surface Mesh Deformation,PkgSurfaceMeshDeformationSummary}
\cgalPkgPicture{deform-ico.png}
\cgalPkgSummaryBegin
\cgalPkgAuthor{Sébastien Loriot, Olga Sorkine-Hornung, Yin Xu and Ilker %O. Yaz}
\cgalPkgDesc{This package offers surface mesh deformation algorithms which provide new positions to the vertices of a surface mesh
under positional constraints of some of its vertices, without requiring any additional structure other than the surface mesh itself.}
\cgalPkgManuals{Chapter_SurfaceModeling,PkgSurfaceModeling}
\cgalPkgManuals{Chapter_SurfaceMeshDeformation,PkgSurfaceMeshDeformation}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{4.5}
@ -31,7 +31,7 @@ under positional constraints of some of its vertices, without requiring any addi
## Concepts ##
- `DeformationClosestRotationTraits_3`
- `RawPoint_3`
- `SurfaceModelingWeights`
- `SurfaceMeshDeformationWeights`
## Algebraic Traits ##
- `#CGAL::Deformation_Eigen_closest_rotation_traits_3`

View File

@ -2,7 +2,7 @@ namespace CGAL {
/*!
\mainpage User Manual
\anchor Chapter_SurfaceModeling
\anchor Chapter_SurfaceMeshDeformation
\cgalAutoToc
\authors Sébastien Loriot, Olga Sorkine-Hornung, Yin Xu and Ilker %O. Yaz
@ -10,7 +10,7 @@ namespace CGAL {
\image latex main_image_suggestion_4_resized.png
\image html main_image_suggestion_4_resized.png
\section Surface_Modeling_Intro Introduction
\section SMD_Intro Introduction
This package offers surface mesh deformation algorithms which compute new vertex positions of a surface mesh
under positional constraints of some of its vertices, without requiring any additional structure other than the surface mesh itself
@ -19,7 +19,7 @@ alternative energy function \cgalCite{Chao2010SimpleGeomModel}.
The algorithm minimizes a nonlinear deformation energy under positional constraints to preserve rigidity as much as possible.
The minimization of the energy relies on solving sparse linear systems and finding closest rotation matrices.
\section Surface_Modeling_Def Definitions
\section SMD_Def Definitions
A <em>surface mesh deformation system</em> consists of:
- a triangulated surface mesh (<em>surface mesh</em> in the following),
@ -46,7 +46,7 @@ convergence while the <em>ARAP</em> method requires the edge weights to be posit
the results obtained using the <em>Spokes and Rims</em> method are more dependent on the discretization
of the deformed surface (See \cgalFigureRef{Arap_spokes_comparison}).
More details on these algorithms are provided in section \ref Surface_Modeling_Overview.
More details on these algorithms are provided in section \ref SMD_Overview.
\cgalFigureBegin{Arap_spokes_comparison, arap_spokes_comparison.png}
Comparison between the As-Rigid-As-Possible and the Spokes and Rims deformation methods.
@ -57,7 +57,7 @@ latter method provides unconditional convergence does not produce a symmetric re
\cgalFigureEnd
\section Surface_Modeling_API User Interface Description
\section SMD_API User Interface Description
The deformation methods implemented rely on solving a sparse linear system.
The sparse matrix definition depends on the weighting scheme
@ -95,7 +95,7 @@ The function `Surface_mesh_deformation::preprocess()` returns `true` if the fact
Rank deficiency is the main reason for failure. Typical failure cases are:
- All the vertices are in the ROI and no control vertices are set
- The weighting scheme used to fill the sparse matrix (model of `SurfaceModelingWeights`) features too many zeros and breaks the connectivity information
- The weighting scheme used to fill the sparse matrix (model of `SurfaceMeshDeformationWeights`) features too many zeros and breaks the connectivity information
\cgalAdvancedBegin
The choice of the weighting scheme provides a mean to adjust the way the control vertices
@ -131,9 +131,9 @@ The original positions can be updated by calling `Surface_mesh_deformation::over
which will also require a new preprocessing step).
This behavior is illustrated in \ref SModelingVideo_1 "Video 1".
\subsection Surface_modeling_arap_or_spokes_and_rims As-Rigid-As-Possible and Spokes-and-Rims Deformation Techniques
\subsection Surface_mesh_deformation_arap_or_spokes_and_rims As-Rigid-As-Possible and Spokes-and-Rims Deformation Techniques
Two deformation techniques are provided by this package. This section summarizes from the user point of view what is
explained in details in the section \ref Surface_Modeling_Overview.
explained in details in the section \ref SMD_Overview.
The As-Rigid-As-Possible deformation technique requires the use of a positive weighting scheme to guarantee
the correct minimization of the energy. When using the default cotangent weighting scheme, this means that
@ -156,13 +156,13 @@ is guaranteed to always correctly minimize the energy even if the weights are ne
However, this technique is more dependent on the discretization of the deformed surface
(See \cgalFigureRef{Arap_spokes_comparison}).
\subsection Surface_modeling_examples Examples
\subsection Surface_mesh_deformation_examples Examples
\subsubsection SModelingExample_1 Using the Whole Surface Mesh as Region-of-Interest
In this example, the whole surface mesh is used as ROI and a few vertices are added as control vertices.
`Surface_mesh_deformation::set_target_position()` is used for setting the target positions of the control vertices.
\cgalExample{Surface_modeling/all_roi_assign_example.cpp}
\cgalExample{Surface_mesh_deformation/all_roi_assign_example.cpp}
\cgalFigureBegin{SModelingExample_1_results, example_1_results.png}
Deformation results when running example \ref SModelingExample_1 : `deform_1.off` and `deform_2.off`.
@ -172,7 +172,7 @@ Deformation results when running example \ref SModelingExample_1 : `deform_1.off
In this example, we use the functions `translate()` and `rotate()` on a range of control vertices.
Note that the translations and the rotations are defined using a 3D vector type and a quaternion type from the \ref thirdpartyEigen "Eigen library".
\cgalExample{Surface_modeling/k_ring_roi_translate_rotate_example.cpp}
\cgalExample{Surface_mesh_deformation/k_ring_roi_translate_rotate_example.cpp}
\cgalFigureBegin{SModelingExample_2_results, example_2_results.png}
Deformation results when running example \ref SModelingExample_2 : `deform_1.off` and `deform_2.off`.
@ -187,18 +187,18 @@ In the following example, we show how we can use alternative property maps.
For practical performance however we recommend relying upon
the former examples instead, as using a `std::map`
to access indices increases the complexity from constant to logarithmic.
\cgalExample{Surface_modeling/deform_polyhedron_with_custom_pmap_example.cpp}
\cgalExample{Surface_mesh_deformation/deform_polyhedron_with_custom_pmap_example.cpp}
\subsubsection SModelingExample_4 Using a Custom Edge Weighting Scheme
Using a custom weighting scheme for edges is also possible if one provides a model of `SurfaceModelingWeights`.
Using a custom weighting scheme for edges is also possible if one provides a model of `SurfaceMeshDeformationWeights`.
In this example, the weight of each edge is pre-computed and an internal map is used for storing and accessing them.
Another example is given in the manual page of the concept `::SurfaceModelingWeights`.
Another example is given in the manual page of the concept `::SurfaceMeshDeformationWeights`.
\cgalExample{Surface_modeling/custom_weight_for_edges_example.cpp}
\cgalExample{Surface_mesh_deformation/custom_weight_for_edges_example.cpp}
\section Surface_Modeling_Demo How to Use the Demo
\section SMD_Demo How to Use the Demo
A plugin for the polyhedron demo is available to test the algorithm. The following video tutorials explain how to use it.
When the deformation dock window is open, the picking of control vertices and of the ROI is done by pressing <i>Shift</i>
@ -232,14 +232,14 @@ more iteration steps are needed to reach the convergence.</div>
\endhtmlonly
\section Surface_Modeling_Overview Deformation Techniques, Energies and Weighting Schemes
\section SMD_Overview Deformation Techniques, Energies and Weighting Schemes
This section gives the theoretical background to make the user manual self-contained
and at the same time explains where the weights comes in. This allows advanced users
of this package to tune the weighting scheme by developing a model of the concept
`SurfaceModelingWeights` used in the class `Surface_mesh_deformation`.
`SurfaceMeshDeformationWeights` used in the class `Surface_mesh_deformation`.
\subsection Surface_Modeling_Overview_Preliminaries Preliminaries
\subsubsection Surface_Modeling_Overview_Laplacian Laplacian Representation
\subsection SMD_Overview_Preliminaries Preliminaries
\subsubsection SMD_Overview_Laplacian Laplacian Representation
The <em>Laplacian representation</em> (referred to as <em>Laplace coordinates</em> in \cgalCite{botsch2010polygon})
of a vertex in a surface mesh is one way to <em>encode</em> the local neighborhood of a vertex in the surface mesh.
In this representation, a vertex \f$ \mathbf{v}_i \f$ is associated a 3D vector defined as:
@ -286,7 +286,7 @@ where:
- \f$\mathbf{V}\f$ is a \f$n \times 3\f$ matrix made of the %Cartesian coordinates of the vertices.
\subsubsection Surface_Modeling_Overview_Laplacian_Deformation Laplacian Deformation
\subsubsection SMD_Overview_Laplacian_Deformation Laplacian Deformation
This section is an introduction to provide the background for the next two sub-sections describing the algorithms implemented
in this package. A system relying only on the approach described below results in non-smooth transitions in the neighborhood of
@ -332,7 +332,7 @@ The left-hand side matrix of the system of Eq.\f$\eqref{eq:lap_energy_system}\f$
solve the aforementioned system, an appropriate solver (e.g. LU solver) needs to be used. Note that solving this system
preserves the Laplacian representation of the surface mesh restricted to the unconstrained vertices while satisfying the deformation constraints.
\subsection Surface_Modeling_Overview_ARAP As-Rigid-As Possible Deformation
\subsection SMD_Overview_ARAP As-Rigid-As Possible Deformation
Given a surface mesh \f$M\f$ with \f$ n \f$ vertices \f$ \{\mathbf{v}_i\} i \in \{1 \dots n \} \f$ and some deformation
constraints, we consider the following energy function:
@ -432,7 +432,7 @@ by setting them to zero.
A method minimizing another energy function is described next to avoid the latter issue.
\subsection Surface_Modeling_Overview_ARAP_Rims Spokes and Rims Version
\subsection SMD_Overview_ARAP_Rims Spokes and Rims Version
The elastic energy function proposed by \cgalCite{Chao2010SimpleGeomModel} additionally takes into account
all the opposite edges in the facets incident to a vertex. The energy function to minimize becomes:
@ -456,7 +456,7 @@ The vertices \f$ \mathbf{v}_n\f$ and \f$ \mathbf{v}_m\f$ are the opposite vertic
\cgalFigureEnd
The method to get the new positions of the unconstrained vertices is similar to the two-step optimization
method explained in \ref Surface_Modeling_Overview_ARAP.
method explained in \ref SMD_Overview_ARAP.
For the first step, the Eq. \f$\eqref{eq:cov_matrix}\f$ is modified to take into account the edges in \f$E(\mathbf{v}_i)\f$:
\f[
@ -483,14 +483,14 @@ where \f$\mathbf{R}_m\f$ and \f$\mathbf{R}_n\f$ are the rotation matrices of the
the boundary of the surface mesh, then \f$ w_{ij} \f$ must be 0 and \f$ \mathbf{v}_m
\f$ does not exist.
An important property of this approach compared to \ref Surface_Modeling_Overview_ARAP is that the contribution to the global energy
An important property of this approach compared to \ref SMD_Overview_ARAP is that the contribution to the global energy
of each vertex is guaranteed to be non-negative when using the cotangent weights \cgalCite{Chao2010SimpleGeomModel}.
Thus even with negative weights, the minimization of the energy with the iterative method presented is always guaranteed.
However, this method is more dependent on the discretization of the deformed surface (See \cgalFigureRef{Arap_spokes_comparison}).
The implementation in this package uses the cotangent weights by default (negative values included) as proposed in \cgalCite{Chao2010SimpleGeomModel}.
\section Surface_Modeling_History Design and Implementation History
\section SMD_History Design and Implementation History
An initial version of this package has been implemented during the 2011 Google Summer of Code by Yin Xu under the guidance of Olga Sorkine and Andreas Fabri.
Ilker O. Yaz took over the finalization of the package with the help of Sébastien Loriot for the documentation and the API.
The authors are grateful to Gaël Guennebaud for his great help on using the Eigen library and for providing the code to compute

View File

@ -0,0 +1,6 @@
/*!
\example Surface_mesh_deformation/all_roi_assign_example.cpp
\example Surface_mesh_deformation/k_ring_roi_translate_rotate_example.cpp
\example Surface_mesh_deformation/deform_polyhedron_with_custom_pmap_example.cpp
\example Surface_mesh_deformation/custom_weight_for_edges_example.cpp
*/

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

@ -2,7 +2,7 @@
# This is the CMake script for compiling a CGAL application.
project( Surface_modeling_ )
project( Surface_mesh_deformation_ )
cmake_minimum_required(VERSION 2.8.11)

View File

@ -25,7 +25,7 @@ typedef std::map<halfedge_descriptor, std::size_t> Internal_hedge_map;
typedef boost::associative_property_map<Internal_vertex_map> Vertex_index_map;
typedef boost::associative_property_map<Internal_hedge_map> Hedge_index_map;
// A model of SurfaceModelingWeights using a map of pre-computed weights
// A model of SurfaceMeshDeformationWeights using a map of pre-computed weights
struct Weights_from_map
{
typedef Polyhedron Halfedge_graph;

View File

@ -25,7 +25,7 @@
#include <Eigen/SVD>
namespace CGAL {
/// \ingroup PkgSurfaceModeling
/// \ingroup PkgSurfaceMeshDeformation
/// A class to compute the closest rotation in Frobenius norm to a 3x3 Matrix using the \link thirdpartyEigen `Eigen` library \endlink.
/// The internal computation relies on `Eigen::JacobiSVD<>` solver.
///

View File

@ -26,7 +26,7 @@
#include <CGAL/Profile_counter.h>
namespace CGAL {
/// \ingroup PkgSurfaceModeling
/// \ingroup PkgSurfaceMeshDeformation
/// A class to compute the closest rotation in Frobenius norm to a 3x3 Matrix using the \link thirdpartyEigen `Eigen` library \endlink.
/// The internal computation relies on a hybrid system using the solvers `Eigen::SelfAdjointEigenSolver<>`
/// and `Eigen::JacobiSVD<>` (polar decomposition).

View File

@ -47,7 +47,7 @@
namespace CGAL {
/// \ingroup PkgSurfaceModeling
/// \ingroup PkgSurfaceMeshDeformation
///@brief Deformation algorithm type
enum Deformation_algorithm_tag
{
@ -97,7 +97,7 @@ struct SC_on_the_fly_pmap: public Vertex_point_map{
/// @endcond
///
/// \ingroup PkgSurfaceModeling
/// \ingroup PkgSurfaceMeshDeformation
/// @brief Class providing the functionalities for deforming a triangulated surface mesh
///
/// @tparam HG a model of HalfedgeGraph
@ -106,7 +106,7 @@ struct SC_on_the_fly_pmap: public Vertex_point_map{
/// @tparam HIM a model of `ReadablePropertyMap` with `Surface_mesh_deformation::halfedge_descriptor` as key and `unsigned int` as value type.
/// The default is `boost::property_map<HG, boost::%halfedge_index_t>::%type`.
/// @tparam TAG tag for selecting the deformation algorithm
/// @tparam WC a model of SurfaceModelingWeights, with `WC::Halfedge_graph` being `HG`.
/// @tparam WC a model of `SurfaceMeshDeformationWeights`, with `WC::Halfedge_graph` being `HG`.
/// If `TAG` is `ORIGINAL_ARAP`, the weights must be positive to guarantee a correct energy minimization.
/// The default is the cotangent weighting scheme. In case `TAG` is `ORIGINAL_ARAP`, negative weights are clamped to zero.
/// @tparam ST a model of SparseLinearAlgebraWithFactorTraits_d. If \ref thirdpartyEigen "Eigen" 3.2 (or greater) is available

View File

@ -2,7 +2,7 @@
# This is the CMake script for compiling a CGAL application.
project( Surface_modeling_test )
project( Surface_mesh_deformation_test )
cmake_minimum_required(VERSION 2.8.11)

View File

@ -1,4 +1,4 @@
#include "Surface_modeling_test_commons.h"
#include "Surface_mesh_deformation_test_commons.h"
#include <algorithm>
#include <sstream>

View File

@ -1,4 +1,4 @@
#include "Surface_modeling_test_commons.h"
#include "Surface_mesh_deformation_test_commons.h"
#include <algorithm>
#include <sstream>

View File

@ -1,4 +1,4 @@
#include "Surface_modeling_test_commons.h"
#include "Surface_mesh_deformation_test_commons.h"
#include <vector>
#include <iostream>
#include <fstream>

View File

@ -1,4 +1,4 @@
#include "Surface_modeling_test_commons.h"
#include "Surface_mesh_deformation_test_commons.h"
#include <vector>
#include <iostream>
#include <fstream>

Some files were not shown because too many files have changed in this diff Show More