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

3D Cartesian coordinate system. More...

#include <vcsl_cartesian_3d.h>

Inheritance diagram for vcsl_cartesian_3d:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 vcsl_cartesian_3d ()
virtual ~vcsl_cartesian_3d ()
virtual const vcsl_cartesian_3dcast_to_cartesian_3d () const
bool is_right_handed () const
 Are the axes of `this' right handed ?.
void set_right_handed (bool val)
 Set whether the coordinate system is right handed or not.
virtual const vcsl_spatialcast_to_spatial () const
virtual const vcsl_cartesian_2dcast_to_cartesian_2d () const
virtual const vcsl_polarcast_to_polar () const
virtual const vcsl_cylindricalcast_to_cylindrical () const
virtual const vcsl_sphericalcast_to_spherical () const
vcl_vector< double > beat () const
 Return the list of time clocks.
unsigned int duration () const
 Return the time duration.
vcl_vector< vcsl_spatial_sptrparent () const
 Return the list of parent coordinate system along the time.
vcl_vector
< vcsl_spatial_transformation_sptr
motion () const
 Return the list of transformations along the time.
bool valid_time (double time) const
 Is `time' between the two time bounds ?.
void set_beat (vcl_vector< double > const &new_beat)
 Set the list of time clocks.
void set_parent (vcl_vector< vcsl_spatial_sptr > const &new_parent)
 Set the list of parent coordinate system along the time.
void set_motion (vcl_vector< vcsl_spatial_transformation_sptr > const &m)
 Set the list of transformations along the time.
void set_unique (const vcsl_spatial_sptr &new_parent, const vcsl_spatial_transformation_sptr &new_motion)
 Set the unique parent and the unique motion.
virtual int matching_interval (double time) const
 Return the index of the beat inferior or equal to `time'.
virtual bool path_from_local_to_cs_exists (const vcsl_spatial_sptr &other, double time)
 Does a path from `this' to `other' exist ?.
virtual bool is_absolute (double time) const
 Is `this' an absolute spatial coordinate system at time `time'?.
virtual vnl_vector< double > from_local_to_cs (const vnl_vector< double > &v, const vcsl_spatial_sptr &other, double time)
 Return v but expressed in the spatial coordinate system `other'.
virtual void set_graph (const vcsl_graph_sptr &new_graph)
int dimensionality () const
 Number of axes.
bool valid_axis (unsigned int i) const
 Is `i' an index on an axis ?.
vcsl_axis_sptr axis (int i) const
 Return the axis `i'.
vnl_vector< double > from_cs_to_standard_units (const vnl_vector< double > &v) const
 Convert `v', expressed with cs units, to standard units.
vnl_vector< double > from_standard_units_to_cs (const vnl_vector< double > &v) const
 Convert `v', expressed with standard units, to cs units.
void ref ()
void unref ()
int get_references () const
bool is_referenced () const

Protected Member Functions

virtual bool recursive_path_from_local_to_cs_exists (const vcsl_spatial_sptr &other, double time)
 Does a path from `this' to `other' exist ?.
virtual void path_from_local_to_cs (const vcsl_spatial_sptr &other, double time, vcl_vector< vcsl_spatial_transformation_sptr > &path, VCSL_SPATIAL_VECTOR_BOOL &sens)
 Find the sequence of transformations from `this' to `other'.
virtual bool recursive_path_from_local_to_cs (const vcsl_spatial_sptr &other, double time, vcl_vector< vcsl_spatial_transformation_sptr > &path, VCSL_SPATIAL_VECTOR_BOOL &sens)
 Find the sequence of transformations from `this' to `other'.

Protected Attributes

bool right_handed_
 True if the axes of `this' are right handed.
vcl_vector< vcsl_spatial_sptrparent_
 successive parents of `this' along the time.
vcl_vector< double > beat_
 Clock times.
vcl_vector
< vcsl_spatial_transformation_sptr
motion_
 successive transformations from `this' to `parent' along the time.
vcl_vector< vcsl_spatial_sptrpotential_children_
 List of spatial coordinate system that can be child of `this' at a time.
vcsl_graph_sptr graph_
 List of all the spatial coordinate system of the graph.
bool reached_
 True if `this' is already reached during the search path algorithm.
vcl_vector< vcsl_axis_sptraxes_
 List of axes.

Detailed Description

3D Cartesian coordinate system.

Definition at line 18 of file vcsl_cartesian_3d.h.


Constructor & Destructor Documentation

vcsl_cartesian_3d::vcsl_cartesian_3d ( )

Definition at line 8 of file vcsl_cartesian_3d.cxx.

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

Definition at line 30 of file vcsl_cartesian_3d.h.


Member Function Documentation

vcsl_axis_sptr vcsl_coordinate_system::axis ( int  i) const [inherited]

Return the axis `i'.

REQUIRE: valid_axis(i)

Definition at line 11 of file vcsl_coordinate_system.cxx.

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

Return the list of time clocks.

Definition at line 75 of file vcsl_spatial.h.

virtual const vcsl_cartesian_2d* vcsl_spatial::cast_to_cartesian_2d ( ) const [inline, virtual, inherited]

Reimplemented in vcsl_cartesian_2d.

Definition at line 64 of file vcsl_spatial.h.

virtual const vcsl_cartesian_3d* vcsl_cartesian_3d::cast_to_cartesian_3d ( ) const [inline, virtual]

Reimplemented from vcsl_spatial.

Definition at line 36 of file vcsl_cartesian_3d.h.

virtual const vcsl_cylindrical* vcsl_spatial::cast_to_cylindrical ( ) const [inline, virtual, inherited]

Reimplemented in vcsl_cylindrical.

Definition at line 67 of file vcsl_spatial.h.

virtual const vcsl_polar* vcsl_spatial::cast_to_polar ( ) const [inline, virtual, inherited]

Reimplemented in vcsl_polar.

Definition at line 65 of file vcsl_spatial.h.

virtual const vcsl_spatial* vcsl_spatial::cast_to_spatial ( ) const [inline, virtual, inherited]

Reimplemented from vcsl_coordinate_system.

Definition at line 63 of file vcsl_spatial.h.

virtual const vcsl_spherical* vcsl_spatial::cast_to_spherical ( ) const [inline, virtual, inherited]

Reimplemented in vcsl_spherical.

Definition at line 68 of file vcsl_spatial.h.

int vcsl_coordinate_system::dimensionality ( ) const [inline, inherited]

Number of axes.

Definition at line 49 of file vcsl_coordinate_system.h.

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

Return the time duration.

Definition at line 78 of file vcsl_spatial.h.

vnl_vector< double > vcsl_coordinate_system::from_cs_to_standard_units ( const vnl_vector< double > &  v) const [inherited]

Convert `v', expressed with cs units, to standard units.

REQUIRE: v.size()==dimensionality()

Definition at line 24 of file vcsl_coordinate_system.cxx.

vnl_vector< double > vcsl_spatial::from_local_to_cs ( const vnl_vector< double > &  v,
const vcsl_spatial_sptr other,
double  time 
) [virtual, inherited]

Return v but expressed in the spatial coordinate system `other'.

REQUIRE: path_from_local_to_cs_exists(other,time)

Definition at line 290 of file vcsl_spatial.cxx.

vnl_vector< double > vcsl_coordinate_system::from_standard_units_to_cs ( const vnl_vector< double > &  v) const [inherited]

Convert `v', expressed with standard units, to cs units.

REQUIRE: v.size()==dimensionality()

Definition at line 41 of file vcsl_coordinate_system.cxx.

bool vcsl_spatial::is_absolute ( double  time) const [virtual, inherited]

Is `this' an absolute spatial coordinate system at time `time'?.

REQUIRE: valid_time(time)

Definition at line 268 of file vcsl_spatial.cxx.

bool vcsl_cartesian_3d::is_right_handed ( ) const [inline]

Are the axes of `this' right handed ?.

Definition at line 43 of file vcsl_cartesian_3d.h.

int vcsl_spatial::matching_interval ( double  time) const [virtual, inherited]

Return the index of the beat inferior or equal to `time'.

REQUIRE: parent().size()!=0 REQUIRE: valid_time(time)

Definition at line 71 of file vcsl_spatial.cxx.

vcl_vector<vcsl_spatial_transformation_sptr> vcsl_spatial::motion ( ) const [inline, inherited]

Return the list of transformations along the time.

Definition at line 84 of file vcsl_spatial.h.

vcl_vector<vcsl_spatial_sptr> vcsl_spatial::parent ( ) const [inline, inherited]

Return the list of parent coordinate system along the time.

Definition at line 81 of file vcsl_spatial.h.

void vcsl_spatial::path_from_local_to_cs ( const vcsl_spatial_sptr other,
double  time,
vcl_vector< vcsl_spatial_transformation_sptr > &  path,
VCSL_SPATIAL_VECTOR_BOOL &  sens 
) [protected, virtual, inherited]

Find the sequence of transformations from `this' to `other'.

REQUIRE: path.size()==0 and sens.size()==0 REQUIRE: path_from_local_to_cs_exists()

Definition at line 165 of file vcsl_spatial.cxx.

bool vcsl_spatial::path_from_local_to_cs_exists ( const vcsl_spatial_sptr other,
double  time 
) [virtual, inherited]

Does a path from `this' to `other' exist ?.

Definition at line 94 of file vcsl_spatial.cxx.

bool vcsl_spatial::recursive_path_from_local_to_cs ( const vcsl_spatial_sptr other,
double  time,
vcl_vector< vcsl_spatial_transformation_sptr > &  path,
VCSL_SPATIAL_VECTOR_BOOL &  sens 
) [protected, virtual, inherited]

Find the sequence of transformations from `this' to `other'.

Called only by path_from_local_to_cs()

Definition at line 186 of file vcsl_spatial.cxx.

bool vcsl_spatial::recursive_path_from_local_to_cs_exists ( const vcsl_spatial_sptr other,
double  time 
) [protected, virtual, inherited]

Does a path from `this' to `other' exist ?.

Called only by path_to_cs_exists()

Definition at line 106 of file vcsl_spatial.cxx.

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

Set the list of time clocks.

Definition at line 94 of file vcsl_spatial.h.

void vcsl_spatial::set_graph ( const vcsl_graph_sptr new_graph) [virtual, inherited]

Definition at line 319 of file vcsl_spatial.cxx.

void vcsl_spatial::set_motion ( vcl_vector< vcsl_spatial_transformation_sptr > const &  m) [inline, inherited]

Set the list of transformations along the time.

Definition at line 100 of file vcsl_spatial.h.

void vcsl_spatial::set_parent ( vcl_vector< vcsl_spatial_sptr > const &  new_parent) [inherited]

Set the list of parent coordinate system along the time.

Definition at line 30 of file vcsl_spatial.cxx.

void vcsl_cartesian_3d::set_right_handed ( bool  val) [inline]

Set whether the coordinate system is right handed or not.

Definition at line 50 of file vcsl_cartesian_3d.h.

void vcsl_spatial::set_unique ( const vcsl_spatial_sptr new_parent,
const vcsl_spatial_transformation_sptr new_motion 
) [inherited]

Set the unique parent and the unique motion.

Can be called to initialize a CS for the first time. Dynamically allocates space for parent_ and motion_. Makes new_parent and new_motion the first element of each, respectively.

Does not set beat_. Effectively, new_parent and new_motion are valid for all times. However, a subsequent call to set_beat() could add a list of clocks with a time corresponding to (*parent_)[0] and (*motion_)[0].

Parameters:
new_parentCS that 'this' is derived from.
new_motionThe transformation from new_parent to 'this'.

Definition at line 57 of file vcsl_spatial.cxx.

bool vcsl_coordinate_system::valid_axis ( unsigned int  i) const [inline, inherited]

Is `i' an index on an axis ?.

Definition at line 52 of file vcsl_coordinate_system.h.

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

Is `time' between the two time bounds ?.

Definition at line 19 of file vcsl_spatial.cxx.


Member Data Documentation

vcl_vector<vcsl_axis_sptr> vcsl_coordinate_system::axes_ [protected, inherited]

List of axes.

Definition at line 83 of file vcsl_coordinate_system.h.

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

Clock times.

Definition at line 179 of file vcsl_spatial.h.

vcsl_graph_sptr vcsl_spatial::graph_ [protected, inherited]

List of all the spatial coordinate system of the graph.

Definition at line 188 of file vcsl_spatial.h.

vcl_vector<vcsl_spatial_transformation_sptr> vcsl_spatial::motion_ [protected, inherited]

successive transformations from `this' to `parent' along the time.

Definition at line 182 of file vcsl_spatial.h.

vcl_vector<vcsl_spatial_sptr> vcsl_spatial::parent_ [protected, inherited]

successive parents of `this' along the time.

Definition at line 176 of file vcsl_spatial.h.

vcl_vector<vcsl_spatial_sptr> vcsl_spatial::potential_children_ [protected, inherited]

List of spatial coordinate system that can be child of `this' at a time.

Definition at line 185 of file vcsl_spatial.h.

bool vcsl_spatial::reached_ [protected, inherited]

True if `this' is already reached during the search path algorithm.

Definition at line 191 of file vcsl_spatial.h.

True if the axes of `this' are right handed.

Definition at line 58 of file vcsl_cartesian_3d.h.


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