\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.5 - Triangulated Surface Mesh Deformation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
DeformationClosestRotationTraits_3 Concept Reference

Definition

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. The definition of close depends on the model. The fact that some basic operations are hidden behind a function is to allow to benefit from optimizations like expression template from libraries used to implement models of this concept.

Has Models:

CGAL::Deformation_Eigen_closest_rotation_traits_3

CGAL::Deformation_Eigen_polar_closest_rotation_traits_3

Types

typedef unspecified_type Matrix
 3x3 matrix type having a copy constructor and an assignment operator
 
typedef unspecified_type Vector
 3D vector type having a copy constructor
 

Creation

Default constructor.

 DeformationClosestRotationTraits_3 ()
 

Operations

void add_scalar_t_vector_t_vector_transpose (Matrix &result, double w, const Vector &v1, const Vector &v2)
 Equivalent to result = result + w * (v1*v2^t)
 
void add__scalar_t_matrix_p_scalar_t_matrix__t_vector (Vector &result, double w1, const Matrix &m1, double w2, const Matrix &m2, const Vector &v)
 Equivalent to result = result + (w1*m1 + w2*m2) * v
 
void add_scalar_t_matrix_sum_t_vector (Vector &result, double w1, const Matrix &m1, const Matrix &m2, const Matrix &m3, const Vector &v)
 Equivalent to result = result + w1 * (m1 + m2 + m3) * v
 
double squared_norm_vector_scalar_vector_subs (const Vector &v1, const Matrix &m, const Vector &v2)
 Returns the squared norm of v1 - m*v2
 
Matrix identity_matrix ()
 Returns an identity matrix.
 
Matrix zero_matrix ()
 Returns a matrix initialized with zeros.
 
Vector vector (double x, double y, double z)
 Returns the vector (x,y,z)
 
double vector_coordinate (const Vector &v, int i)
 Returns ith coefficient of a vector.
 
void compute_close_rotation (const Matrix &m, Matrix &R)
 Computes a rotation matrix close to m and places it into R