vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TerrainAbility.h
Go to the documentation of this file.
1 
10 #ifndef VRECKO_NATURE_TERRAIN_TERRAINABILITY_H
11 #define VRECKO_NATURE_TERRAIN_TERRAINABILITY_H
12 
13 #include <vrecko/Ability.h>
15 
16 #ifdef PI
17 #undef PI
18 #endif
19 
20 #include <vreckoUtils/Menu.h>
21 
22 #include <vreckoAP/GUI/Menu.h>
24 
25 #include "Terrain2D.h"
26 
27 namespace APNature
28 {
29 
31  {
32  private:
33  Terrain2D *_terrain;
34  osg::Vec3 _terrainViewScale;
35 
36  APGUI::Menu *_menuAbility;
37  APGUI::GUI_Controller *_guiController;
38 
39  std::vector<std::string> _fileNames;
40 
41  // Root menu items
42  osg::ref_ptr<vreckoUtils::MenuRoot> _menuRootLayoutEmpty;
43  osg::ref_ptr<vreckoUtils::MenuRoot> _menuRootLayoutTerrain;
44 
45  osg::ref_ptr<vreckoUtils::Menu> _menuMainLayoutEmpty;
46  osg::ref_ptr<vreckoUtils::Menu> _menuMainLayoutTerrain;
47 
48  // Main menu items
49  osg::ref_ptr<vreckoUtils::Menu> _menuDimensions;
50  osg::ref_ptr<vreckoUtils::Menu> _menuView;
51  osg::ref_ptr<vreckoUtils::Menu> _menuRandomFaults;
52  osg::ref_ptr<vreckoUtils::Menu> _menuMidpointDisplacement;
53  osg::ref_ptr<vreckoUtils::Menu> _menuPerlinNoise;
54  osg::ref_ptr<vreckoUtils::Menu> _menuHeightMap;
55  osg::ref_ptr<vreckoUtils::Menu> _menuExportTo;
56 
57  // Additional buttons
58  osg::ref_ptr<vreckoUtils::MenuItem> _itemExport;
59  osg::ref_ptr<vreckoUtils::MenuItem> _itemDelete;
60 
61  // BLACK MAGIC FOLLOWS
62  // Message and request declarations
63  DECLARE_REQUEST_OUTPUT(SelectedObjectID, MessageInt, MessageObjectID);
64 
65  // Menu inputs/outputs
66  DECLARE_INPUT(GUIItemClicked, MessageString);
67  DECLARE_INPUT(CreateMenuStructure, MessageInt);
68  DECLARE_INPUT(HidingMenu, MessageBool);
69  DECLARE_OUTPUT(MenuStructure, MessageString);
70  // BLACK MAGIC ENDS
71 
72  public:
75 
80  virtual bool initialize(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters = NULL);
81 
85  virtual void update();
86 
92  void InitializeMenu();
93 
97  void BuildMenuLayouts();
98 
103  std::string CreateMenuStructure();
104 
109  void GuiItemClicked(const char* itemID);
110 
116  void MenuSliderChanged(const char* sliderID, float sliderPos);
117 
118  };
119 }
120 
121 #endif