Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vcsl_spatial_transformation Class Referenceabstract

Transformation between 2 spatial coordinate systems. More...

#include <vcsl_spatial_transformation.h>

Inheritance diagram for vcsl_spatial_transformation:
Inheritance graph
[legend]

Public Member Functions

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

 vcsl_spatial_transformation ()=default
 

Protected Attributes

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

Detailed Description

Transformation between 2 spatial coordinate systems.

A spatial transformation can be static or dynamic

Definition at line 42 of file vcsl_spatial_transformation.h.

Constructor & Destructor Documentation

◆ vcsl_spatial_transformation() [1/2]

vcsl_spatial_transformation::vcsl_spatial_transformation ( )
protecteddefault

◆ vcsl_spatial_transformation() [2/2]

vcsl_spatial_transformation::vcsl_spatial_transformation ( vcsl_spatial_transformation const &  x)
inline

Definition at line 54 of file vcsl_spatial_transformation.h.

◆ ~vcsl_spatial_transformation()

vcsl_spatial_transformation::~vcsl_spatial_transformation ( )
overridedefault

Member Function Documentation

◆ beat()

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

Return the list of time clocks.

Definition at line 65 of file vcsl_spatial_transformation.h.

◆ duration()

unsigned int vcsl_spatial_transformation::duration ( ) const
inline

Return the time duration.

Definition at line 68 of file vcsl_spatial_transformation.h.

◆ execute()

virtual vnl_vector<double> vcsl_spatial_transformation::execute ( const vnl_vector< double > &  v,
double  time 
) const
pure virtual

◆ interpolators()

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

Return the list of interpolators.

Definition at line 71 of file vcsl_spatial_transformation.h.

◆ inverse()

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_composition, vcsl_scale, vcsl_displacement, vcsl_matrix, and vcsl_cylindrical_to_cartesian_3d.

◆ is_invertible()

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_composition, vcsl_perspective, vcsl_rotation, vcsl_matrix, vcsl_translation, vcsl_scale, and vcsl_cylindrical_to_cartesian_3d.

◆ is_valid()

virtual bool vcsl_spatial_transformation::is_valid ( ) const
inlinevirtual

◆ lmi()

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

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

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

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

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)
inline

Set the list of time clocks.

Definition at line 109 of file vcsl_spatial_transformation.h.

◆ set_interpolators()

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

Set the list of interpolators.

Definition at line 112 of file vcsl_spatial_transformation.h.

◆ set_static()

void vcsl_spatial_transformation::set_static ( )

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

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_
protected

List of time clocks.

Definition at line 147 of file vcsl_spatial_transformation.h.

◆ interpolator_

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

Definition at line 148 of file vcsl_spatial_transformation.h.


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