2021-03-28 22:49:05 +02:00
|
|
|
#ifndef J3DANMLOADER_H
|
|
|
|
|
#define J3DANMLOADER_H
|
|
|
|
|
|
2024-10-31 20:36:11 -04:00
|
|
|
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
2021-03-28 22:49:05 +02:00
|
|
|
|
2024-01-24 04:00:46 -08:00
|
|
|
enum J3DAnmLoaderDataBaseFlag {
|
|
|
|
|
J3DLOADER_UNK_FLAG0,
|
|
|
|
|
J3DLOADER_UNK_FLAG1,
|
|
|
|
|
};
|
2021-10-11 09:38:53 -07:00
|
|
|
|
2023-09-04 16:17:51 -07:00
|
|
|
class J3DAnmBase;
|
2021-10-11 09:38:53 -07:00
|
|
|
|
2024-04-12 00:10:30 -06:00
|
|
|
/**
|
|
|
|
|
* @ingroup jsystem-j3d
|
|
|
|
|
*
|
|
|
|
|
*/
|
2021-10-11 09:38:53 -07:00
|
|
|
struct J3DAnmLoaderDataBase {
|
2025-11-30 14:23:42 -08:00
|
|
|
static J3DAnmBase* load(void const*, J3DAnmLoaderDataBaseFlag);
|
|
|
|
|
static void setResource(J3DAnmBase*, void const*);
|
2023-08-27 20:09:20 -07:00
|
|
|
|
2024-01-24 04:00:46 -08:00
|
|
|
static J3DAnmBase* load(void const* param_0) { return load(param_0, J3DLOADER_UNK_FLAG0); }
|
2021-10-11 09:38:53 -07:00
|
|
|
};
|
|
|
|
|
|
2024-10-31 20:36:11 -04:00
|
|
|
class J3DAnmLoader {
|
|
|
|
|
public:
|
|
|
|
|
virtual J3DAnmBase* load(const void*) = 0;
|
|
|
|
|
virtual void setResource(J3DAnmBase*, const void*) = 0;
|
2025-11-30 14:23:42 -08:00
|
|
|
virtual ~J3DAnmLoader() {}
|
2024-10-31 20:36:11 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class J3DAnmKeyLoader_v15 : public J3DAnmLoader {
|
|
|
|
|
public:
|
2025-11-30 14:23:42 -08:00
|
|
|
J3DAnmKeyLoader_v15();
|
|
|
|
|
void readAnmTransform(J3DAnmTransformKeyData const*);
|
|
|
|
|
void setAnmTransform(J3DAnmTransformKey*, J3DAnmTransformKeyData const*);
|
|
|
|
|
void readAnmTextureSRT(J3DAnmTextureSRTKeyData const*);
|
|
|
|
|
void setAnmTextureSRT(J3DAnmTextureSRTKey*, J3DAnmTextureSRTKeyData const*);
|
|
|
|
|
void readAnmColor(J3DAnmColorKeyData const*);
|
|
|
|
|
void setAnmColor(J3DAnmColorKey*, J3DAnmColorKeyData const*);
|
|
|
|
|
void readAnmCluster(J3DAnmClusterKeyData const*);
|
|
|
|
|
void setAnmCluster(J3DAnmClusterKey*, J3DAnmClusterKeyData const*);
|
|
|
|
|
void readAnmTevReg(J3DAnmTevRegKeyData const*);
|
|
|
|
|
void setAnmTevReg(J3DAnmTevRegKey*, J3DAnmTevRegKeyData const*);
|
|
|
|
|
void readAnmVtxColor(J3DAnmVtxColorKeyData const*);
|
|
|
|
|
void setAnmVtxColor(J3DAnmVtxColorKey*, J3DAnmVtxColorKeyData const*);
|
2024-10-31 20:36:11 -04:00
|
|
|
|
2025-11-30 14:23:42 -08:00
|
|
|
virtual J3DAnmBase* load(void const*);
|
|
|
|
|
virtual void setResource(J3DAnmBase*, void const*);
|
|
|
|
|
virtual ~J3DAnmKeyLoader_v15();
|
2024-10-31 20:36:11 -04:00
|
|
|
|
|
|
|
|
/* 0x4 */ J3DAnmBase* mAnm;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class J3DAnmFullLoader_v15 : public J3DAnmLoader {
|
|
|
|
|
public:
|
2025-11-30 14:23:42 -08:00
|
|
|
J3DAnmFullLoader_v15();
|
|
|
|
|
void readAnmTransform(J3DAnmTransformFullData const*);
|
|
|
|
|
void setAnmTransform(J3DAnmTransformFull*, J3DAnmTransformFullData const*);
|
|
|
|
|
void readAnmColor(J3DAnmColorFullData const*);
|
|
|
|
|
void setAnmColor(J3DAnmColorFull*, J3DAnmColorFullData const*);
|
|
|
|
|
void readAnmTexPattern(J3DAnmTexPatternFullData const*);
|
|
|
|
|
void setAnmTexPattern(J3DAnmTexPattern*, J3DAnmTexPatternFullData const*);
|
|
|
|
|
void readAnmVisibility(J3DAnmVisibilityFullData const*);
|
|
|
|
|
void setAnmVisibility(J3DAnmVisibilityFull*, J3DAnmVisibilityFullData const*);
|
|
|
|
|
void readAnmCluster(J3DAnmClusterFullData const*);
|
|
|
|
|
void setAnmCluster(J3DAnmClusterFull*, J3DAnmClusterFullData const*);
|
|
|
|
|
void readAnmVtxColor(J3DAnmVtxColorFullData const*);
|
|
|
|
|
void setAnmVtxColor(J3DAnmVtxColorFull*, J3DAnmVtxColorFullData const*);
|
2024-10-31 20:36:11 -04:00
|
|
|
|
2025-11-30 14:23:42 -08:00
|
|
|
virtual J3DAnmBase* load(void const*);
|
|
|
|
|
virtual void setResource(J3DAnmBase*, void const*);
|
|
|
|
|
virtual ~J3DAnmFullLoader_v15();
|
2024-10-31 20:36:11 -04:00
|
|
|
|
|
|
|
|
/* 0x4 */ J3DAnmBase* mAnm;
|
|
|
|
|
};
|
|
|
|
|
|
2021-03-28 22:49:05 +02:00
|
|
|
#endif /* J3DANMLOADER_H */
|