Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

srm::BaseSRF_WithEllipsoidalHeight Class Reference

The BaseSRF_WithEllipsoidalHeight abstract class is the base class for the 3D SRFs with ellipsoidal heights. More...

#include <BaseSRF.h>

Inheritance diagram for srm::BaseSRF_WithEllipsoidalHeight:

Inheritance graph
[legend]
Collaboration diagram for srm::BaseSRF_WithEllipsoidalHeight:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual bool isA (SRF_ClassType type) const
 Returns true if this SRF is of the given class type.

virtual CoordSurfcreateSurfaceCoordinate (SRM_Long_Float coord_surf_comp1, SRM_Long_Float coord_surf_comp2)=0
 Creates a surface coordinate object.

virtual void getSurfaceCoordinateValues (const CoordSurf &coord_surf, SRM_Long_Float &coord_surf_comp1, SRM_Long_Float &coord_surf_comp2) const
 Retrieves a coordinate surface component values.

virtual void freeSurfaceCoordinate (CoordSurf *coord_surf)
 Frees a surface coordinate object.

virtual void getAssociatedSurfaceCoordinate (const Coord3D &coord, CoordSurf &on_surface_coord)
 Returns a surface coordinate associated with a 3D coordinate.

virtual void getPromotedSurfaceCoordinate (const CoordSurf &surf_coord, Coord3D &three_d_coord)
 Returns a 3D coordinate representing the same location as specified by a surface coordinate.

virtual SRF_LocalTangentSpaceEuclideancreateLocalTangentSpaceEuclideanSRF (const CoordSurf &surf_coord, SRM_Long_Float azimuth, SRM_Long_Float false_x_origin, SRM_Long_Float false_y_origin, SRM_Long_Float offset_height)
 Creates a Local Tangent Space Euclidean SRF with natural origin at a given position.

virtual SRM_Long_Float calculateVerticalSeparationOffset (SRM_DSS_Code vos, const CoordSurf &surf_coord)
 Returns the vertical separation (in metres) at a position.


Static Public Member Functions

SRM_SRFS_Code_Info getNaturalSRFSetMemberCode (CoordSurf &src_coord, SRM_ORM_Code orm_dst, SRM_RT_Code rt_dst, SRM_SRFS_Code tgt_srfs)
 Computes the natural SRF Set member code (region) where the Surface coordinate is located in the target SRF Set.

BaseSRF_3DgetNaturalSRFSetMember (CoordSurf &src_coord, SRM_ORM_Code orm_dst, SRM_RT_Code rt_dst, SRM_SRFS_Code tgt_srfs)
 Computes the natural SRF Set member instance that the surface coordinate is located in the target SRF Set.

SRM_Long_Float calculateEuclideanDistance (const CoordSurf &coord1, const CoordSurf &coord2)
 Returns the euclidean distance (in metres) between two surface coordinates.

SRM_Long_Float calculateGeodesicDistance (const CoordSurf &src_coord, const CoordSurf &des_coord)
 Returns the geodesic distance (in metres) between two surface coordinates.


Protected Member Functions

 BaseSRF_WithEllipsoidalHeight (void *impl)
 No stack allocation.

BaseSRF_WithEllipsoidalHeightoperator= (const BaseSRF &)
 No copy constructor.

virtual ~BaseSRF_WithEllipsoidalHeight ()
 Use release().


Detailed Description

The BaseSRF_WithEllipsoidalHeight abstract class is the base class for the 3D SRFs with ellipsoidal heights.

SRFs are allocated by the API, and when no longer needed they should be released by calling the release() method.

Author:
Warren Macchi, David Shen
See also:
BaseSRF_3D, BaseSRF

Definition at line 1002 of file BaseSRF.h.


Member Function Documentation

SRM_Long_Float srm::BaseSRF_WithEllipsoidalHeight::calculateEuclideanDistance const CoordSurf coord1,
const CoordSurf coord2
[static]
 

Returns the euclidean distance (in metres) between two surface coordinates.

Note:
The input coordinates can be created from any SRF.
Exceptions:
This method throws srm::Exception

SRM_Long_Float srm::BaseSRF_WithEllipsoidalHeight::calculateGeodesicDistance const CoordSurf src_coord,
const CoordSurf des_coord
[static]
 

Returns the geodesic distance (in metres) between two surface coordinates.

Exceptions:
This method throws srm::Exception

virtual SRM_Long_Float srm::BaseSRF_WithEllipsoidalHeight::calculateVerticalSeparationOffset SRM_DSS_Code  vos,
const CoordSurf surf_coord
[virtual]
 

Returns the vertical separation (in metres) at a position.

Exceptions:
This method throws srm::Exception

virtual SRF_LocalTangentSpaceEuclidean* srm::BaseSRF_WithEllipsoidalHeight::createLocalTangentSpaceEuclideanSRF const CoordSurf surf_coord,
SRM_Long_Float  azimuth,
SRM_Long_Float  false_x_origin,
SRM_Long_Float  false_y_origin,
SRM_Long_Float  offset_height
[virtual]
 

Creates a Local Tangent Space Euclidean SRF with natural origin at a given position.

Exceptions:
This method throws srm::Exception

virtual CoordSurf* srm::BaseSRF_WithEllipsoidalHeight::createSurfaceCoordinate SRM_Long_Float  coord_surf_comp1,
SRM_Long_Float  coord_surf_comp2
[pure virtual]
 

Creates a surface coordinate object.

Exceptions:
This method throws srm::Exception

Implemented in srm::SRF_Celestiodetic, srm::SRF_EquidistantCylindrical, srm::SRF_LambertConformalConic, srm::SRF_Mercator, srm::SRF_Planetodetic, srm::SRF_PolarStereographic, srm::SRF_TransverseMercator, and srm::SRF_ObliqueMercatorSpherical.

virtual void srm::BaseSRF_WithEllipsoidalHeight::freeSurfaceCoordinate CoordSurf coord_surf  )  [virtual]
 

Frees a surface coordinate object.

Exceptions:
This method throws srm::Exception

virtual void srm::BaseSRF_WithEllipsoidalHeight::getAssociatedSurfaceCoordinate const Coord3D coord,
CoordSurf on_surface_coord
[virtual]
 

Returns a surface coordinate associated with a 3D coordinate.

Exceptions:
This method throws srm::Exception

BaseSRF_3D* srm::BaseSRF_WithEllipsoidalHeight::getNaturalSRFSetMember CoordSurf src_coord,
SRM_ORM_Code  orm_dst,
SRM_RT_Code  rt_dst,
SRM_SRFS_Code  tgt_srfs
[static]
 

Computes the natural SRF Set member instance that the surface coordinate is located in the target SRF Set.

Parameters:
src_coord in : the source surface coordinate in an SRF
orm_dst in : the ORM for the destination SRF Set
rt_dst in : the Hsr for the destination SRF Set
tgt_srfs in : the destination SRF Set Code
Returns:
the SRF Set Member instance for the destination SRF Set
Exceptions:
This method throws srm::Exception

SRM_SRFS_Code_Info srm::BaseSRF_WithEllipsoidalHeight::getNaturalSRFSetMemberCode CoordSurf src_coord,
SRM_ORM_Code  orm_dst,
SRM_RT_Code  rt_dst,
SRM_SRFS_Code  tgt_srfs
[static]
 

Computes the natural SRF Set member code (region) where the Surface coordinate is located in the target SRF Set.

Parameters:
src_coord in : the source surface coordinate in an SRF
orm_dst in : the ORM for the destination SRF Set
rt_dst in : the RT for the destination SRF Set
tgt_srfs in : the destination SRF Set Code
Returns:
the SRF Set Member code for the destination SRF Set
Exceptions:
This method throws srm::Exception

virtual void srm::BaseSRF_WithEllipsoidalHeight::getPromotedSurfaceCoordinate const CoordSurf surf_coord,
Coord3D three_d_coord
[virtual]
 

Returns a 3D coordinate representing the same location as specified by a surface coordinate.

Exceptions:
This method throws srm::Exception

virtual void srm::BaseSRF_WithEllipsoidalHeight::getSurfaceCoordinateValues const CoordSurf coord_surf,
SRM_Long_Float coord_surf_comp1,
SRM_Long_Float coord_surf_comp2
const [virtual]
 

Retrieves a coordinate surface component values.

Exceptions:
This method throws srm::Exception


The documentation for this class was generated from the following file:
Spatial Reference Model C++ API Version 4.1 - 26 Jun 2006
Copyright © 2006 SEDRIS Docs by Doxygen 1.3.2