VR-Forces 4.0.4 Class Documentation
include/terrainCS/geodCrdSys.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1998 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: geodCrdSys.h,v $ $Revision: 1.13 $ $State: Exp $
00007 *********************************************************************/
00008 #ifndef geodCrdSys_H_
00009 #define geodCrdSys_H_
00010 
00011 //
00012 // \file geodCrdSys.h Contains the geodetic coordinate system class declaration.
00013 // 
00014 #include "terrainCS/terrainCSDefines.h"
00015 #include "terrainCS/coordSystem.h"
00016 
00017 // class DtGeodeticCS:
00018 //
00019 // Instances of DtGeodeticCS are used by the terrain objects
00020 // for performing coordinate conversions from geocentric to geodetic.
00021 class DT_DLL_terrainCS DtGeodeticCS : public Coordinate_System
00022 {
00023 public:
00024    // constructor
00025    DtGeodeticCS(bool setUseDynamicSceneOrigin = false,
00026       double dynamicSceneOriginDeadband = 0.0);
00027 
00028    // copy constructor
00029    DtGeodeticCS(const DtGeodeticCS& orig);
00030 
00031    // destructor
00032    virtual ~DtGeodeticCS();
00033 
00034    // assignment operator
00035    DtGeodeticCS& operator=(
00036       const DtGeodeticCS& orig);
00037 
00038    // Clone operator
00039    virtual Coordinate_System* clone() const;
00040 
00041    // coordinates in the local (i.e., projected) coordinate system only
00042    // consist of X and Y, but we use a three element vector to store them so a
00043    // programmer can use the Z value for height above terrain.
00044    virtual void dis2local(const DtVector& in, DtVector& out) const;
00045    virtual void local2dis(const DtVector& in, DtVector& out) const;
00046 
00047    // Returns the geodetic coordinate for a given local position.  Local position
00048    // must be specified with x-component as longitude (in radians), y-component
00049    // as latitude (in radians), and z-component as altitude (in meters).
00050    virtual void localToGeodetic(const DtVector& localPosition,
00051       DtGeodeticCoord& geodeticPosition) const;
00052 
00053    // Returns the local coordinate for a given geodetic position.  Returned local
00054    // position x-component is longitude (in radians), y-component is latitude 
00055    // (in radians), and z-component is altitude (in meters).  
00056    virtual void geodeticToLocal(const DtGeodeticCoord& geodeticPosition,
00057       DtVector& localPosition) const;
00058 
00059    // Returns a unit vector pointing downward (gravity) at a given
00060    // location.
00061    virtual DtVector down(const DtVector& location) const;
00062 
00063    // Returns a coordinate transformation object for going between 
00064    // topo and local coordinates, at a given location.  It is up to the
00065    // caller to ensure that topoToLocal and localToTopo are valid pointers.
00066    virtual void topoToLocal(const DtVector& localPosition, 
00067       DtDcm& topoToLocal) const;
00068    virtual void localToTopo(const DtVector& localPosition, 
00069       DtDcm& localToTopo) const;
00070 
00071    // Returns name of coordinate system
00072    virtual DtString coordinateSystemName() const;
00073 
00074 private:
00075    // These functions are not implemented for this class, so they are hidden.
00076    using Coordinate_System::dis2local;
00077    using Coordinate_System::local2dis;
00078    using Coordinate_System::localToGeodetic;
00079    using Coordinate_System::geodeticToLocal;
00080 };
00081 
00082 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)