sead
Loading...
Searching...
No Matches
aglEnvObjMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <environment/aglEnvObjSet.h>
4#include <math/seadMatrix.h>
5#include <utility/aglNamedObjMgr.h>
6#include <utility/aglParameterIO.h>
7#include <utility/aglResParameter.h>
8
9namespace agl {
10
11class RenderBuffer;
12
13namespace env {
14
15class EnvObjMgr : public EnvObjBuffer, public utl::INamedObjMgr, public utl::IParameterIO
16{
28 static_assert(sizeof(ViewInfo) == 0x88);
29
30public:
31 class InitArg : public AllocateArg
32 {
33 public:
34 InitArg();
35
36 void setGroupMax(s32 max)
37 {
38 mGroupMax = max;
39 }
40
42 {
43 return mGroupMax;
44 }
45
46 void setViewMax(s32 max)
47 {
48 mViewMax = max;
49 }
50
52 {
53 return mViewMax;
54 }
55
56 private:
59 };
60 static_assert(sizeof(InitArg) == 0x110);
61
62 class TypeNode : public utl::IParameterList, public sead::hostio::Node
63 {
64 public:
65 TypeNode();
66
67 virtual ~TypeNode()
68 {
69 }
70
71 void initialize(s32 type, EnvObjMgr* p_mgr, sead::Heap* heap);
72
73 protected:
76 };
77 static_assert(sizeof(TypeNode) == 0x88);
78
79public:
80 EnvObjMgr();
81 virtual ~EnvObjMgr();
82
83 virtual bool save(const sead::SafeString& path, u32) const
84 {
85 return saveImpl_(path, 1, -1);
86 }
87
89 {
90 applyResource_(arc, arc, 1.0f);
91 }
92
94
95 virtual const sead::SafeString& getSaveFilePath() const
96 {
97 return mSaveFilePath;
98 }
99
100 virtual const sead::SafeString& getNamedObjName(s32 index, s32 type) const
101 {
102 return getEnvObj(type, index)->getEnvObjName();
103 }
104
105 virtual s32 getNamedObjNum(s32 type) const
106 {
107 return getEnvObjMaxNum(type);
108 }
109
110public:
111 void initialize(const InitArg& arg, sead::Heap* heap = nullptr);
112
114 {
115 applyResource_(arc, arc, 1.0f);
116 }
117
119 {
120 applyResource_(arc_a, arc_b, t);
121 }
122
124 {
125 mFlag.setBit(0);
126 mFlag.setBit(1);
127 }
128
129 void update();
130
131 void updateView(const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx, s32 view_index);
132
133 void constructList();
134
135 const EnvObjSet& getEnvObjSet() const
136 {
137 return mEnvObjSet;
138 }
139
140private:
141 bool saveImpl_(const sead::SafeString&, u32, s32) const;
142
144
145 ShaderMode drawFog_(s32 view_index, const EnvObj& obj, f32 start, f32 end, const sead::Vector3f& direction, const sead::Color4f& color, ShaderMode mode) const;
146
147private:
154 u32 mConstructListType; // 0 == By Name, 1 == By EnvObjSet, 2 == By Group
156 sead::PtrArray<void> _448; // Unused
161
162 friend class EnvObj;
163};
164static_assert(sizeof(EnvObjMgr) == 0x464, "agl::env::EnvObjMgr size mismatch");
165
166} }
Definition aglRenderBuffer.h:15
Definition aglEnvObjBuffer.h:13
Definition aglEnvObjBuffer.h:10
Definition aglEnvObjMgr.h:32
void setViewMax(s32 max)
Definition aglEnvObjMgr.h:46
s32 getGroupMax() const
Definition aglEnvObjMgr.h:41
s32 getViewMax() const
Definition aglEnvObjMgr.h:51
s32 mGroupMax
Definition aglEnvObjMgr.h:57
void setGroupMax(s32 max)
Definition aglEnvObjMgr.h:36
s32 mViewMax
Definition aglEnvObjMgr.h:58
InitArg()
Definition aglEnvObjMgr.cpp:528
Definition aglEnvObjMgr.h:63
void initialize(s32 type, EnvObjMgr *p_mgr, sead::Heap *heap)
Definition aglEnvObjMgr.cpp:541
TypeNode()
Definition aglEnvObjMgr.cpp:534
EnvObjMgr * mpMgr
Definition aglEnvObjMgr.h:75
s32 mType
Definition aglEnvObjMgr.h:74
virtual ~TypeNode()
Definition aglEnvObjMgr.h:67
Definition aglEnvObjMgr.h:16
sead::PtrArray< EnvObj > mEnvObjPtrArray
Definition aglEnvObjMgr.h:149
s32 mConstructListGroupIndex
Definition aglEnvObjMgr.h:157
virtual ~EnvObjMgr()
Definition aglEnvObjMgr.cpp:21
u32 _460
Definition aglEnvObjMgr.h:160
u32 mConstructListType
Definition aglEnvObjMgr.h:154
void applyResourceLerp(utl::ResParameterArchive arc_a, utl::ResParameterArchive arc_b, f32 t)
Definition aglEnvObjMgr.h:118
virtual void applyResParameterArchive(utl::ResParameterArchive arc)
Definition aglEnvObjMgr.h:88
EnvObjMgr()
Definition aglEnvObjMgr.cpp:9
void reconstruct()
Definition aglEnvObjMgr.h:123
const EnvObjSet & getEnvObjSet() const
Definition aglEnvObjMgr.h:135
void updateView(const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, s32 view_index)
Definition aglEnvObjMgr.cpp:158
void constructList()
Definition aglEnvObjMgr.cpp:181
void update()
Definition aglEnvObjMgr.cpp:119
sead::PtrArray< void > _448
Definition aglEnvObjMgr.h:156
EnvObjSet mEnvObjSet
Definition aglEnvObjMgr.h:152
virtual const sead::SafeString & getSaveFilePath() const
Definition aglEnvObjMgr.h:95
u32 _45c
Definition aglEnvObjMgr.h:159
f32 _24c
Definition aglEnvObjMgr.h:151
s32 mApplyResourceGroupIndex
Definition aglEnvObjMgr.h:158
bool saveImpl_(const sead::SafeString &, u32, s32) const
Definition aglEnvObjMgr.cpp:255
virtual const sead::SafeString & getNamedObjName(s32 index, s32 type) const
Definition aglEnvObjMgr.h:100
sead::Buffer< TypeNode > mTypeNode
Definition aglEnvObjMgr.h:155
sead::UnsafeArray< u32, 4 > _42c
Definition aglEnvObjMgr.h:153
void applyResource(utl::ResParameterArchive arc)
Definition aglEnvObjMgr.h:113
void initialize(const InitArg &arg, sead::Heap *heap=nullptr)
Definition aglEnvObjMgr.cpp:36
ShaderMode drawFog_(s32 view_index, const EnvObj &obj, f32 start, f32 end, const sead::Vector3f &direction, const sead::Color4f &color, ShaderMode mode) const
Definition aglEnvObjMgr.cpp:509
sead::Buffer< ViewInfo > mViewInfo
Definition aglEnvObjMgr.h:150
virtual void listenPropertyEventFromGroup(GroupEventType, Group *)
Definition aglEnvObjMgr.cpp:250
void applyResource_(utl::ResParameterArchive arc_a, utl::ResParameterArchive arc_b, f32 t)
Definition aglEnvObjMgr.cpp:262
virtual s32 getNamedObjNum(s32 type) const
Definition aglEnvObjMgr.h:105
virtual bool save(const sead::SafeString &path, u32) const
Definition aglEnvObjMgr.h:83
sead::BitFlag32 mFlag
Definition aglEnvObjMgr.h:148
Definition aglEnvObjSet.h:14
Definition aglEnvObj.h:17
Definition aglNamedObjMgr.h:20
Definition aglNamedObjMgr.h:13
GroupEventType
Definition aglNamedObjMgr.h:16
Definition aglParameterIO.h:9
Definition aglParameterList.h:12
Definition aglResParameter.h:206
Definition seadBuffer.h:13
Definition seadHeap.h:23
Definition seadPtrArray.h:111
Definition seadHostIODummy.h:25
Definition aglEnvObj.cpp:21
Definition aglImageFilter2D.h:11
Definition aglDisplayList.cpp:5
ShaderMode
Definition aglShaderEnum.h:27
Definition seadHeap.h:14
Definition seadAssert.h:44
BitFlag< u32 > BitFlag32
Definition seadBitFlag.h:125
Matrix44< f32 > Matrix44f
Definition seadMatrix.h:343
SafeStringBase< char > SafeString
Definition seadSafeString.h:409
Vector3< f32 > Vector3f
Definition seadVector.h:239
Matrix34< f32 > Matrix34f
Definition seadMatrix.h:342
Definition aglEnvObjMgr.h:18
sead::Matrix44f proj_mtx
Definition aglEnvObjMgr.h:20
f32 near
Definition aglEnvObjMgr.h:21
f32 far
Definition aglEnvObjMgr.h:22
f32 _84
Definition aglEnvObjMgr.h:26
u32 _78
Definition aglEnvObjMgr.h:23
sead::Matrix34f view_mtx
Definition aglEnvObjMgr.h:19
sead::BitFlag32 _7c
Definition aglEnvObjMgr.h:24
RenderBuffer * p_render_buffer
Definition aglEnvObjMgr.h:25
Definition seadColor.h:9