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

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

#include <vcsl_geographic.h>

Inheritance diagram for vcsl_geographic:
Inheritance graph
[legend]

Public Member Functions

 ~vcsl_geographic () override=default
 
vcsl_spheroid_sptr spheroid () const
 Return the spheroid. More...
 
void set_spheroid (vcsl_spheroid_sptr const &s)
 Set the spheroid. More...
 
const vcsl_spatialcast_to_spatial () const override
 
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
 
std::vector< double > beat () const
 Return the list of time clocks. More...
 
unsigned int duration () const
 Return the time duration. More...
 
std::vector< vcsl_spatial_sptrparent () const
 Return the list of parent coordinate system along the time. More...
 
std::vector< vcsl_spatial_transformation_sptrmotion () const
 Return the list of transformations along the time. More...
 
bool valid_time (double time) const
 Is ‘time’ between the two time bounds ?. More...
 
void set_beat (std::vector< double > const &new_beat)
 Set the list of time clocks. More...
 
void set_parent (std::vector< vcsl_spatial_sptr > const &new_parent)
 Set the list of parent coordinate system along the time. More...
 
void set_motion (std::vector< vcsl_spatial_transformation_sptr > const &m)
 Set the list of transformations along the time. More...
 
void set_unique (const vcsl_spatial_sptr &new_parent, const vcsl_spatial_transformation_sptr &new_motion)
 Set the unique parent and the unique motion. More...
 
virtual int matching_interval (double time) const
 Return the index of the beat inferior or equal to ‘time’. More...
 
virtual bool path_from_local_to_cs_exists (const vcsl_spatial_sptr &other, double time)
 Does a path from ‘this’ to ‘other’ exist ?. More...
 
virtual bool is_absolute (double time) const
 Is ‘this’ an absolute spatial coordinate system at time ‘time’?. More...
 
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’. More...
 
virtual void set_graph (const vcsl_graph_sptr &new_graph)
 
int dimensionality () const
 Number of axes. More...
 
bool valid_axis (unsigned int i) const
 Is ‘i’ an index on an axis ?. More...
 
vcsl_axis_sptr axis (int i) const
 Return the axis ‘i’. More...
 
vnl_vector< double > from_cs_to_standard_units (const vnl_vector< double > &v) const
 Convert ‘v’, expressed with cs units, to standard units. More...
 
vnl_vector< double > from_standard_units_to_cs (const vnl_vector< double > &v) const
 Convert ‘v’, expressed with standard units, to cs units. More...
 
void ref ()
 
void unref ()
 
long 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 ?. More...
 
virtual void path_from_local_to_cs (const vcsl_spatial_sptr &other, double time, std::vector< vcsl_spatial_transformation_sptr > &path, VCSL_SPATIAL_VECTOR_BOOL &sens)
 Find the sequence of transformations from ‘this’ to ‘other’. More...
 
virtual bool recursive_path_from_local_to_cs (const vcsl_spatial_sptr &other, double time, std::vector< vcsl_spatial_transformation_sptr > &path, VCSL_SPATIAL_VECTOR_BOOL &sens)
 Find the sequence of transformations from ‘this’ to ‘other’. More...
 

Protected Attributes

vcsl_spheroid_sptr spheroid_
 Spheroid. More...
 
std::vector< vcsl_spatial_sptrparent_
 successive parents of ‘this’ along the time. More...
 
std::vector< double > beat_
 Clock times. More...
 
std::vector< vcsl_spatial_transformation_sptrmotion_
 successive transformations from ‘this’ to ‘parent’ along the time. More...
 
std::vector< vcsl_spatial_sptrpotential_children_
 List of spatial coordinate system that can be child of ‘this’ at a time. More...
 
vcsl_graph_sptr graph_
 List of all the spatial coordinate system of the graph. More...
 
bool reached_
 True if ‘this’ is already reached during the search path algorithm. More...
 
std::vector< vcsl_axis_sptraxes_
 List of axes. More...
 

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::vcsl_geographic ( )
protected

Definition at line 8 of file vcsl_geographic.cxx.

◆ ~vcsl_geographic()

vcsl_geographic::~vcsl_geographic ( )
overridedefault

Member Function Documentation

◆ axis()

vcsl_axis_sptr vcsl_coordinate_system::axis ( int  i) const
inherited

Return the axis ‘i’.

REQUIRE: valid_axis(i)

Definition at line 14 of file vcsl_coordinate_system.cxx.

◆ beat()

std::vector<double> vcsl_spatial::beat ( ) const
inlineinherited

Return the list of time clocks.

Definition at line 71 of file vcsl_spatial.h.

◆ cast_to_cartesian_2d()

virtual const vcsl_cartesian_2d* vcsl_spatial::cast_to_cartesian_2d ( ) const
inlinevirtualinherited

Reimplemented in vcsl_cartesian_2d.

Definition at line 60 of file vcsl_spatial.h.

◆ cast_to_cartesian_3d()

virtual const vcsl_cartesian_3d* vcsl_spatial::cast_to_cartesian_3d ( ) const
inlinevirtualinherited

Reimplemented in vcsl_cartesian_3d.

Definition at line 62 of file vcsl_spatial.h.

◆ cast_to_cylindrical()

virtual const vcsl_cylindrical* vcsl_spatial::cast_to_cylindrical ( ) const
inlinevirtualinherited

Reimplemented in vcsl_cylindrical.

Definition at line 63 of file vcsl_spatial.h.

◆ cast_to_polar()

virtual const vcsl_polar* vcsl_spatial::cast_to_polar ( ) const
inlinevirtualinherited

Reimplemented in vcsl_polar.

Definition at line 61 of file vcsl_spatial.h.

◆ cast_to_spatial()

const vcsl_spatial* vcsl_spatial::cast_to_spatial ( ) const
inlineoverridevirtualinherited

Reimplemented from vcsl_coordinate_system.

Definition at line 59 of file vcsl_spatial.h.

◆ cast_to_spherical()

virtual const vcsl_spherical* vcsl_spatial::cast_to_spherical ( ) const
inlinevirtualinherited

Reimplemented in vcsl_spherical.

Definition at line 64 of file vcsl_spatial.h.

◆ dimensionality()

int vcsl_coordinate_system::dimensionality ( ) const
inlineinherited

Number of axes.

Definition at line 52 of file vcsl_coordinate_system.h.

◆ duration()

unsigned int vcsl_spatial::duration ( ) const
inlineinherited

Return the time duration.

Definition at line 74 of file vcsl_spatial.h.

◆ from_cs_to_standard_units()

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 27 of file vcsl_coordinate_system.cxx.

◆ from_local_to_cs()

vnl_vector< double > vcsl_spatial::from_local_to_cs ( const vnl_vector< double > &  v,
const vcsl_spatial_sptr other,
double  time 
)
virtualinherited

Return v but expressed in the spatial coordinate system ‘other’.

REQUIRE: path_from_local_to_cs_exists(other,time)

Definition at line 293 of file vcsl_spatial.cxx.

◆ from_standard_units_to_cs()

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 44 of file vcsl_coordinate_system.cxx.

◆ is_absolute()

bool vcsl_spatial::is_absolute ( double  time) const
virtualinherited

Is ‘this’ an absolute spatial coordinate system at time ‘time’?.

REQUIRE: valid_time(time)

Definition at line 271 of file vcsl_spatial.cxx.

◆ matching_interval()

int vcsl_spatial::matching_interval ( double  time) const
virtualinherited

Return the index of the beat inferior or equal to ‘time’.

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

Definition at line 74 of file vcsl_spatial.cxx.

◆ motion()

std::vector<vcsl_spatial_transformation_sptr> vcsl_spatial::motion ( ) const
inlineinherited

Return the list of transformations along the time.

Definition at line 80 of file vcsl_spatial.h.

◆ parent()

std::vector<vcsl_spatial_sptr> vcsl_spatial::parent ( ) const
inlineinherited

Return the list of parent coordinate system along the time.

Definition at line 77 of file vcsl_spatial.h.

◆ path_from_local_to_cs()

void vcsl_spatial::path_from_local_to_cs ( const vcsl_spatial_sptr other,
double  time,
std::vector< vcsl_spatial_transformation_sptr > &  path,
VCSL_SPATIAL_VECTOR_BOOL sens 
)
protectedvirtualinherited

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 168 of file vcsl_spatial.cxx.

◆ path_from_local_to_cs_exists()

bool vcsl_spatial::path_from_local_to_cs_exists ( const vcsl_spatial_sptr other,
double  time 
)
virtualinherited

Does a path from ‘this’ to ‘other’ exist ?.

Definition at line 97 of file vcsl_spatial.cxx.

◆ recursive_path_from_local_to_cs()

bool vcsl_spatial::recursive_path_from_local_to_cs ( const vcsl_spatial_sptr other,
double  time,
std::vector< vcsl_spatial_transformation_sptr > &  path,
VCSL_SPATIAL_VECTOR_BOOL sens 
)
protectedvirtualinherited

Find the sequence of transformations from ‘this’ to ‘other’.

Called only by path_from_local_to_cs()

Definition at line 189 of file vcsl_spatial.cxx.

◆ recursive_path_from_local_to_cs_exists()

bool vcsl_spatial::recursive_path_from_local_to_cs_exists ( const vcsl_spatial_sptr other,
double  time 
)
protectedvirtualinherited

Does a path from ‘this’ to ‘other’ exist ?.

Called only by path_to_cs_exists()

Definition at line 109 of file vcsl_spatial.cxx.

◆ set_beat()

void vcsl_spatial::set_beat ( std::vector< double > const &  new_beat)
inlineinherited

Set the list of time clocks.

Definition at line 90 of file vcsl_spatial.h.

◆ set_graph()

void vcsl_spatial::set_graph ( const vcsl_graph_sptr new_graph)
virtualinherited

Definition at line 322 of file vcsl_spatial.cxx.

◆ set_motion()

void vcsl_spatial::set_motion ( std::vector< vcsl_spatial_transformation_sptr > const &  m)
inlineinherited

Set the list of transformations along the time.

Definition at line 96 of file vcsl_spatial.h.

◆ set_parent()

void vcsl_spatial::set_parent ( std::vector< vcsl_spatial_sptr > const &  new_parent)
inherited

Set the list of parent coordinate system along the time.

Definition at line 33 of file vcsl_spatial.cxx.

◆ set_spheroid()

void vcsl_geographic::set_spheroid ( vcsl_spheroid_sptr const &  s)
inline

Set the spheroid.

Definition at line 54 of file vcsl_geographic.h.

◆ set_unique()

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 60 of file vcsl_spatial.cxx.

◆ spheroid()

vcsl_spheroid_sptr vcsl_geographic::spheroid ( ) const
inline

Return the spheroid.

Definition at line 47 of file vcsl_geographic.h.

◆ valid_axis()

bool vcsl_coordinate_system::valid_axis ( unsigned int  i) const
inlineinherited

Is ‘i’ an index on an axis ?.

Definition at line 55 of file vcsl_coordinate_system.h.

◆ valid_time()

bool vcsl_spatial::valid_time ( double  time) const
inherited

Is ‘time’ between the two time bounds ?.

Definition at line 22 of file vcsl_spatial.cxx.

Member Data Documentation

◆ axes_

std::vector<vcsl_axis_sptr> vcsl_coordinate_system::axes_
protectedinherited

List of axes.

Definition at line 86 of file vcsl_coordinate_system.h.

◆ beat_

std::vector<double> vcsl_spatial::beat_
protectedinherited

Clock times.

Definition at line 175 of file vcsl_spatial.h.

◆ graph_

vcsl_graph_sptr vcsl_spatial::graph_
protectedinherited

List of all the spatial coordinate system of the graph.

Definition at line 184 of file vcsl_spatial.h.

◆ motion_

std::vector<vcsl_spatial_transformation_sptr> vcsl_spatial::motion_
protectedinherited

successive transformations from ‘this’ to ‘parent’ along the time.

Definition at line 178 of file vcsl_spatial.h.

◆ parent_

std::vector<vcsl_spatial_sptr> vcsl_spatial::parent_
protectedinherited

successive parents of ‘this’ along the time.

Definition at line 172 of file vcsl_spatial.h.

◆ potential_children_

std::vector<vcsl_spatial_sptr> vcsl_spatial::potential_children_
protectedinherited

List of spatial coordinate system that can be child of ‘this’ at a time.

Definition at line 181 of file vcsl_spatial.h.

◆ reached_

bool vcsl_spatial::reached_
protectedinherited

True if ‘this’ is already reached during the search path algorithm.

Definition at line 187 of file vcsl_spatial.h.

◆ spheroid_

vcsl_spheroid_sptr vcsl_geographic::spheroid_
protected

Spheroid.

Definition at line 62 of file vcsl_geographic.h.


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