1#pragma once
2
3#include <heap/seadHeap.h>
4#include <math/seadMatrix.h>
5
6namespace agl {
7class DrawContext;
8}
9
10namespace al {
11class ModelOcclusionQuery;
12
13class ModelOcclusionCullingDirector {
14public:
15 ModelOcclusionCullingDirector();
16 ~ModelOcclusionCullingDirector();
17
18 void initialize(s32, sead::Heap*);
19 bool isEnable() const;
20 void addQuery(ModelOcclusionQuery*);
21 void removeQuery(ModelOcclusionQuery*);
22 void clearRequest();
23 void update();
24 void calc();
25 void updateViewGpu(s32, const sead::Matrix34f&, const sead::Matrix44f&);
26 void draw(agl::DrawContext*, s32) const;
27
28private:
29 void* _0[4];
30};
31
32static_assert(sizeof(ModelOcclusionCullingDirector) == 0x20);
33
34} // namespace al
35