Updraft  1.0
Open source glider flight visualisation tool.
mapmanager.h
Go to the documentation of this file.
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_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines