assimpAppSequence.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #ifndef _MMATH_H_
  3. #include "math/mMath.h"
  4. #endif
  5. #ifndef _TVECTOR_H_
  6. #include "core/util/tVector.h"
  7. #endif
  8. #ifndef _TSSHAPE_H_
  9. #include "ts/tsShape.h"
  10. #endif
  11. #ifndef _APPNODE_H_
  12. #include "ts/loader/appNode.h"
  13. #endif
  14. #ifndef _APPMESH_H_
  15. #include "ts/loader/appMesh.h"
  16. #endif
  17. #ifndef _APPSEQUENCE_H_
  18. #include "ts/loader/appSequence.h"
  19. #endif
  20. #include <assimp/scene.h>
  21. class AssimpAppSequence : public AppSequence
  22. {
  23. String mSequenceName;
  24. F32 seqStart;
  25. F32 seqEnd;
  26. F32 mTimeMultiplier; // The factor needed to convert the sequence data timestamp to seconds
  27. void determineTimeMultiplier(aiAnimation* a);
  28. void calculateSequenceEnd(aiAnimation* a);
  29. public:
  30. AssimpAppSequence(aiAnimation *a);
  31. ~AssimpAppSequence();
  32. aiAnimation *mAnim;
  33. void setActive(bool active) override;
  34. S32 getNumTriggers() const override { return 0; }
  35. void getTrigger(S32 index, TSShape::Trigger& trigger) const override { trigger.state = 0; }
  36. const char* getName() const override { return mSequenceName.c_str(); }
  37. F32 getStart() const override { return seqStart; }
  38. F32 getEnd() const override { return seqEnd; }
  39. void setEnd(F32 end) { seqEnd = end; }
  40. U32 getFlags() const override;
  41. F32 getPriority() const override;
  42. F32 getBlendRefTime() const override;
  43. };