28 #ifndef __ANIMABLE_H__
29 #define __ANIMABLE_H__
105 { memcpy(mBaseValueReal, val.
ptr(),
sizeof(
Real)*2); }
108 { memcpy(mBaseValueReal, val.
ptr(),
sizeof(
Real)*3); }
111 { memcpy(mBaseValueReal, val.
ptr(),
sizeof(
Real)*4); }
114 { memcpy(mBaseValueReal, val.
ptr(),
sizeof(
Real)*4); }
120 mBaseValueReal[0] = val.
r;
121 mBaseValueReal[1] = val.
g;
122 mBaseValueReal[2] = val.
b;
123 mBaseValueReal[3] = val.
a;
256 if (msAnimableDictionary.find(getAnimableDictionaryName())
257 == msAnimableDictionary.end())
260 initialiseAnimableDictionary(vec);
261 msAnimableDictionary[getAnimableDictionaryName()] = vec;
269 AnimableDictionaryMap::iterator i =
270 msAnimableDictionary.find(getAnimableDictionaryName());
271 if (i != msAnimableDictionary.end())
278 "Animable value list not found for " + getAnimableDictionaryName(),
279 "AnimableObject::getAnimableValueNames");
297 createAnimableDictionary();
299 AnimableDictionaryMap::iterator i =
300 msAnimableDictionary.find(getAnimableDictionaryName());
301 if (i != msAnimableDictionary.end())
308 "Animable value list not found for " + getAnimableDictionaryName(),
309 "AnimableObject::getAnimableValueNames");
323 "No animable value named '" + valueName +
"' present.",
324 "AnimableObject::createAnimableValue");
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Defines an interface to classes which have one or more AnimableValue instances to expose.
static AnimableDictionaryMap msAnimableDictionary
Static map of class name to list of animable value names.
StringVector & _getAnimableValueNames(void)
Get an updateable reference to animable value list.
const StringVector & getAnimableValueNames(void) const
Gets a list of animable value names for this object.
virtual void initialiseAnimableDictionary(StringVector &) const
Internal method for initialising dictionary; should be implemented by subclasses wanting to expose an...
void createAnimableDictionary(void) const
Internal method for creating a dictionary of animable value names for the class, if it does not alrea...
virtual AnimableValuePtr createAnimableValue(const String &valueName)
Create a reference-counted AnimableValuePtr for the named value.
map< String, StringVector >::type AnimableDictionaryMap
virtual ~AnimableObject()
virtual const String & getAnimableDictionaryName(void) const
Get the name of the animable dictionary for this class.
Defines an object property which is animable, i.e.
virtual void applyDeltaValue(int)
Apply delta value.
virtual void setValue(const Radian &)
Set value.
virtual void setAsBaseValue(const ColourValue &val)
Internal method to set a value as base.
AnimableValue(ValueType t)
virtual void setAsBaseValue(const Degree &val)
Internal method to set a value as base.
virtual void setValue(const ColourValue &)
Set value.
virtual void setValue(const Vector2 &)
Set value.
virtual void setAsBaseValue(const Vector2 &val)
Internal method to set a value as base.
virtual void applyDeltaValue(const Vector4 &)
Apply delta value.
virtual void setAsBaseValue(Real val)
Internal method to set a value as base.
virtual void applyDeltaValue(const Vector2 &)
Apply delta value.
virtual void setValue(const Quaternion &)
Set value.
virtual void applyDeltaValue(const Any &val)
Apply delta value.
virtual void setAsBaseValue(const Vector3 &val)
Internal method to set a value as base.
virtual void setValue(int)
Set value.
virtual void applyDeltaValue(const Quaternion &)
Apply delta value.
virtual void setAsBaseValue(const Any &val)
Internal method to set a value as base.
virtual void applyDeltaValue(const Radian &)
Apply delta value.
virtual void applyDeltaValue(Real)
Set value.
virtual void applyDeltaValue(const Degree &)
Apply delta value.
virtual void setValue(const Vector3 &)
Set value.
virtual void setValue(const Vector4 &)
Set value.
virtual void setValue(Real)
Set value.
ValueType mType
Value type.
virtual void setAsBaseValue(int val)
Internal method to set a value as base.
virtual void setCurrentStateAsBaseValue(void)=0
Sets the current state as the 'base' value; used for delta animation.
virtual void applyDeltaValue(const Vector3 &)
Apply delta value.
virtual void setValue(const Any &val)
Set value.
ValueType getType(void) const
Gets the value type of this animable value.
virtual void applyDeltaValue(const ColourValue &)
Apply delta value.
virtual void setAsBaseValue(const Vector4 &val)
Internal method to set a value as base.
virtual void setAsBaseValue(const Quaternion &val)
Internal method to set a value as base.
ValueType
The type of the value being animated.
virtual void setValue(const Degree &)
Set value.
virtual void resetToBaseValue(void)
virtual void setAsBaseValue(const Radian &val)
Internal method to set a value as base.
Variant type that can hold Any other type.
Class representing colour.
Wrapper class which indicates a given angle value is in Degrees.
Implementation of a Quaternion, i.e.
Real * ptr()
Pointer accessor for direct copying.
Wrapper class which indicates a given angle value is in Radians.
Real valueRadians() const
static const String BLANK
Constant blank string, useful for returning by ref where local does not exist.
Standard 2-dimensional vector.
Real * ptr()
Pointer accessor for direct copying.
Standard 3-dimensional vector.
Real * ptr()
Pointer accessor for direct copying.
4-dimensional homogeneous vector.
Real * ptr()
Pointer accessor for direct copying.
SharedPtr< AnimableValue > AnimableValuePtr
vector< String >::type StringVector
#define OGRE_EXCEPT(num, desc, src)
Real valueRadians() const
float Real
Software floating point type.
std::map< K, V, P, A > type