OGRE
1.8
Object-Oriented Graphics Rendering Engine
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
OgreControllerManager.h
Go to the documentation of this file.
1
/*
2
-----------------------------------------------------------------------------
3
This source file is part of OGRE
4
(Object-oriented Graphics Rendering Engine)
5
For the latest info, see http://www.ogre3d.org/
6
7
Copyright (c) 2000-2013 Torus Knot Software Ltd
8
9
Permission is hereby granted, free of charge, to any person obtaining a copy
10
of this software and associated documentation files (the "Software"), to deal
11
in the Software without restriction, including without limitation the rights
12
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
copies of the Software, and to permit persons to whom the Software is
14
furnished to do so, subject to the following conditions:
15
16
The above copyright notice and this permission notice shall be included in
17
all copies or substantial portions of the Software.
18
19
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
THE SOFTWARE.
26
-----------------------------------------------------------------------------
27
*/
28
#ifndef __ControllerManager_H__
29
#define __ControllerManager_H__
30
31
#include "
OgrePrerequisites.h
"
32
33
#include "
OgreCommon.h
"
34
#include "
OgreSingleton.h
"
35
#include "
OgreController.h
"
36
#include "
OgrePredefinedControllers.h
"
37
#include "
OgreTextureUnitState.h
"
38
#include "
OgreSharedPtr.h
"
39
40
namespace
Ogre {
48
typedef
SharedPtr< ControllerValue<Real>
>
ControllerValueRealPtr
;
49
typedef
SharedPtr< ControllerFunction<Real>
>
ControllerFunctionRealPtr
;
50
57
class
_OgreExport
ControllerManager
:
public
Singleton
<ControllerManager>,
public
ControllerAlloc
58
{
59
protected
:
60
typedef
set<Controller<Real>
*>::type
ControllerList
;
61
ControllerList
mControllers
;
62
64
ControllerValueRealPtr
mFrameTimeController
;
65
67
ControllerFunctionRealPtr
mPassthroughFunction
;
68
69
// Last frame number updated
70
unsigned
long
mLastFrameNumber
;
71
72
public
:
73
ControllerManager
();
74
~
ControllerManager
();
75
78
Controller<Real>
* createController(
const
ControllerValueRealPtr
& src,
79
const
ControllerValueRealPtr
& dest,
const
ControllerFunctionRealPtr
& func);
80
83
Controller<Real>
* createFrameTimePassthroughController(
84
const
ControllerValueRealPtr
& dest);
85
88
void
clearControllers(
void
);
89
92
void
updateAllControllers(
void
);
93
94
104
const
ControllerValueRealPtr
& getFrameTimeSource(
void
)
const
;
105
107
const
ControllerFunctionRealPtr
& getPassthroughControllerFunction(
void
)
const
;
108
118
Controller<Real>
* createTextureAnimator(
TextureUnitState
* layer,
Real
sequenceTime);
119
132
Controller<Real>
* createTextureUVScroller(
TextureUnitState
* layer,
Real
speed);
133
144
Controller<Real>
* createTextureUScroller(
TextureUnitState
* layer,
Real
uSpeed);
145
156
Controller<Real>
* createTextureVScroller(
TextureUnitState
* layer,
Real
vSpeed);
157
168
Controller<Real>
* createTextureRotater(
TextureUnitState
* layer,
Real
speed);
169
187
Controller<Real>
* createTextureWaveTransformer(
TextureUnitState
* layer,
TextureUnitState::TextureTransformType
ttype,
188
WaveformType
waveType,
Real
base = 0,
Real
frequency = 1,
Real
phase = 0,
Real
amplitude = 1);
189
199
Controller<Real>
* createGpuProgramTimerParam(
GpuProgramParametersSharedPtr
params,
size_t
paramIndex,
200
Real
timeFactor = 1.0f);
201
204
void
destroyController(
Controller<Real>
* controller);
205
210
Real
getTimeFactor(
void
)
const
;
211
220
void
setTimeFactor(
Real
tf);
221
226
Real
getFrameDelay(
void
)
const
;
227
239
void
setFrameDelay(
Real
fd);
240
245
Real
getElapsedTime(
void
)
const
;
246
254
void
setElapsedTime(
Real
elapsedTime);
255
271
static
ControllerManager
& getSingleton(
void
);
287
static
ControllerManager
* getSingletonPtr(
void
);
288
};
289
293
}
294
#endif
OgrePredefinedControllers.h
Ogre::Real
float Real
Software floating point type.
Definition:
OgrePrerequisites.h:75
_OgreExport
#define _OgreExport
Definition:
OgrePlatform.h:233
OgreSingleton.h
Ogre::ControllerManager::mPassthroughFunction
ControllerFunctionRealPtr mPassthroughFunction
Global predefined controller.
Definition:
OgreControllerManager.h:67
Ogre::ControllerManager::mFrameTimeController
ControllerValueRealPtr mFrameTimeController
Global predefined controller.
Definition:
OgreControllerManager.h:64
Ogre::WaveformType
WaveformType
Enumerates the wave types usable with the Ogre engine.
Definition:
OgreCommon.h:164
Ogre::Singleton
Template class for creating single-instance global classes.
Definition:
OgreSingleton.h:64
Ogre::ControllerValueRealPtr
SharedPtr< ControllerValue< Real > > ControllerValueRealPtr
Definition:
OgreControllerManager.h:48
OgreController.h
OgrePrerequisites.h
OgreCommon.h
Ogre::ControllerManager::ControllerList
set< Controller< Real > * >::type ControllerList
Definition:
OgreControllerManager.h:60
Ogre::Controller< Real >
Ogre::AllocatedObject
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Definition:
OgreMemoryAllocatedObject.h:57
Ogre::set
Definition:
OgrePrerequisites.h:518
Ogre::ControllerManager::mLastFrameNumber
unsigned long mLastFrameNumber
Definition:
OgreControllerManager.h:70
Ogre::ControllerFunctionRealPtr
SharedPtr< ControllerFunction< Real > > ControllerFunctionRealPtr
Definition:
OgreControllerManager.h:49
Ogre::ControllerManager::mControllers
ControllerList mControllers
Definition:
OgreControllerManager.h:61
Ogre::TextureUnitState::TextureTransformType
TextureTransformType
Useful enumeration when dealing with procedural transforms.
Definition:
OgreTextureUnitState.h:112
Ogre::SharedPtr
Reference-counted shared pointer, used for objects where implicit destruction is required.
Definition:
OgreSharedPtr.h:60
OgreTextureUnitState.h
Ogre::TextureUnitState
Class representing the state of a single texture unit during a Pass of a Technique, of a Material.
Definition:
OgreTextureUnitState.h:62
OgreSharedPtr.h
Ogre::ControllerManager
Class for managing Controller instances.
Definition:
OgreControllerManager.h:57
OgreMain
include
OgreControllerManager.h
Generated on Fri Jun 20 2014 00:48:08 for OGRE by
1.8.7