Updraft
1.0
Open source glider flight visualisation tool.
|
00001 #ifndef UPDRAFT_SRC_CORE_MAPMANAGER_H_ 00002 #define UPDRAFT_SRC_CORE_MAPMANAGER_H_ 00003 00004 #include <osgEarth/ImageLayer> 00005 #include <osgEarth/ElevationLayer> 00006 #include <osgEarth/MapNode> 00007 #include <osgEarth/Map> 00008 #include <QString> 00009 #include <QVector> 00010 00011 #include "ui/maplayergroup.h" 00012 #include "mapmanipulator.h" 00013 #include "mapmapobject.h" 00014 #include "updraft.h" 00015 00016 namespace Updraft { 00017 namespace Core { 00018 00021 class MapManager { 00022 Q_DECLARE_TR_FUNCTIONS(MapManager) 00023 00024 public: 00025 MapManager(); 00026 00031 explicit MapManager(QString earthFile, QString mapName); 00032 00034 void createMap(); 00035 00037 void destroyMap(); 00038 00041 QString getName(); 00042 00045 osgEarth::MapNode* getMapNode(); 00046 00049 osgEarth::Map* getMap(); 00050 00053 void bindManipulator(MapManipulator* newManipulator); 00054 00057 bool hasElevation(); 00058 00062 MapObject* getMapObject(); 00063 00066 QVector<MapLayerInterface*> getMapLayers(); 00067 00070 void attach(osg::Group* scene); 00071 00074 void detach(osg::Group* scene); 00075 00076 private: 00078 QString earthFileName; 00079 00081 QString mapName; 00082 00084 osg::ref_ptr<osgEarth::MapNode> mapNode; 00085 00087 osgEarth::Map* map; 00088 00090 QVector<MapLayerInterface*> mapLayers; 00091 00093 MapLayerGroupInterface* mapLayerGroup; 00094 00096 MapMapObject mapObject; 00097 00099 QVector<osgEarth::ImageLayer*> getImageLayers(); 00100 00102 QVector<osgEarth::ElevationLayer*> getElevationLayers(); 00103 00105 QVector<osgEarth::ModelLayer*> getModelLayers(); 00106 }; 00107 00108 } // namespace Core 00109 } // namespace Updraft 00110 00111 #endif // UPDRAFT_SRC_CORE_MAPMANAGER_H_