![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: terrainSymbolUpdater.h,v $ $Revision: 1.19 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef TERRAINSYMBOLUPDATER_H_ 00013 #define TERRAINSYMBOLUPDATER_H_ 00014 00016 #include "tmqt/tmSymbolUpdater.h" 00017 #include "symbolMapper/terrainModelData.h" 00018 00019 class DtTMDisplayOptions; 00020 class DtTTSSymbol; 00021 class Coordinate_System; 00022 class DtVector; 00023 class DtCircleSymbol; 00024 class DtCompositeSymbol; 00025 class DtBoxSymbol; 00026 class DtSpecification; 00027 class DtCompassModelData; 00028 class DtTaitBryan; 00029 class DtLineSymbol; 00030 00031 #include "terrainqt/terrainqtDefines.h" 00032 class DT_DLL_terrainqt DtTerrainSymbolUpdater : public DtTMSymbolUpdater 00033 { 00034 Q_OBJECT 00035 00036 public: 00037 00038 DtTerrainSymbolUpdater(); 00039 00040 virtual ~DtTerrainSymbolUpdater(); 00041 00042 public: 00043 00045 static DtTMSymbolUpdater* create(); 00046 00047 public: 00048 00050 virtual void init(DtTMArea* area); 00051 00053 virtual bool calculateHeading(const DtTaitBryan& geocentricOrientation, const DtVector& disLocation, 00054 double& angle, DtVector& localHeading, DtTaitBryan& localOrientation, const Coordinate_System* cs) const; 00055 00059 static QString convertFromSource(const DtPoint& pnt); 00060 00063 static double elevationAngleTo(const DtVector& observerPosition, 00064 const DtVector& targetPosition, const Coordinate_System& coordinateSystem); 00065 00069 virtual double greatCircleDistance(const DtVector& origin, const DtVector& end) const; 00070 00073 virtual double headingAngleTo(const DtVector& observerPosition, 00074 const DtVector& targetPosition, const Coordinate_System& coordinateSystem) const; 00075 00077 virtual double meterLengthOfDegreeOfLongitude(double lon) const; 00078 00080 virtual double meterLengthOfDegreeOfLatitude(double lat) const; 00081 00084 virtual double range(const QVector<DtPoint>* pnts, bool useGreatCircle = false) const; 00085 00086 protected: 00087 00088 virtual DtSymbol* createTerrainNodeChildSymbol(const DtSpecification& spec, const DtTerrainModelData& data, void *usr) const; 00089 00090 virtual DtSymbol* createTerrainEdgeChildSymbol(const DtTerrainModelData& data, void *usr) const; 00091 00094 virtual void updateCompassOrigin(DtSymbol& s) const; 00095 00096 virtual bool updateNodeOptions(DtCompositeSymbol* comp, const DtTMDisplayOptions* opt, 00097 const DtTerrainModelData& d, void* usr) const; 00098 00099 virtual bool updateEdgeOptions(DtCompositeSymbol* comp, const DtTMDisplayOptions* opt, 00100 const DtTerrainModelData& d, void* usr) const; 00101 00102 virtual void updateNodeSymbol(DtSymbol& s, DtTerrainModelData&, void* usr) const; 00103 00104 virtual void updateNodeSymbol(DtCompositeSymbol* comp, DtTerrainModelData&, void* usr) const; 00105 00106 virtual void updateEdgeSymbol(DtSymbol& s, DtTerrainModelData&, void* usr) const; 00107 00108 virtual void updateEdgeSymbol(DtCompositeSymbol* comp, DtTerrainModelData&, void* usr) const; 00109 00112 virtual void updateSymbol(DtLineSymbol&, const DtSpecification&, DtSegmentList&, DtTerrainModelData&, void* usr) const; 00113 virtual void updateSymbol(DtCircleSymbol&, const DtSpecification&, DtSegmentList&, DtTerrainModelData&, void* usr) const; 00114 virtual void updateSymbol(DtBoxSymbol&, const DtSpecification&, DtSegmentList&, DtTerrainModelData&, void* usr) const; 00115 00118 virtual void updateCompassData(DtSymbol& s, const DtCompassModelData& d, void* usr) const; 00119 00122 virtual void updateTerrainData(DtSymbol& s, DtTerrainModelData& d, void* usr) const; 00123 00124 public: 00125 00128 00133 static void updateCompassDataCb(const DtTMSymbolUpdater* updater, DtSymbol& s, 00134 const DtModelData& d, void* usr); 00135 00140 static void updateTerrainDataCb(const DtTMSymbolUpdater* updater, DtSymbol& s, 00141 const DtModelData& d, void* usr); 00142 00143 }; 00144 00145 #endif //TERRAINSYMBOLUPDATER_H_ 00146