VR-Forces 4.0.4 Class Documentation
include/terrainqt/terrainSymbolUpdater.h
Go to the documentation of this file.
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 

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)