Public Member Functions | Protected Member Functions | Protected Attributes
vcsl_spatial_transformation Class Reference

Transformation between 2 spatial coordinate systems. More...

#include <vcsl_spatial_transformation.h>

Inheritance diagram for vcsl_spatial_transformation:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 vcsl_spatial_transformation (vcsl_spatial_transformation const &x)
virtual ~vcsl_spatial_transformation ()
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 ?.
virtual bool is_invertible (double time) const =0
 Is `this' invertible at time `time'?.
virtual bool is_valid () const
 Is `this' correctly set ?.
int matching_interval (double time) const
 Return the index of the beat inferior or equal to `time'.
virtual vnl_vector< double > execute (const vnl_vector< double > &v, double time) const =0
 Image of `v' by `this'.
virtual vnl_vector< double > inverse (const vnl_vector< double > &v, double time) const =0
 Image of `v' by the inverse of `this'.
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 Member Functions

 vcsl_spatial_transformation ()

Protected Attributes

vcl_vector< double > beat_
 List of time clocks.
vcl_vector< vcsl_interpolatorinterpolator_

Detailed Description

Transformation between 2 spatial coordinate systems.

A spatial transformation can be static or dynamic

Definition at line 39 of file vcsl_spatial_transformation.h.


Constructor & Destructor Documentation

vcsl_spatial_transformation::vcsl_spatial_transformation ( ) [inline, protected]

Definition at line 47 of file vcsl_spatial_transformation.h.

vcsl_spatial_transformation::vcsl_spatial_transformation ( vcsl_spatial_transformation const &  x) [inline]

Definition at line 51 of file vcsl_spatial_transformation.h.

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

Definition at line 55 of file vcsl_spatial_transformation.h.


Member Function Documentation

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

Return the list of time clocks.

Definition at line 62 of file vcsl_spatial_transformation.h.

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

Return the time duration.

Definition at line 65 of file vcsl_spatial_transformation.h.

virtual vnl_vector<double> vcsl_spatial_transformation::execute ( const vnl_vector< double > &  v,
double  time 
) const [pure virtual]
vcl_vector<vcsl_interpolator> vcsl_spatial_transformation::interpolators ( ) const [inline]

Return the list of interpolators.

Definition at line 68 of file vcsl_spatial_transformation.h.

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

Image of `v' by the inverse of `this'.

REQUIRE: is_invertible(time) REQUIRE: is_valid()

Implemented in vcsl_rotation, vcsl_perspective, vcsl_translation, vcsl_scale, vcsl_composition, vcsl_displacement, vcsl_matrix, and vcsl_cylindrical_to_cartesian_3d.

virtual bool vcsl_spatial_transformation::is_invertible ( double  time) const [pure virtual]

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

REQUIRE: valid_time(time)

Implemented in vcsl_perspective, vcsl_rotation, vcsl_matrix, vcsl_composition, vcsl_translation, vcsl_scale, and vcsl_cylindrical_to_cartesian_3d.

virtual bool vcsl_spatial_transformation::is_valid ( ) const [inline, virtual]
vnl_matrix< double > vcsl_spatial_transformation::lmi ( const vnl_matrix< double > &  m0,
const vnl_matrix< double > &  m1,
int  index,
double  time 
) const

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

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

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

Linear interpolation on vnl_vectors.

Definition at line 66 of file vcsl_spatial_transformation.cxx.

int vcsl_spatial_transformation::matching_interval ( double  time) const

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]

Set the list of time clocks.

Definition at line 106 of file vcsl_spatial_transformation.h.

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

Set the list of interpolators.

Definition at line 109 of file vcsl_spatial_transformation.h.

void vcsl_spatial_transformation::set_static ( )

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

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]

List of time clocks.

Definition at line 144 of file vcsl_spatial_transformation.h.

Definition at line 145 of file vcsl_spatial_transformation.h.


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