-
Notifications
You must be signed in to change notification settings - Fork 0
/
depthwave.h
126 lines (108 loc) · 4.23 KB
/
depthwave.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#ifndef DEPTHWAVE_H
#define DEPTHWAVE_H
#include <OgreCamera.h>
#include <OgreEntity.h>
#include <OgreLogManager.h>
#include <OgreRoot.h>
#include <OgreViewport.h>
#include <OgreSceneManager.h>
#include <OgreRenderWindow.h>
#include <OgreConfigFile.h>
#include <OISEvents.h>
#include <OISInputManager.h>
#include <OISKeyboard.h>
#include <OISMouse.h>
#include <SdkTrays.h>
#include <SdkCameraMan.h>
#include <OgreTextAreaOverlayElement.h>
#include <OgreFontManager.h>
//Skyx include
#include<SKYX/SkyX.h>
//Hydrax includes
#include "Hydrax.h"
#include "Perlin.h"
#include "FFT.h"
#include "ProjectedGrid.h"
#include "SimpleGrid.h"
//--------------------------//
class DEPTHWAVE: public Ogre::FrameListener, public Ogre::WindowEventListener, public OIS::KeyListener, public OIS::MouseListener, OgreBites::SdkTrayListener
{
public:
DEPTHWAVE(void);
virtual ~DEPTHWAVE(void);
virtual void go(void);
protected:
virtual bool setup();
virtual bool configure(void);
virtual void chooseSceneManager(void);
virtual void createCamera(void);
virtual void createFrameListener(void);
virtual void createScene(void); // Override me!
virtual void destroyScene(void);
virtual void createViewports(void);
virtual void setupResources(void);
virtual void createResourceListener(void);
virtual void loadResources(void);
virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
virtual bool keyPressed(const OIS::KeyEvent &arg);
virtual bool keyReleased(const OIS::KeyEvent &arg);
virtual bool mouseMoved(const OIS::MouseEvent &arg);
virtual bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
virtual bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
// Adjust mouse clipping area
virtual void windowResized(Ogre::RenderWindow* rw);
// Unattach OIS before window shutdown (very important under Linux)
virtual void windowClosed(Ogre::RenderWindow* rw);
void createWater();
void gridScreenshots(Ogre::RenderWindow* pRenderWindow, Ogre::Camera* pCamera, const int& pGridSize, const Ogre::String& pFileName, const Ogre::String& pFileExtention, const bool& pStitchGridImages);
Ogre::Root* mRoot;
Ogre::Camera* mCamera;
Ogre::SceneManager* mSceneMgr;
Ogre::RenderWindow* mWindow;
Ogre::String mResourcesCfg;
Ogre::String mPluginsCfg;
Ogre::OverlaySystem* mOverlaySystem;
Ogre::Viewport* mViewport;
// OgreBites
OgreBites::InputContext mInputContext;
OgreBites::SdkTrayManager* mTrayMgr;
OgreBites::SdkCameraMan* mCameraMan; // Basic camera controller
OgreBites::ParamsPanel* mDetailsPanel; // Sample details panel
OgreBites::ParamsPanel* mDetailsPanel1;
OgreBites::Label* mLabel;
OgreBites::Label* mLabel1;
OgreBites::Label* mLabel2;
OgreBites::Label* mLabel3;
OgreBites::Button* mButton;
OgreBites::Slider* mSlider;//grid
OgreBites::Slider* mSlider1;//windspeed
OgreBites::Slider* mSlider2;//fecth
OgreBites::Slider* mSlider3;//depth
OgreBites::Slider* mSlider4;//winddirx
OgreBites::Slider* mSlider5;//winddiry
OgreBites::CheckBox* mCheckBox;
OgreBites::CheckBox* mCheckBox0;
OgreBites::CheckBox* mCheckBox1;
OgreBites::CheckBox* mCheckBox2;
bool mCursorWasVisible; // Was cursor visible before dialog appeared?
bool mShutDown;
//OIS Input devices
OIS::InputManager* mInputManager;
OIS::Mouse* mMouse;
OIS::Keyboard* mKeyboard;
// Added for Mac compatibility
Ogre::String m_ResourcePath;
//Temporal Variables
double prev_rot;
Ogre::OverlayElement* panel;
Ogre::Overlay* overlay;
Ogre::TextAreaOverlayElement* mTextArea = 0;
SkyX::SkyX *mSkyX;
SkyX::BasicController *mBasicController;
// Color gradients
SkyX::ColorGradient mWaterGradient,mSunGradient,mAmbientGradient;
Hydrax::Hydrax *mHydrax=0;
SkyX::CloudLayer::Options o;
SkyX::AtmosphereManager::Options o1;
};
#endif // DEPTHWAVE_H