![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: terrainCoordinateSystems.h,v $ $Revision: 1.12 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef terrainCoordinateSystems_H_ 00013 #define terrainCoordinateSystems_H_ 00014 00015 #include "terrainqt/terrainqtDefines.h" 00016 #include "drawerNative/coordUtils.h" 00017 #include "drawerNative/convUtils.h" 00018 #include <matrix/vlTaitBryan.h> 00019 00020 #include <matrix/vlVector.h> 00021 00022 class Coordinate_System; 00023 class DtTerrainDatabase; 00024 00025 class DT_DLL_terrainqt DtTerrainCoordinateSystem : public DtCoordinateSystem 00026 { 00027 Q_OBJECT 00028 00029 public: 00030 DtTerrainCoordinateSystem(const DtUnitDisplayManager*); 00031 00032 public: 00036 virtual QStringList convertPositionToStringList(const Coordinate_System* cs, const DtVector& geocPos) const = 0; 00037 00041 virtual void convertToGeocentric(const DtStringLocation& in, const Coordinate_System* cs, DtVector& vector) const = 0; 00042 00045 virtual void convertFromGeocentric(const Coordinate_System* cs, 00046 const DtVector& vector, DtStringLocation& out) const = 0; 00047 00050 virtual double speed(const Coordinate_System* cs, const DtVector& location, const DtVector& velocity) const = 0; 00051 00054 virtual DtVector velocity(const Coordinate_System* cs, const DtVector& location, const DtVector& velocity) const = 0; 00055 00058 virtual DtVector acceleration(const Coordinate_System* cs, const DtVector& location, const DtVector& acl) const = 0; 00059 00062 virtual DtVector rotationalVelocity(const Coordinate_System* cs, const DtVector& location, const DtVector& rtVel) const = 0; 00063 00065 virtual DtTaitBryan localOrientationFor(const DtVector& location, const DtTaitBryan& geocOri) const = 0; 00066 00068 virtual DtTaitBryan headingPitchRollFor(const DtVector& geocPos, const DtTaitBryan& geocOri) const = 0; 00069 00072 virtual bool convertFrom(const DtCoordinateSystem* oldCS, const DtStringLocation& curLoc, DtStringLocation& newLoc) const; 00073 00077 virtual QString formatSourceToDestination(double val, const QString& unitDisplay, const QString& source, 00078 const QString& destination) const; 00079 00081 virtual QString formatDestinationToSource(double val, const QString& unitDisplay, const QString& source, 00082 const QString& destination) const; 00083 00085 virtual QString formatSourceToDestination(const QString& val, const QString& unitDisplay, const QString& source, 00086 const QString& destination) const; 00087 virtual QString formatDestinationToSource(const QString& val, const QString& unitDisplay, const QString& source, 00088 const QString& destination) const; 00089 00090 public: 00094 virtual QString locationLabelFor(); 00095 virtual QString speedLabelFor(); 00096 virtual QString velocityLabelFor(); 00097 virtual QString accelerationLabelFor(); 00098 00099 const DtTerrainDatabase* terrainDatabase() const; 00100 void setTerrainDatabase(const DtTerrainDatabase*); 00101 00102 virtual DtTaitBryan topoOrientationFor(const DtVector& geocPos, const DtTaitBryan& geocOri) const; 00103 00104 protected: 00105 const DtTerrainDatabase* myTerrainDatabase; 00106 }; 00107 00108 inline void DtTerrainCoordinateSystem::setTerrainDatabase(const DtTerrainDatabase* db) 00109 { 00110 myTerrainDatabase = db; 00111 } 00112 00113 inline const DtTerrainDatabase* DtTerrainCoordinateSystem::terrainDatabase() const 00114 { 00115 return myTerrainDatabase; 00116 } 00117 00118 #endif