Torque3D/Engine/source/ts/assimp/assimpAppSequence.h
marauder2k7 8c812cb448 initial commit
This change makes the memory manager work again for detecting leaks, the built in one kept coming into de-ref and other bugs so this is the start of a refactor to get it working.
2025-05-12 11:50:13 +01:00

67 lines
1.5 KiB
C++

#pragma once
#ifndef _MMATH_H_
#include "math/mMath.h"
#endif
#ifndef _TVECTOR_H_
#include "core/util/tVector.h"
#endif
#ifndef _TSSHAPE_H_
#include "ts/tsShape.h"
#endif
#ifndef _APPNODE_H_
#include "ts/loader/appNode.h"
#endif
#ifndef _APPMESH_H_
#include "ts/loader/appMesh.h"
#endif
#ifndef _APPSEQUENCE_H_
#include "ts/loader/appSequence.h"
#endif
#if !defined(TORQUE_DISABLE_MEMORY_MANAGER)
#ifdef new
#undef new
#endif
#endif
#include <assimp/scene.h>
#if !defined(TORQUE_DISABLE_MEMORY_MANAGER)
# define _new new(__FILE__, __LINE__)
# define new _new
#endif
class AssimpAppSequence : public AppSequence
{
String mSequenceName;
F32 seqStart;
F32 seqEnd;
F32 mTimeMultiplier; // The factor needed to convert the sequence data timestamp to seconds
void determineTimeMultiplier(aiAnimation* a);
void calculateSequenceEnd(aiAnimation* a);
public:
AssimpAppSequence(aiAnimation *a);
~AssimpAppSequence();
aiAnimation *mAnim;
void setActive(bool active) override;
S32 getNumTriggers() const override { return 0; }
void getTrigger(S32 index, TSShape::Trigger& trigger) const override { trigger.state = 0; }
const char* getName() const override { return mSequenceName.c_str(); }
F32 getStart() const override { return seqStart; }
F32 getEnd() const override { return seqEnd; }
void setEnd(F32 end) { seqEnd = end; }
U32 getFlags() const override;
F32 getPriority() const override;
F32 getBlendRefTime() const override;
};