Public Member Functions | Protected Attributes
vcsl_composition Class Reference

Composition of transformations. More...

#include <vcsl_composition.h>

Inheritance diagram for vcsl_composition:
Inheritance graph
[legend]

List of all members.

Public Member Functions

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

Protected Attributes

vcl_vector
< vcsl_spatial_transformation_sptr
transformations_
vcl_vector< double > beat_
 List of time clocks.
vcl_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 24 of file vcsl_composition.h.


Constructor & Destructor Documentation

vcsl_composition::vcsl_composition ( ) [inline]

Definition at line 33 of file vcsl_composition.h.

virtual vcsl_composition::~vcsl_composition ( ) [inline, virtual]

Definition at line 36 of file vcsl_composition.h.


Member Function Documentation

vcl_vector<double> vcsl_spatial_transformation::beat ( ) const [inline, inherited]

Return the list of time clocks.

Definition at line 62 of file vcsl_spatial_transformation.h.

vcl_vector<vcsl_spatial_transformation_sptr> vcsl_composition::composition ( ) const [inline]

Return the list of transformations.

Definition at line 52 of file vcsl_composition.h.

unsigned int vcsl_spatial_transformation::duration ( ) const [inline, inherited]

Return the time duration.

Definition at line 65 of file vcsl_spatial_transformation.h.

vnl_vector< double > vcsl_composition::execute ( const vnl_vector< double > &  v,
double  time 
) const [virtual]

Image of `v' by `this'.

REQUIRE: is_valid() Pure virtual function of vcsl_spatial_transformation

Implements vcsl_spatial_transformation.

Definition at line 39 of file vcsl_composition.cxx.

vcl_vector<vcsl_interpolator> vcsl_spatial_transformation::interpolators ( ) const [inline, inherited]

Return the list of interpolators.

Definition at line 68 of file vcsl_spatial_transformation.h.

vnl_vector< double > vcsl_composition::inverse ( const vnl_vector< double > &  v,
double  time 
) const [virtual]

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 58 of file vcsl_composition.cxx.

bool vcsl_composition::is_invertible ( double  time) const [virtual]

Is `this' invertible at time `time'?.

REQUIRE: valid_time(time) Pure virtual function of vcsl_spatial_transformation

Implements vcsl_spatial_transformation.

Definition at line 9 of file vcsl_composition.cxx.

bool vcsl_composition::is_valid ( ) const [virtual]

Is `this' correctly set ?.

Virtual function of vcsl_spatial_transformation

Reimplemented from vcsl_spatial_transformation.

Definition at line 26 of file vcsl_composition.cxx.

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 91 of file vcsl_spatial_transformation.cxx.

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 118 of file vcsl_spatial_transformation.cxx.

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

Linear interpolation on scalar values.

Definition at line 50 of file vcsl_spatial_transformation.cxx.

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 66 of file vcsl_spatial_transformation.cxx.

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 19 of file vcsl_spatial_transformation.cxx.

void vcsl_spatial_transformation::set_beat ( vcl_vector< double > const &  new_beat) [inline, inherited]

Set the list of time clocks.

Definition at line 106 of file vcsl_spatial_transformation.h.

void vcsl_composition::set_composition ( vcl_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 60 of file vcsl_composition.h.

void vcsl_spatial_transformation::set_interpolators ( vcl_vector< vcsl_interpolator > const &  i) [inline, inherited]

Set the list of interpolators.

Definition at line 109 of file vcsl_spatial_transformation.h.

void vcsl_spatial_transformation::set_static ( ) [inherited]

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

Definition at line 41 of file vcsl_spatial_transformation.cxx.

bool vcsl_spatial_transformation::valid_time ( double  time) const [inherited]

Is `time' between the two time bounds ?.

Definition at line 9 of file vcsl_spatial_transformation.cxx.


Member Data Documentation

vcl_vector<double> vcsl_spatial_transformation::beat_ [protected, inherited]

List of time clocks.

Definition at line 144 of file vcsl_spatial_transformation.h.

Definition at line 145 of file vcsl_spatial_transformation.h.

Definition at line 79 of file vcsl_composition.h.


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