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

Represent a location relative to the earth. More...

#include <vcsl_geographic.h>

Inheritance diagram for vcsl_geographic:
Inheritance graph
[legend]

List of all members.

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_spatialcast_to_spatial () const
virtual const vcsl_cartesian_2dcast_to_cartesian_2d () const
virtual const vcsl_polarcast_to_polar () const
virtual const vcsl_cartesian_3dcast_to_cartesian_3d () 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

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

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.


Constructor & Destructor Documentation

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.


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_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].

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.

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.


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.

Spheroid.

Definition at line 62 of file vcsl_geographic.h.


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