| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include "Base.h"
- #include "AnimationValue.h"
- namespace gameplay
- {
- AnimationValue::AnimationValue(unsigned int componentCount)
- : _componentCount(componentCount), _componentSize(componentCount * sizeof(float))
- {
- GP_ASSERT(_componentCount > 0);
- _value = new float[_componentCount];
- }
- AnimationValue::AnimationValue(const AnimationValue& copy)
- {
- _value = new float[copy._componentCount];
- _componentSize = copy._componentSize;
- _componentCount = copy._componentCount;
- memcpy(_value, copy._value, _componentSize);
- }
- AnimationValue::~AnimationValue()
- {
- SAFE_DELETE_ARRAY(_value);
- }
- AnimationValue& AnimationValue::operator=(const AnimationValue& v)
- {
- if (this != &v)
- {
- if (_value == NULL || _componentSize != v._componentSize || _componentCount != v._componentCount)
- {
- _componentSize = v._componentSize;
- _componentCount = v._componentCount;
- SAFE_DELETE_ARRAY(_value);
- _value = new float[v._componentCount];
- }
- memcpy(_value, v._value, _componentSize);
- }
- return *this;
- }
- float AnimationValue::getFloat(unsigned int index) const
- {
- GP_ASSERT(index < _componentCount);
- GP_ASSERT(_value);
- return _value[index];
- }
- void AnimationValue::setFloat(unsigned int index, float value)
- {
- GP_ASSERT(index < _componentCount);
- GP_ASSERT(_value);
- _value[index] = value;
- }
- void AnimationValue::getFloats(unsigned int index, float* values, unsigned int count) const
- {
- GP_ASSERT(_value && values && index < _componentCount && (index + count) <= _componentCount);
- memcpy(values, &_value[index], count * sizeof(float));
- }
- void AnimationValue::setFloats(unsigned int index, float* values, unsigned int count)
- {
- GP_ASSERT(_value && values && index < _componentCount && (index + count) <= _componentCount);
- memcpy(&_value[index], values, count * sizeof(float));
- }
- }
|