25 lines
780 B
C++
25 lines
780 B
C++
#ifndef MAT_WATER_H
|
|
#define MAT_WATER_H
|
|
#include <Ogre.h>
|
|
class App;
|
|
class Water : public Ogre::FrameListener, Ogre::RenderTargetListener {
|
|
Ogre::SceneManager *mScnMgr;
|
|
Ogre::SceneNode *mWaterNode, *mCameraNode;
|
|
Ogre::Vector3 mCameraPosition;
|
|
Ogre::Camera *mCamera;
|
|
Ogre::Plane mWaterPlane;
|
|
|
|
public:
|
|
Water();
|
|
virtual ~Water();
|
|
void createWater(Ogre::Camera *camera);
|
|
void updateWater(float delta);
|
|
bool frameEnded(const Ogre::FrameEvent &evt) override;
|
|
bool frameRenderingQueued(const Ogre::FrameEvent &evt) override;
|
|
void preRenderTargetUpdate(const Ogre::RenderTargetEvent &evt) override;
|
|
void
|
|
postRenderTargetUpdate(const Ogre::RenderTargetEvent &evt) override;
|
|
void add_submerged_entity(Ogre::Entity *ent);
|
|
void add_surface_entity(Ogre::Entity *ent);
|
|
};
|
|
#endif |