2
// C++ Interface: HydraxWater
7
// Author: Erik Hjortsberg <erik.hjortsberg@gmail.com>, (C) 2008
9
// This program is free software; you can redistribute it and/or modify
10
// it under the terms of the GNU General Public License as published by
11
// the Free Software Foundation; either version 2 of the License, or
12
// (at your option) any later version.
14
// This program is distributed in the hope that it will be useful,
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
// GNU General Public License for more details.
19
// You should have received a copy of the GNU General Public License
20
// along with this program; if not, write to the Free Software
21
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//
23
#ifndef EMBEROGRE_ENVIRONMENTHYDRAXWATER_H
24
#define EMBEROGRE_ENVIRONMENTHYDRAXWATER_H
26
#include <OgreFrameListener.h>
27
#include "Environment.h"
36
namespace Environment {
39
@brief Uses the Hydrax system for showing water.
40
@author Erik Hjortsberg <erik.hjortsberg@gmail.com>
42
class HydraxWater : public IWater, public Ogre::FrameListener
45
HydraxWater(Ogre::Camera& camera, Ogre::SceneManager& mSceneMgr);
47
virtual ~HydraxWater();
50
* Methods from Ogre::FrameListener
52
bool frameStarted(const Ogre::FrameEvent& event);
55
* @brief Performs checks to see whether this technique is supported on the current hardware.
56
* @return True if the water technique is supported.
58
virtual bool isSupported() const;
60
* @brief Initializes the water. You must call this in order for the water to show up.
61
* @return True if the water technique could be setup, else false.
63
virtual bool initialize();
71
* @brief The camera used.
73
Ogre::Camera& mCamera;
76
* @brief The scene manager to which the water will be added.
78
Ogre::SceneManager& mSceneMgr;
81
* @brief The main Hydrax instance.
82
* Owned by this class and destroyed along with it.
84
Hydrax::Hydrax *mHydrax;