VR-Forces 4.1.1 Class Documentation
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends
MAKVRinTerra::DtProj Class Reference

Represents some coordinate system. More...

Inheritance diagram for MAKVRinTerra::DtProj:
Inheritance graph
[legend]

Classes

class  Bounds
struct  ProjData

Public Types

enum  AngleUnits { Degrees, Radians }
enum  AngleOrder { LatLong, LongLat }
typedef boost::shared_ptr< DtProjPtr
typedef boost::shared_ptr
< const DtProj
CPtr
typedef boost::error_info
< DtProj, DtProj::CPtr
ErrorInfo
 Exception stuff.
typedef boost::tuple
< ErrorInfo, ErrorInfo
ConvertErrorInfo
typedef TaggedException< DtProjException

Public Member Functions

std::string projString () const
void print (std::ostream &) const
std::string print () const
const Coordinate_SystemcoordinateSystem () const
const DtCoordTransform * transform () const
bool is2D () const
 Is this coordinate system a 2 dimensional?
bool inRadians () const
bool inDegrees () const
bool isLatLong () const
bool isLongLat () const
bool isGeodetic () const
bool isGeocentric () const
bool isFlatEarth () const
bool isUTM () const
void setAngleUnits (AngleUnits)
Compare

Logical comparison of coordinate systems

bool operator== (const DtProj &) const
bool operator!= (const DtProj &p) const

Static Public Member Functions

static DtProj::CPtr Make (std::string projString, boost::optional< AngleUnits >=boost::optional< AngleUnits >())
 Factory functions.
static DtProj::CPtr Make (const Coordinate_System *)
static DtProj::CPtr Make (std::auto_ptr< Coordinate_System >)
static DtProj::CPtr Make (const OGRSpatialReference *)
static DtProj::CPtr Make (const osgEarth::SpatialReference *)
static DtProj::Ptr MakeCopy (const DtProj &)
static DtProj::CPtr LocalTopo (const DtProj &, DtPoint localposition)
static DtProj::CPtr Geocentric ()
static DtProj::CPtr FlatEarth ()
static DtProj::CPtr Geodetic ()
static DtProj::CPtr GeodeticInDegrees ()
static void ConvertToSame2DProjection (DtFeatureGeometry &, DtFeatureGeometry &)
Convert

Functions for converting points to and from different coordinate systems.

static void Convert (const DtProj &from, const DtProj &to, long count, int offset, double *x, double *y, double *z)
static void Convert (const DtProj &from, const DtProj &to, long count, DtPoint *points)
static void Convert (const DtProj &from, const DtProj &to, DtPoint &point)
static void Convert (const DtProj &from, const DtProj &to, std::vector< DtPoint > &points)
static void Convert (const DtProj &from, const DtProj &to, std::list< DtPoint > &points)

Private Member Functions

 DtProj (std::string projString, boost::optional< AngleUnits >)
 DtProj (std::auto_ptr< Coordinate_System > cs)
 DtProj (const DtProj &, DtPoint)
 DtProj (const DtProj &)

Private Attributes

boost::shared_ptr< ProjDatamyProjData
boost::shared_ptr
< Coordinate_System
myCS
boost::optional< AngleUnitsmyAngleUnits
boost::optional< AngleOrdermyAngleOrder
boost::optional< DtCoordTransform > myTransform

Friends

class TaggedException< DtProj >

Detailed Description

Represents some coordinate system.

The terms "coordinate system", "projection", "spatial reference", etc. are not used rigorously in this description. DtProj is meant to create object which can be associated with points. Pairs of DtProj objects can be used to convert between coordinate systems DtProj objects are thread safe. DtProj objects are designed to be managed using boost::shared_ptr. Many functions accept DtProj objects by reference but may obtain shared pointers by calling shared_from_this.

Member Typedef Documentation

typedef boost::shared_ptr<DtProj> MAKVRinTerra::DtProj::Ptr
typedef boost::shared_ptr<const DtProj> MAKVRinTerra::DtProj::CPtr

Exception stuff.

Member Enumeration Documentation

Enumerator:
Degrees 
Radians 
Enumerator:
LatLong 
LongLat 

Constructor & Destructor Documentation

MAKVRinTerra::DtProj::DtProj ( std::string  projString,
boost::optional< AngleUnits  
)
explicitprivate
MAKVRinTerra::DtProj::DtProj ( std::auto_ptr< Coordinate_System cs)
explicitprivate
MAKVRinTerra::DtProj::DtProj ( const DtProj ,
DtPoint   
)
explicitprivate
MAKVRinTerra::DtProj::DtProj ( const DtProj )
explicitprivate

Member Function Documentation

static DtProj::CPtr MAKVRinTerra::DtProj::Make ( std::string  projString,
boost::optional< AngleUnits = boost::optional< AngleUnits >() 
)
static

Factory functions.

static DtProj::CPtr MAKVRinTerra::DtProj::Make ( const Coordinate_System )
static
static DtProj::CPtr MAKVRinTerra::DtProj::Make ( std::auto_ptr< Coordinate_System )
static
static DtProj::CPtr MAKVRinTerra::DtProj::Make ( const OGRSpatialReference *  )
static
static DtProj::CPtr MAKVRinTerra::DtProj::Make ( const osgEarth::SpatialReference *  )
static
static DtProj::Ptr MAKVRinTerra::DtProj::MakeCopy ( const DtProj )
static
static DtProj::CPtr MAKVRinTerra::DtProj::LocalTopo ( const DtProj ,
DtPoint  localposition 
)
static
static DtProj::CPtr MAKVRinTerra::DtProj::Geocentric ( )
static
static DtProj::CPtr MAKVRinTerra::DtProj::FlatEarth ( )
static
static DtProj::CPtr MAKVRinTerra::DtProj::Geodetic ( )
static
static DtProj::CPtr MAKVRinTerra::DtProj::GeodeticInDegrees ( )
static
std::string MAKVRinTerra::DtProj::projString ( ) const
void MAKVRinTerra::DtProj::print ( std::ostream &  ) const
std::string MAKVRinTerra::DtProj::print ( ) const
const Coordinate_System* MAKVRinTerra::DtProj::coordinateSystem ( ) const
const DtCoordTransform* MAKVRinTerra::DtProj::transform ( ) const
bool MAKVRinTerra::DtProj::is2D ( ) const

Is this coordinate system a 2 dimensional?

bool MAKVRinTerra::DtProj::inRadians ( ) const
bool MAKVRinTerra::DtProj::inDegrees ( ) const
bool MAKVRinTerra::DtProj::isLatLong ( ) const
bool MAKVRinTerra::DtProj::isLongLat ( ) const
bool MAKVRinTerra::DtProj::isGeodetic ( ) const
bool MAKVRinTerra::DtProj::isGeocentric ( ) const
bool MAKVRinTerra::DtProj::isFlatEarth ( ) const
bool MAKVRinTerra::DtProj::isUTM ( ) const
void MAKVRinTerra::DtProj::setAngleUnits ( AngleUnits  )
bool MAKVRinTerra::DtProj::operator== ( const DtProj ) const
bool MAKVRinTerra::DtProj::operator!= ( const DtProj p) const
inline
static void MAKVRinTerra::DtProj::Convert ( const DtProj from,
const DtProj to,
long  count,
int  offset,
double *  x,
double *  y,
double *  z 
)
static
static void MAKVRinTerra::DtProj::Convert ( const DtProj from,
const DtProj to,
long  count,
DtPoint points 
)
static
static void MAKVRinTerra::DtProj::Convert ( const DtProj from,
const DtProj to,
DtPoint point 
)
static
static void MAKVRinTerra::DtProj::Convert ( const DtProj from,
const DtProj to,
std::vector< DtPoint > &  points 
)
static
static void MAKVRinTerra::DtProj::Convert ( const DtProj from,
const DtProj to,
std::list< DtPoint > &  points 
)
static
static void MAKVRinTerra::DtProj::ConvertToSame2DProjection ( DtFeatureGeometry ,
DtFeatureGeometry  
)
static

Friends And Related Function Documentation

friend class TaggedException< DtProj >
friend

Member Data Documentation

boost::shared_ptr<ProjData> MAKVRinTerra::DtProj::myProjData
private
boost::shared_ptr<Coordinate_System> MAKVRinTerra::DtProj::myCS
private
boost::optional<AngleUnits> MAKVRinTerra::DtProj::myAngleUnits
private
boost::optional<AngleOrder> MAKVRinTerra::DtProj::myAngleOrder
private
boost::optional<DtCoordTransform> MAKVRinTerra::DtProj::myTransform
private

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

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)