Open Source Tomb Raider Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SkeletalModel.cpp 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*!
  2. * \file src/SkeletalModel.cpp
  3. * \brief This is the factored out skeletal model class
  4. *
  5. * \author Mongoose
  6. * \author xythobuz
  7. */
  8. #include <assert.h>
  9. #include "SkeletalModel.h"
  10. BoneTag::BoneTag() {
  11. }
  12. BoneFrame::BoneFrame() {
  13. }
  14. BoneFrame::~BoneFrame() {
  15. for (unsigned int i = 0; i < tag.size(); i++)
  16. delete tag[i];
  17. }
  18. unsigned int BoneFrame::size() {
  19. return tag.size();
  20. }
  21. BoneTag &BoneFrame::get(unsigned int i) {
  22. assert(i < tag.size());
  23. return *tag.at(i);
  24. }
  25. void BoneFrame::add(BoneTag &b) {
  26. tag.push_back(&b);
  27. }
  28. AnimationFrame::AnimationFrame() {
  29. }
  30. AnimationFrame::~AnimationFrame() {
  31. for (unsigned int i = 0; i < frame.size(); i++)
  32. delete frame[i];
  33. }
  34. unsigned int AnimationFrame::size() {
  35. return frame.size();
  36. }
  37. BoneFrame &AnimationFrame::get(unsigned int i) {
  38. assert(i < frame.size());
  39. return *frame.at(i);
  40. }
  41. void AnimationFrame::add(BoneFrame &b) {
  42. frame.push_back(&b);
  43. }
  44. SkeletalModel::SkeletalModel() {
  45. }
  46. SkeletalModel::~SkeletalModel() {
  47. for (unsigned int i = 0; i < animation.size(); i++)
  48. delete animation[i];
  49. }
  50. int SkeletalModel::getId() {
  51. return id;
  52. }
  53. unsigned int SkeletalModel::size() {
  54. return animation.size();
  55. }
  56. AnimationFrame &SkeletalModel::get(unsigned int i) {
  57. assert(i < animation.size());
  58. return *animation.at(i);
  59. }
  60. void SkeletalModel::add(AnimationFrame &a) {
  61. animation.push_back(&a);
  62. }