CGAL 4.12.1 - Triangulated Surface Mesh Deformation
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.

Refines:
DefaultConstructible
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

## 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