Updraft
1.0
Open source glider flight visualisation tool.
|
00001 #ifndef UPDRAFT_SRC_MAPLAYERGROUPINTERFACE_H_ 00002 #define UPDRAFT_SRC_MAPLAYERGROUPINTERFACE_H_ 00003 00004 #include "maplayerinterface.h" 00005 #include <QVector> 00006 #include <QPair> 00007 00008 namespace osg { 00009 class Node; 00010 class Group; 00011 } 00012 00013 namespace osgEarth { 00014 class MapNode; 00015 00016 namespace Util { 00017 class ObjectPlacer; 00018 } 00019 } 00020 00021 namespace Updraft { 00022 00023 namespace Core { 00024 class MapManager; 00025 class SceneManager; 00026 } 00027 00032 class MapLayerGroupInterface: virtual public MapLayerInterface { 00033 public: 00034 virtual ~MapLayerGroupInterface() {} 00035 00041 virtual MapLayerGroupInterface* createMapLayerGroup(const QString &title, 00042 int pos = -1) = 0; 00043 00047 virtual MapLayerInterface* createMapLayer(osg::Node* layer, 00048 const QString& title, int pos = -1) = 0; 00049 00051 virtual void insertMapLayer(MapLayerInterface* layer, int pos = -1) = 0; 00052 00055 virtual void removeMapLayer(MapLayerInterface* layer) = 0; 00056 00058 virtual osg::Group* getNodeGroup() = 0; 00059 00061 virtual osgEarth::Util::ObjectPlacer* getObjectPlacer() = 0; 00062 00063 friend class Core::SceneManager; 00064 friend class Core::MapManager; 00065 00066 private: 00067 // TODO(Kuba): Get rid of this method. 00069 virtual MapLayerInterface* createMapLayerNoInsert 00070 (osg::Node* layer, const QString& title, int pos = -1) = 0; 00071 }; 00072 00073 } // End namespace Updraft 00074 00075 #endif // UPDRAFT_SRC_MAPLAYERGROUPINTERFACE_H_