summaryrefslogtreecommitdiff
path: root/include/JSystem/J3DGraphLoader/J3DAnmLoader.h
blob: 5199d4d90031686e0ced4870e33afa7b09907189 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#ifndef J3DANMLOADER_H
#define J3DANMLOADER_H

#include "dolphin/types.h"

enum J3DAnmLoaderDataBaseFlag { J3DLOADER_UNK_FLAG0 };

class J3DAnmBase;
class J3DAnmClusterFull;
struct J3DAnmClusterFullData;
class J3DAnmClusterKey;
struct J3DAnmClusterKeyData;
class J3DAnmColorFull;
struct J3DAnmColorFullData;
class J3DAnmColorKey;
struct J3DAnmColorKeyData;
class J3DAnmTevRegKey;
struct J3DAnmTevRegKeyData;
class J3DAnmTexPattern;
struct J3DAnmTexPatternFullData;
class J3DAnmTextureSRTKey;
struct J3DAnmTextureSRTKeyData;
class J3DAnmTransformFull;
struct J3DAnmTransformFullData;
class J3DAnmTransformKey;
struct J3DAnmTransformKeyData;
class J3DAnmVisibilityFull;
struct J3DAnmVisibilityFullData;
class J3DAnmVtxColorFull;
struct J3DAnmVtxColorFullData;
class J3DAnmVtxColorKey;
struct J3DAnmVtxColorKeyData;

struct J3DAnmLoaderDataBase {
    static J3DAnmBase* load(const void*);
    static void setResource(J3DAnmBase*, const void*);
};

class J3DAnmLoader {
public:
    virtual J3DAnmBase* load(const void*) = 0;
    virtual void setResource(J3DAnmBase*, const void*) = 0;
    virtual ~J3DAnmLoader() {}
};

class J3DAnmFullLoader_v15 : public J3DAnmLoader {
public:
    J3DAnmFullLoader_v15();
    ~J3DAnmFullLoader_v15();
    J3DAnmBase* load(const void*);
    void setResource(J3DAnmBase*, const void*);
    void readAnmTransform(const J3DAnmTransformFullData*);
    void setAnmTransform(J3DAnmTransformFull*, const J3DAnmTransformFullData*);
    void readAnmColor(const J3DAnmColorFullData*);
    void setAnmColor(J3DAnmColorFull*, const J3DAnmColorFullData*);
    void readAnmTexPattern(const J3DAnmTexPatternFullData*);
    void setAnmTexPattern(J3DAnmTexPattern*, const J3DAnmTexPatternFullData*);
    void readAnmVisibility(const J3DAnmVisibilityFullData*);
    void setAnmVisibility(J3DAnmVisibilityFull*, const J3DAnmVisibilityFullData*);
    void readAnmCluster(const J3DAnmClusterFullData*);
    void setAnmCluster(J3DAnmClusterFull*, const J3DAnmClusterFullData*);
    void readAnmVtxColor(const J3DAnmVtxColorFullData*);
    void setAnmVtxColor(J3DAnmVtxColorFull*, const J3DAnmVtxColorFullData*);

    J3DAnmBase* mAnm;
};

class J3DAnmKeyLoader_v15 : public J3DAnmLoader {
public:
    J3DAnmKeyLoader_v15();
    ~J3DAnmKeyLoader_v15();
    J3DAnmBase* load(const void*);
    void setResource(J3DAnmBase*, const void*);
    void readAnmTransform(const J3DAnmTransformKeyData*);
    void setAnmTransform(J3DAnmTransformKey*, const J3DAnmTransformKeyData*);
    void readAnmTextureSRT(const J3DAnmTextureSRTKeyData*);
    void setAnmTextureSRT(J3DAnmTextureSRTKey*, const J3DAnmTextureSRTKeyData*);
    void readAnmColor(const J3DAnmColorKeyData*);
    void setAnmColor(J3DAnmColorKey*, const J3DAnmColorKeyData*);
    void readAnmCluster(const J3DAnmClusterKeyData*);
    void setAnmCluster(J3DAnmClusterKey*, const J3DAnmClusterKeyData*);
    void readAnmTevReg(const J3DAnmTevRegKeyData*);
    void setAnmTevReg(J3DAnmTevRegKey*, const J3DAnmTevRegKeyData*);
    void readAnmVtxColor(const J3DAnmVtxColorKeyData*);
    void setAnmVtxColor(J3DAnmVtxColorKey*, const J3DAnmVtxColorKeyData*);

    J3DAnmBase* mAnm;
};

#endif /* J3DANMLOADER_H */