AnimationTarget.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * AnimationTarget.cpp
  3. */
  4. #include "Base.h"
  5. #include "AnimationTarget.h"
  6. #include "Animation.h"
  7. #include "Game.h"
  8. #include <string.h>
  9. #include "Transform.h"
  10. namespace gameplay
  11. {
  12. AnimationTarget::AnimationTarget()
  13. : _targetType(SCALAR), _activeAnimationCount(0), _animations(NULL)
  14. {
  15. }
  16. AnimationTarget::~AnimationTarget()
  17. {
  18. if (_animations)
  19. {
  20. std::vector<Animation*>::iterator animationIter = _animations->begin();
  21. while (animationIter != _animations->end())
  22. {
  23. SAFE_RELEASE((*animationIter));
  24. animationIter++;
  25. }
  26. SAFE_DELETE(_animations);
  27. }
  28. }
  29. void AnimationTarget::addAnimation(Animation* animation)
  30. {
  31. if (_animations == NULL)
  32. {
  33. _animations = new std::vector<Animation*>;
  34. }
  35. _animations->push_back(animation);
  36. animation->addRef();
  37. }
  38. unsigned int AnimationTarget::getAnimationCount() const
  39. {
  40. if (_animations)
  41. return _animations->size();
  42. return 0;
  43. }
  44. Animation* AnimationTarget::getAnimation(unsigned int index) const
  45. {
  46. if (_animations)
  47. return _animations->at(index);
  48. else
  49. return 0;
  50. }
  51. Animation* AnimationTarget::getAnimation(const char* id) const
  52. {
  53. if (_animations)
  54. {
  55. std::vector<Animation*>::iterator animationIter = _animations->begin();
  56. while(animationIter != _animations->end())
  57. {
  58. if ((*animationIter)->_id.compare(id) == 0)
  59. {
  60. return *animationIter;
  61. }
  62. animationIter++;
  63. }
  64. }
  65. return NULL;
  66. }
  67. void AnimationTarget::increaseActiveAnimationCount()
  68. {
  69. _activeAnimationCount++;
  70. }
  71. void AnimationTarget::decreaseActiveAnimationCount()
  72. {
  73. _activeAnimationCount--;
  74. }
  75. unsigned int AnimationTarget::getActiveAnimationCount() const
  76. {
  77. return _activeAnimationCount;
  78. }
  79. }