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

Affine rotation. More...

#include <vcsl_displacement.h>

Inheritance diagram for vcsl_displacement:
Inheritance graph
[legend]

Public Member Functions

 vcsl_displacement ()=default
 
 ~vcsl_displacement () override=default
 
bool is_valid () const override
 Is ‘this’ correctly set ?. More...
 
void set_static_point (vnl_vector< double > const &new_point)
 Set the point for a static displacement. More...
 
void set_point (list_of_vectors const &new_point)
 Set the variation of the point of the axis along the time. More...
 
list_of_vectors point () const
 Return the variation of the point of the axis along the time. 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...
 
bool is_invertible (double) const override
 Is ‘this’ invertible at time ‘time’?. More...
 
bool are_unit_axes (list_of_vectors const &new_axis) const
 Are ‘new_vector’ a list of unit vectors ?. More...
 
bool is_2d () const
 Is ‘this’ a 2D rotation ?. More...
 
bool is_3d () const
 Is ‘this’ a 3D rotation ?. More...
 
void set_2d ()
 Set ‘this’ as a 2D rotation. More...
 
void set_3d ()
 Set ‘this’ as a 3D rotation. More...
 
void set_static_2d (double new_angle)
 Set the parameters of a static 2D rotation. More...
 
void set_static (double new_angle, vnl_vector< double > const &new_axis)
 Set the parameters of a static rotation. More...
 
void set_static ()
 Empty the time clock and interpolators, thereby making the transf static. More...
 
void set_angle (list_of_scalars const &new_angle)
 Set the angle variation along the time in radians. More...
 
list_of_scalars angle () const
 Return the angle variation along the time in radians. More...
 
void set_axis (list_of_vectors const &new_axis)
 Set the direction vector variation along the time. More...
 
list_of_vectors axis () const
 Return the direction variation along the time. 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...
 
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

vnl_vector< double > vector_value (double time) const
 Compute the value of the vector at time ‘time’. More...
 
vnl_quaternion< double > quaternion (double time) const
 Compute the value of the quaternion at time ‘time’. More...
 

Protected Attributes

list_of_vectors point_
 Variation of the point of the axis along the time. More...
 
bool mode_2d_
 False if ‘this’ is a 3D rotation, true if ‘this’ is a 2D rotation. More...
 
list_of_scalars angle_
 Angle variation along the time in radians. More...
 
list_of_vectors axis_
 Direction vector variation along the time. More...
 
std::vector< double > beat_
 List of time clocks. More...
 
std::vector< vcsl_interpolatorinterpolator_
 

Detailed Description

Affine rotation.

A displacement rotates a point with a given angle around an axis defined by a point and a unit vector

Definition at line 23 of file vcsl_displacement.h.

Constructor & Destructor Documentation

◆ vcsl_displacement()

vcsl_displacement::vcsl_displacement ( )
default

◆ ~vcsl_displacement()

vcsl_displacement::~vcsl_displacement ( )
overridedefault

Member Function Documentation

◆ angle()

list_of_scalars vcsl_rotation::angle ( ) const
inlineinherited

Return the angle variation along the time in radians.

Definition at line 89 of file vcsl_rotation.h.

◆ are_unit_axes()

bool vcsl_rotation::are_unit_axes ( list_of_vectors const &  new_axis) const
inherited

Are ‘new_vector’ a list of unit vectors ?.

Definition at line 11 of file vcsl_rotation.cxx.

◆ axis()

list_of_vectors vcsl_rotation::axis ( ) const
inlineinherited

Return the direction variation along the time.

Definition at line 96 of file vcsl_rotation.h.

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

◆ 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_displacement::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 21 of file vcsl_displacement.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_displacement::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 60 of file vcsl_displacement.cxx.

◆ is_2d()

bool vcsl_rotation::is_2d ( ) const
inlineinherited

Is ‘this’ a 2D rotation ?.

Definition at line 60 of file vcsl_rotation.h.

◆ is_3d()

bool vcsl_rotation::is_3d ( ) const
inlineinherited

Is ‘this’ a 3D rotation ?.

Definition at line 63 of file vcsl_rotation.h.

◆ is_invertible()

bool vcsl_rotation::is_invertible ( double  ) const
inlineoverridevirtualinherited

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

REQUIRE: valid_time(time) Pure virtual function of vcsl_spatial_transformation

Implements vcsl_spatial_transformation.

Definition at line 47 of file vcsl_rotation.h.

◆ is_valid()

bool vcsl_displacement::is_valid ( ) const
inlineoverridevirtual

Is ‘this’ correctly set ?.

Virtual function of vcsl_spatial_transformation

Reimplemented from vcsl_spatial_transformation.

Definition at line 43 of file vcsl_displacement.h.

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

◆ point()

list_of_vectors vcsl_displacement::point ( ) const
inline

Return the variation of the point of the axis along the time.

Definition at line 57 of file vcsl_displacement.h.

◆ quaternion()

vnl_quaternion< double > vcsl_rotation::quaternion ( double  time) const
protectedinherited

Compute the value of the quaternion at time ‘time’.

Definition at line 122 of file vcsl_rotation.cxx.

◆ set_2d()

void vcsl_rotation::set_2d ( )
inlineinherited

Set ‘this’ as a 2D rotation.

Definition at line 70 of file vcsl_rotation.h.

◆ set_3d()

void vcsl_rotation::set_3d ( )
inlineinherited

Set ‘this’ as a 3D rotation.

Definition at line 73 of file vcsl_rotation.h.

◆ set_angle()

void vcsl_rotation::set_angle ( list_of_scalars const &  new_angle)
inlineinherited

Set the angle variation along the time in radians.

Definition at line 86 of file vcsl_rotation.h.

◆ set_axis()

void vcsl_rotation::set_axis ( list_of_vectors const &  new_axis)
inherited

Set the direction vector variation along the time.

REQUIRE: are_unit_vectors(new_vector)

Definition at line 50 of file vcsl_rotation.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_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_point()

void vcsl_displacement::set_point ( list_of_vectors const &  new_point)
inline

Set the variation of the point of the axis along the time.

Definition at line 54 of file vcsl_displacement.h.

◆ set_static() [1/2]

void vcsl_rotation::set_static ( double  new_angle,
vnl_vector< double > const &  new_axis 
)
inherited

Set the parameters of a static rotation.

Definition at line 37 of file vcsl_rotation.cxx.

◆ set_static() [2/2]

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.

◆ set_static_2d()

void vcsl_rotation::set_static_2d ( double  new_angle)
inherited

Set the parameters of a static 2D rotation.

Definition at line 27 of file vcsl_rotation.cxx.

◆ set_static_point()

void vcsl_displacement::set_static_point ( vnl_vector< double > const &  new_point)

Set the point for a static displacement.

Definition at line 11 of file vcsl_displacement.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.

◆ vector_value()

vnl_vector< double > vcsl_displacement::vector_value ( double  time) const
protected

Compute the value of the vector at time ‘time’.

Definition at line 98 of file vcsl_displacement.cxx.

Member Data Documentation

◆ angle_

list_of_scalars vcsl_rotation::angle_
protectedinherited

Angle variation along the time in radians.

Definition at line 125 of file vcsl_rotation.h.

◆ axis_

list_of_vectors vcsl_rotation::axis_
protectedinherited

Direction vector variation along the time.

Definition at line 128 of file vcsl_rotation.h.

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

◆ mode_2d_

bool vcsl_rotation::mode_2d_
protectedinherited

False if ‘this’ is a 3D rotation, true if ‘this’ is a 2D rotation.

Definition at line 122 of file vcsl_rotation.h.

◆ point_

list_of_vectors vcsl_displacement::point_
protected

Variation of the point of the axis along the time.

Definition at line 81 of file vcsl_displacement.h.


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