LocalKernel

Definition

The concept LocalKernel describes the set of requirements to be fulfilled by any class used to instantiate the second template parameter of the class Monge_via_jet_fitting<DataKernel,LocalKernel,KernelConverters,SvdTraits>.

This concept provides the geometric primitives used for the computations in the class Monge_via_jet_fitting.

Requirements

In the class Monge_via_jet_fitting the scalar type, LocalKernel::FT, must be the same as that of the SvdTraits concept : SvdTraits::FT.

The type LocalKernel::FT is a model of the FieldWithSqrt concept.

Types

LocalKernel::FT
The scalar type.

LocalKernel::Point_3
The point type.

LocalKernel::Vector_3
The vector type.

LocalKernel::LKMatrix
For dimension 2 and 3 square matrices.

LocalKernel::Aff_transformation
For 3d affine tranformation.

Operations

The scalar type LocalKernel::FT must be a field type with a square root.
FT LK.Lsqrt ( FT x)

Only constructors (from 3 scalars and copy constructors) and access methods to coordinates x(), y(), z() are needed for the point and vector types.

MATRICES

Definition

An instance of data type LKMatrix is a matrix of variables of number type FT.

Types

LKMatrix::iterator : bidirectional iterator for accessing all components row-wise.

Creation

LKMatrix M(int n): creates an instance M of type LKMatrix of dimension n × n initialized to the zero matrix.

Operations

LKMatrix LK.inverse ( LKMatrix M, FT& D) returns the inverse matrix of M. More precisely, 1/D times the matrix returned is the inverse of M. Precondition: determinant(M) != 0. Precondition: M is square.

int LK.sign_of_determinant ( LKMatrix M)
returns the sign of the determinant of M. Precondition: M is square.

Affine Transformations

Definition

The class Aff_transformation represents three-dimensional affine transformations.

Creation

Aff_transformation( const FT &m00, const FT &m01, const FT &m02, const FT &m03, const FT &m10, const FT &m11, const FT &m12, const FT &m13, const FT &m20, const FT &m21, const FT &m22, const FT &m23); introduces a general affine transformation; the matrix mij for i and j from 0 to 2 defines the scaling and rotational part of the transformation, while the vector (m03, m13, m23) contains the translational part.

Aff_transformation( const FT &m00, const FT &m01, const FT &m02, const FT &m10, const FT &m11, const FT &m12, const FT &m20, const FT &m21, const FT &m22); introduces a general affine transformation without translational part.

Operations

Aff_transformation_3 t.operator* ( s); composes two affine transformations.

Aff_transformation_3 t.inverse ( s); gives the inverse transformation.

Eigen Decomposition of a Symmetric Matrix

void LK.eigen_symmetric ( const FT *mat, const int n, FT *eigen_vectors, FT *eigen_values)

See Also

The DataKernel and SvdTraits concepts.