2
// C++ Interface: SimpleEnvironment
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_ENVIRONMENTSIMPLEENVIRONMENT_H
24
#define EMBEROGRE_ENVIRONMENTSIMPLEENVIRONMENT_H
26
#include "Environment.h"
38
namespace Environment {
41
A very simple sun which always will return the same direction.
43
class SimpleSun : public ISun
46
virtual void setAmbientLight(const Ogre::ColourValue& colour);
47
virtual Ogre::Vector3 getSunDirection() const;
52
A very simple sky which won't do anything currently.
54
class SimpleSky : public ISky
61
A very simple fog which will always return a density of 1.0
63
class SimpleFog : public IFog
66
virtual void setDensity(float density);
67
virtual float getDensity() const;
76
@author Erik Hjortsberg <erik.hjortsberg@gmail.com>
78
A very simple environment which can be used as a fallback environment if a more advanced environment fails to load.
80
class SimpleEnvironment : public IEnvironmentProvider
83
SimpleEnvironment(Ogre::SceneManager *sceneMgr, Ogre::RenderWindow* window, Ogre::Camera& camera);
85
virtual ~SimpleEnvironment();
87
virtual void createEnvironment();
89
virtual ISun* getSun();
90
virtual ISky* getSky();
91
virtual IFog* getFog();
92
virtual IWater* getWater();
94
virtual void setTime(int hour, int minute, int second = 0);
95
virtual void setTime(int seconds);
98
* @brief Sets the position of the world.
99
* @param longitudeDegrees The longitude, as degrees.
100
* @param latitudeDegrees The latitude, as degrees.
102
virtual void setWorldPosition(float longitudeDegrees, float latitudeDegrees);
105
Ogre::SceneManager *mSceneMgr;
106
Ogre::RenderWindow* mWindow;
107
Ogre::Camera& mCamera;