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