Represent a location relative to the earth. More...
#include <vcsl_geographic.h>
Public Member Functions | |
virtual | ~vcsl_geographic () |
vcsl_spheroid_sptr | spheroid () const |
Return the spheroid. | |
void | set_spheroid (vcsl_spheroid_sptr const &s) |
Set the spheroid. | |
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_cylindrical * | cast_to_cylindrical () 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 | |
vcsl_geographic () | |
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 | |
vcsl_spheroid_sptr | spheroid_ |
Spheroid. | |
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. |
Represent a location relative to the earth.
3D coordinate system that is intended to represent a location relative to the earth, although its use is not restricted to earthbound coordinate systems. See the book "Map Projections Used by the U.S. Geological Survey" (Snyder, John P., "Map Projections Used by the U.S. Geological Survey," Geological Survey Bulletin 1532, U.S. Government Printing Office, Washington, 1982.) for further detail on most of these coordinate systems.
Definition at line 27 of file vcsl_geographic.h.
vcsl_geographic::vcsl_geographic | ( | ) | [protected] |
Definition at line 8 of file vcsl_geographic.cxx.
virtual vcsl_geographic::~vcsl_geographic | ( | ) | [inline, virtual] |
Definition at line 40 of file vcsl_geographic.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_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.
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_geographic::set_spheroid | ( | vcsl_spheroid_sptr const & | s | ) | [inline] |
Set the spheroid.
Definition at line 54 of file vcsl_geographic.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].
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.
vcsl_spheroid_sptr vcsl_geographic::spheroid | ( | ) | const [inline] |
Return the spheroid.
Definition at line 47 of file vcsl_geographic.h.
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.
vcsl_spheroid_sptr vcsl_geographic::spheroid_ [protected] |
Spheroid.
Definition at line 62 of file vcsl_geographic.h.