Public Member Functions | Protected Attributes | List of all members
vcsl_composition Class Reference

Composition of transformations. More...

#include <vcsl_composition.h>

Inheritance diagram for vcsl_composition:
Inheritance graph
[legend]

Public Member Functions

 vcsl_composition ()=default
 
 ~vcsl_composition () override=default
 
bool is_invertible (double time) const override
 Is ‘this’ invertible at time ‘time’?. More...
 
bool is_valid () const override
 Is ‘this’ correctly set ?. More...
 
std::vector< vcsl_spatial_transformation_sptrcomposition () const
 Return the list of transformations. More...
 
void set_composition (std::vector< vcsl_spatial_transformation_sptr > const &t)
 Set the list of transformations of the composition. More...
 
vnl_vector< double > execute (const vnl_vector< double > &v, double time) const override
 Image of ‘v’ by ‘this’. More...
 
vnl_vector< double > inverse (const vnl_vector< double > &v, double time) const override
 Image of ‘v’ by the inverse of ‘this’. More...
 
std::vector< double > beat () const
 Return the list of time clocks. More...
 
unsigned int duration () const
 Return the time duration. More...
 
std::vector< vcsl_interpolatorinterpolators () const
 Return the list of interpolators. More...
 
bool valid_time (double time) const
 Is ‘time’ between the two time bounds ?. More...
 
int matching_interval (double time) const
 Return the index of the beat inferior or equal to ‘time’. More...
 
void set_beat (std::vector< double > const &new_beat)
 Set the list of time clocks. More...
 
void set_interpolators (std::vector< vcsl_interpolator > const &i)
 Set the list of interpolators. More...
 
void set_static ()
 Empty the time clock and interpolators, thereby making the transf static. More...
 
double lsi (double v0, double v1, int index, double time) const
 Linear interpolation on scalar values. More...
 
vnl_vector< double > lvi (const vnl_vector< double > &v0, const vnl_vector< double > &v1, int index, double time) const
 Linear interpolation on vnl_vectors. More...
 
vnl_matrix< double > lmi (const vnl_matrix< double > &m0, const vnl_matrix< double > &m1, int index, double time) const
 Linear interpolation on vnl_matrices. More...
 
vnl_quaternion< double > lqi (const vnl_quaternion< double > &v0, const vnl_quaternion< double > &v1, int index, double time) const
 Linear interpolation on quaternions. More...
 
void ref ()
 
void unref ()
 
long get_references () const
 
bool is_referenced () const
 

Protected Attributes

std::vector< vcsl_spatial_transformation_sptrtransformations_
 
std::vector< double > beat_
 List of time clocks. More...
 
std::vector< vcsl_interpolatorinterpolator_
 

Detailed Description

Composition of transformations.

This transformation handles a composition of transformations, that is, at a given time, all the transformations are applied on a given point

Definition at line 27 of file vcsl_composition.h.

Constructor & Destructor Documentation

◆ vcsl_composition()

vcsl_composition::vcsl_composition ( )
default

◆ ~vcsl_composition()

vcsl_composition::~vcsl_composition ( )
overridedefault

Member Function Documentation

◆ beat()

std::vector<double> vcsl_spatial_transformation::beat ( ) const
inlineinherited

Return the list of time clocks.

Definition at line 65 of file vcsl_spatial_transformation.h.

◆ composition()

std::vector<vcsl_spatial_transformation_sptr> vcsl_composition::composition ( ) const
inline

Return the list of transformations.

Definition at line 55 of file vcsl_composition.h.

◆ duration()

unsigned int vcsl_spatial_transformation::duration ( ) const
inlineinherited

Return the time duration.

Definition at line 68 of file vcsl_spatial_transformation.h.

◆ execute()

vnl_vector< double > vcsl_composition::execute ( const vnl_vector< double > &  v,
double  time 
) const
overridevirtual

Image of ‘v’ by ‘this’.

REQUIRE: is_valid() Pure virtual function of vcsl_spatial_transformation

Implements vcsl_spatial_transformation.

Definition at line 42 of file vcsl_composition.cxx.

◆ interpolators()

std::vector<vcsl_interpolator> vcsl_spatial_transformation::interpolators ( ) const
inlineinherited

Return the list of interpolators.

Definition at line 71 of file vcsl_spatial_transformation.h.

◆ inverse()

vnl_vector< double > vcsl_composition::inverse ( const vnl_vector< double > &  v,
double  time 
) const
overridevirtual

Image of ‘v’ by the inverse of ‘this’.

REQUIRE: is_valid() REQUIRE: is_invertible(time) Pure virtual function of vcsl_spatial_transformation

Implements vcsl_spatial_transformation.

Definition at line 61 of file vcsl_composition.cxx.

◆ is_invertible()

bool vcsl_composition::is_invertible ( double  time) const
overridevirtual

Is ‘this’ invertible at time ‘time’?.

REQUIRE: valid_time(time) Pure virtual function of vcsl_spatial_transformation

Implements vcsl_spatial_transformation.

Definition at line 12 of file vcsl_composition.cxx.

◆ is_valid()

bool vcsl_composition::is_valid ( ) const
overridevirtual

Is ‘this’ correctly set ?.

Virtual function of vcsl_spatial_transformation

Reimplemented from vcsl_spatial_transformation.

Definition at line 29 of file vcsl_composition.cxx.

◆ lmi()

vnl_matrix< double > vcsl_spatial_transformation::lmi ( const vnl_matrix< double > &  m0,
const vnl_matrix< double > &  m1,
int  index,
double  time 
) const
inherited

Linear interpolation on vnl_matrices.

Definition at line 94 of file vcsl_spatial_transformation.cxx.

◆ lqi()

vnl_quaternion< double > vcsl_spatial_transformation::lqi ( const vnl_quaternion< double > &  v0,
const vnl_quaternion< double > &  v1,
int  index,
double  time 
) const
inherited

Linear interpolation on quaternions.

Definition at line 121 of file vcsl_spatial_transformation.cxx.

◆ lsi()

double vcsl_spatial_transformation::lsi ( double  v0,
double  v1,
int  index,
double  time 
) const
inherited

Linear interpolation on scalar values.

Definition at line 53 of file vcsl_spatial_transformation.cxx.

◆ lvi()

vnl_vector< double > vcsl_spatial_transformation::lvi ( const vnl_vector< double > &  v0,
const vnl_vector< double > &  v1,
int  index,
double  time 
) const
inherited

Linear interpolation on vnl_vectors.

Definition at line 69 of file vcsl_spatial_transformation.cxx.

◆ matching_interval()

int vcsl_spatial_transformation::matching_interval ( double  time) const
inherited

Return the index of the beat inferior or equal to ‘time’.

REQUIRE: valid_time(time)

Definition at line 22 of file vcsl_spatial_transformation.cxx.

◆ set_beat()

void vcsl_spatial_transformation::set_beat ( std::vector< double > const &  new_beat)
inlineinherited

Set the list of time clocks.

Definition at line 109 of file vcsl_spatial_transformation.h.

◆ set_composition()

void vcsl_composition::set_composition ( std::vector< vcsl_spatial_transformation_sptr > const &  t)
inline

Set the list of transformations of the composition.

The transformations are performed in the order of the list

Definition at line 63 of file vcsl_composition.h.

◆ set_interpolators()

void vcsl_spatial_transformation::set_interpolators ( std::vector< vcsl_interpolator > const &  i)
inlineinherited

Set the list of interpolators.

Definition at line 112 of file vcsl_spatial_transformation.h.

◆ set_static()

void vcsl_spatial_transformation::set_static ( )
inherited

Empty the time clock and interpolators, thereby making the transf static.

Definition at line 44 of file vcsl_spatial_transformation.cxx.

◆ valid_time()

bool vcsl_spatial_transformation::valid_time ( double  time) const
inherited

Is ‘time’ between the two time bounds ?.

Definition at line 12 of file vcsl_spatial_transformation.cxx.

Member Data Documentation

◆ beat_

std::vector<double> vcsl_spatial_transformation::beat_
protectedinherited

List of time clocks.

Definition at line 147 of file vcsl_spatial_transformation.h.

◆ interpolator_

std::vector<vcsl_interpolator> vcsl_spatial_transformation::interpolator_
protectedinherited

Definition at line 148 of file vcsl_spatial_transformation.h.

◆ transformations_

std::vector<vcsl_spatial_transformation_sptr> vcsl_composition::transformations_
protected

Definition at line 82 of file vcsl_composition.h.


The documentation for this class was generated from the following files: