1#pragma once
2
3#include <math/seadBoundBox.h>
4#include <math/seadMatrix.h>
5#include <math/seadVector.h>
6
7namespace al {
8class IUseCamera;
9class ByamlIter;
10class GraphicsQualityInfo;
11
12class ModelLodCtrl {
13public:
14 ModelLodCtrl(IUseCamera*, const sead::Vector3f*, const sead::Matrix34f*, const sead::Vector3f*,
15 const sead::BoundBox3f&, s32);
16 void init(const ByamlIter&);
17 bool isValidate() const;
18 bool isEnableMaterialLod() const;
19 s32 getModelLevel() const;
20 s32 getModelLevelNoClamp() const;
21 s32 getShadowLevel() const;
22 s32 getMaterialLevel() const;
23 void setDistanceScale(f32);
24 void update();
25
26private:
27 void* padding[0x68 / 8];
28};
29
30static_assert(sizeof(ModelLodCtrl) == 0x68);
31
32class ModelLodAllCtrl {
33public:
34 ModelLodAllCtrl(const GraphicsQualityInfo*);
35 void registerLodCtrl(ModelLodCtrl*);
36 void endInit();
37 void updateLodAll();
38 void update();
39};
40
41} // namespace al
42