summaryrefslogtreecommitdiff
path: root/include/m_Do/m_Do_lib.h
blob: 1484aad971d0382d46abf81c0d913e7147dd5093 (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
#ifndef M_DO_M_DO_LIB_H
#define M_DO_M_DO_LIB_H

#include "JSystem/J3DU/J3DUClipper.h"

typedef struct _GXTexObj GXTexObj;
typedef struct _GXTlutObj GXTlutObj;
typedef struct Vec Vec;
struct ResTIMG;

struct mDoLib_clipper {
    static void changeFar(f32 far) {
        mClipper.setFar(far);
        mClipper.calcViewFrustum();
    }

    static BOOL clip(const Mtx m, Vec* max, Vec* min) {
        return mClipper.clip(m, max, min);
    }

    static BOOL clip(const Mtx m, Vec center, f32 radius) {
        return mClipper.clip(m, center, radius);
    }
    
    static BOOL clip(J3DModel* model) {
        return mClipper.clipByBox(model);
    }

    static f32 getFar() { return mSystemFar; }
    static f32 getFovyRate() { return mFovyRate; }
    
    static void resetFar() {
        mClipper.setFar(mSystemFar);
        mClipper.calcViewFrustum();
    }

    static void setup(f32, f32, f32, f32);

    static J3DUClipper mClipper;
    static f32 mSystemFar;
    static f32 mFovyRate;
};

void mDoLib_project(Vec* src, Vec* dst);
u32 mDoLib_setResTimgObj(ResTIMG* res, GXTexObj* o_texObj, u32 tlut_name, GXTlutObj* o_tlutObj);
void mDoLib_pos2camera(Vec* src, Vec* dst);
u32 mDoLib_cnvind32(u32 r3);
u16 mDoLib_cnvind16(u16 r3);

#endif /* M_DO_M_DO_LIB_H */