OGRE-Next  3.0.0
Object-Oriented Graphics Rendering Engine
Ogre::Controller< T > Class Template Reference

Instances of this class 'control' the value of another object in the system. More...

#include <OgreController.h>

+ Inheritance diagram for Ogre::Controller< T >:

Public Member Functions

 Controller (const SharedPtr< ControllerValue< T > > &src, const SharedPtr< ControllerValue< T > > &dest, const SharedPtr< ControllerFunction< T > > &func)
 Usual constructor. More...
 
virtual ~Controller ()
 Default d-tor. More...
 
const SharedPtr< ControllerValue< T > > & getDestination () const
 Gets the output controller value. More...
 
bool getEnabled () const
 Returns true if this controller is currently enabled. More...
 
const SharedPtr< ControllerFunction< T > > & getFunction () const
 Returns a pointer to the function object used by this controller. More...
 
const SharedPtr< ControllerValue< T > > & getSource () const
 Gets the input controller value. More...
 
void setDestination (const SharedPtr< ControllerValue< T > > &dest)
 Sets the output controller value. More...
 
void setEnabled (bool enabled)
 Sets whether this controller is enabled. More...
 
void setFunction (const SharedPtr< ControllerFunction< T > > &func)
 Sets the function object to be used by this controller. More...
 
void setSource (const SharedPtr< ControllerValue< T > > &src)
 Sets the input controller value. More...
 
void update ()
 Tells this controller to map it's input controller value to it's output controller value, via the controller function. More...
 

Detailed Description

template<typename T>
class Ogre::Controller< T >

Instances of this class 'control' the value of another object in the system.

Remarks
Controller classes are used to manage the values of object automatically based on the value of some input. For example, a Controller could animate a texture by controlling the current frame of the texture based on time, or a different Controller could change the colour of a material used for a spaceship shield mesh based on the remaining shield power level of the ship.
The Controller is an intentionally abstract concept - it can generate values based on input and a function, which can either be one of the standard ones supplied, or a function can be 'plugged in' for custom behaviour - see the ControllerFunction class for details. Both the input and output values are via ControllerValue objects, meaning that any value can be both input and output of the controller.
Whilst this is very flexible, it can be a little bit confusing so to make it simpler the most often used controller setups are available by calling methods on the ControllerManager object.
See also
ControllerFunction

Constructor & Destructor Documentation

◆ Controller()

template<typename T >
Ogre::Controller< T >::Controller ( const SharedPtr< ControllerValue< T > > &  src,
const SharedPtr< ControllerValue< T > > &  dest,
const SharedPtr< ControllerFunction< T > > &  func 
)
inline

Usual constructor.

Remarks
Requires source and destination values, and a function object. None of these are destroyed with the Controller when it is deleted (they can be shared) so you must delete these as appropriate.

◆ ~Controller()

template<typename T >
virtual Ogre::Controller< T >::~Controller ( )
inlinevirtual

Default d-tor.

Member Function Documentation

◆ getDestination()

template<typename T >
const SharedPtr<ControllerValue<T> >& Ogre::Controller< T >::getDestination ( ) const
inline

Gets the output controller value.

◆ getEnabled()

template<typename T >
bool Ogre::Controller< T >::getEnabled ( ) const
inline

Returns true if this controller is currently enabled.

◆ getFunction()

template<typename T >
const SharedPtr<ControllerFunction<T> >& Ogre::Controller< T >::getFunction ( ) const
inline

Returns a pointer to the function object used by this controller.

◆ getSource()

template<typename T >
const SharedPtr<ControllerValue<T> >& Ogre::Controller< T >::getSource ( ) const
inline

Gets the input controller value.

◆ setDestination()

template<typename T >
void Ogre::Controller< T >::setDestination ( const SharedPtr< ControllerValue< T > > &  dest)
inline

Sets the output controller value.

◆ setEnabled()

template<typename T >
void Ogre::Controller< T >::setEnabled ( bool  enabled)
inline

Sets whether this controller is enabled.

◆ setFunction()

template<typename T >
void Ogre::Controller< T >::setFunction ( const SharedPtr< ControllerFunction< T > > &  func)
inline

Sets the function object to be used by this controller.

◆ setSource()

template<typename T >
void Ogre::Controller< T >::setSource ( const SharedPtr< ControllerValue< T > > &  src)
inline

Sets the input controller value.

◆ update()

template<typename T >
void Ogre::Controller< T >::update ( )
inline

Tells this controller to map it's input controller value to it's output controller value, via the controller function.

Remarks
This method is called automatically every frame by ControllerManager.

The documentation for this class was generated from the following file: