3D coordinate system specified by distance rho, angle theta and distance z. More...
#include <vcsl_cylindrical.h>
Public Member Functions | |
vcsl_cylindrical () | |
virtual | ~vcsl_cylindrical () |
virtual const vcsl_cylindrical * | cast_to_cylindrical () const |
virtual const vcsl_spatial * | cast_to_spatial () const |
virtual const vcsl_cartesian_2d * | cast_to_cartesian_2d () const |
virtual const vcsl_polar * | cast_to_polar () const |
virtual const vcsl_cartesian_3d * | cast_to_cartesian_3d () const |
virtual const vcsl_spherical * | cast_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_sptr > | parent () 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 | |
vcl_vector< vcsl_spatial_sptr > | parent_ |
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_sptr > | potential_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_sptr > | axes_ |
List of axes. |
3D coordinate system specified by distance rho, angle theta and distance z.
Definition at line 18 of file vcsl_cylindrical.h.
vcsl_cylindrical::vcsl_cylindrical | ( | ) |
Definition at line 9 of file vcsl_cylindrical.cxx.
virtual vcsl_cylindrical::~vcsl_cylindrical | ( | ) | [inline, virtual] |
Definition at line 30 of file vcsl_cylindrical.h.
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_spatial::cast_to_cartesian_3d | ( | ) | const [inline, virtual, inherited] |
Reimplemented in vcsl_cartesian_3d.
Definition at line 66 of file vcsl_spatial.h.
virtual const vcsl_cylindrical* vcsl_cylindrical::cast_to_cylindrical | ( | ) | const [inline, virtual] |
Reimplemented from vcsl_spatial.
Definition at line 36 of file vcsl_cylindrical.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.
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_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].
new_parent | CS that 'this' is derived from. |
new_motion | The 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.
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.