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); }
116 virtual void setAsBaseValue(
const Any& val);
120 mBaseValueReal[0] = val.
r;
121 mBaseValueReal[1] = val.
g;
122 mBaseValueReal[2] = val.
b;
123 mBaseValueReal[3] = val.
a;
145 virtual void setCurrentStateAsBaseValue(
void) = 0;
184 virtual void setValue(
const Any& val);
187 virtual void resetToBaseValue(
void);
226 virtual void applyDeltaValue(
const Any& val);
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");
virtual const String & getAnimableDictionaryName(void) const
Get the name of the animable dictionary for this class.
Real * ptr()
Pointer accessor for direct copying.
virtual void setValue(const Vector2 &)
Set value.
void createAnimableDictionary(void) const
Internal method for creating a dictionary of animable value names for the class, if it does not alrea...
virtual void setAsBaseValue(const Vector3 &val)
Internal method to set a value as base.
virtual void setAsBaseValue(const Quaternion &val)
Internal method to set a value as base.
virtual AnimableValuePtr createAnimableValue(const String &valueName)
Create a reference-counted AnimableValuePtr for the named value.
Defines an object property which is animable, i.e.
virtual void setAsBaseValue(const Vector2 &val)
Internal method to set a value as base.
Real * ptr()
Pointer accessor for direct copying.
virtual void setAsBaseValue(int val)
Internal method to set a value as base.
virtual void setValue(const Vector3 &)
Set value.
Implementation of a Quaternion, i.e.
4-dimensional homogeneous vector.
virtual void applyDeltaValue(const Radian &)
Apply delta value.
Standard 2-dimensional vector.
Class representing colour.
float Real
Software floating point type.
ValueType
The type of the value being animated.
vector< String >::type StringVector
virtual void setValue(const Radian &)
Set value.
virtual void initialiseAnimableDictionary(StringVector &) const
Internal method for initialising dictionary; should be implemented by subclasses wanting to expose an...
Real valueRadians() const
virtual void setValue(const ColourValue &)
Set value.
virtual void setValue(const Degree &)
Set value.
virtual void applyDeltaValue(const Degree &)
Apply delta value.
virtual void applyDeltaValue(const Vector2 &)
Apply delta value.
virtual void applyDeltaValue(const Quaternion &)
Apply delta value.
Variant type that can hold Any other type.
virtual void setValue(const Vector4 &)
Set value.
virtual void applyDeltaValue(const ColourValue &)
Apply delta value.
const StringVector & getAnimableValueNames(void) const
Gets a list of animable value names for this object.
ValueType getType(void) const
Gets the value type of this animable value.
virtual void setValue(int)
Set value.
Standard 3-dimensional vector.
virtual void applyDeltaValue(const Vector3 &)
Apply delta value.
std::map< K, V, P, A > type
ValueType mType
Value type.
virtual void setAsBaseValue(const ColourValue &val)
Internal method to set a value as base.
StringVector & _getAnimableValueNames(void)
Get an updateable reference to animable value list.
virtual void setValue(const Quaternion &)
Set value.
virtual void setValue(Real)
Set value.
Real * ptr()
Pointer accessor for direct copying.
Defines an interface to classes which have one or more AnimableValue instances to expose...
Real valueRadians() const
AnimableValue(ValueType t)
virtual void applyDeltaValue(Real)
Set value.
virtual ~AnimableObject()
Real * ptr()
Pointer accessor for direct copying.
#define OGRE_EXCEPT(num, desc, src)
virtual void setAsBaseValue(Real val)
Internal method to set a value as base.
map< String, StringVector >::type AnimableDictionaryMap
static AnimableDictionaryMap msAnimableDictionary
Static map of class name to list of animable value names.
SharedPtr< AnimableValue > AnimableValuePtr
virtual void setAsBaseValue(const Radian &val)
Internal method to set a value as base.
Wrapper class which indicates a given angle value is in Degrees.
virtual void applyDeltaValue(const Vector4 &)
Apply delta value.
virtual void setAsBaseValue(const Vector4 &val)
Internal method to set a value as base.
static const String BLANK
Constant blank string, useful for returning by ref where local does not exist.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
virtual void setAsBaseValue(const Degree &val)
Internal method to set a value as base.
Wrapper class which indicates a given angle value is in Radians.
virtual void applyDeltaValue(int)
Apply delta value.