summaryrefslogtreecommitdiff
path: root/include/GScamera.h
blob: 2b73c272d904e336d1432c23aaf6b3b44b0d54ab (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
#ifndef POKEREVO_GSCAMERA_H
#define POKEREVO_GSCAMERA_H

#include "GSnull.h"
#include "code_801DD5C8.h"

class GScamera : public GSnull
{
    u32 unk104; // flags
    gUnkClass10* unk108;
    Mtx44 unk10C; // orthographic projection matrix. TODO: this could be a C++ wrapper for Mtx44
    
    // TODO: Is unk14C~unk164 an array of floats initialized to 0s with an initializer list?
    // NOTE: This hack is only needed because GScamera's constructors write 0 to unk14C~unk164 
    // as if they were s32's, yet other functions treat them as floats
    union s32float
    { 
        s32 i;
        float f;
    };
    
    s32float unk14C;
    s32float unk150;
    s32float unk154;
    s32float unk158;
    s32float unk15C;
    s32float unk160;
    s32float unk164;
    
    // view volume coordinates for the orthographic projection matrix
    float unk168; // top
    float unk16C; // bottom
    float unk170; // left
    float unk174; // right
    
    float unk178;
    
    Vec unk17C;
    Vec unk188;
    Vec unk194;
    Vec unk1A0;
    Point3d unk1AC; // camera position
    Vec unk1B8; // camera up vector
    Point3d unk1C4; // target posiiton
    GScamera* unk1D0;
    Mtx unk1D4; // viewing matrix
    Mtx unk204; // inverse of the viewing matrix
    Mtx unk234; // inverse-transpose of the viewing matrix
public:
    GScamera(); // 801DDF78
    GScamera(void* p1, gUnkClass10* p2); // 801DE084
    void func_801DE1F8();
    void func_801DE524();
    friend void func_801DEA3C(Mtx p1, GScamera* p2, Mtx p3, BOOL p4);
    void lbl_801DEEF8(gUnkClass12* p1, u32 p2, float p3);
    virtual ~GScamera();  // 801DE19C
    virtual void func1(float p1); // 801DECBC
    virtual void func2(BOOL p1); // 801DED3C
    virtual void func3(); // 801DE5F8
};

#endif //POKEREVO_GSCAMERA_H