sead
Loading...
Searching...
No Matches
aglLight.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadBuffer.h>
4#include <environment/aglEnvObj.h>
5#include <math/seadMatrix.h>
6#include <utility/aglParameterDirection.h>
7
8namespace agl { namespace env {
9
10class AmbientLight : public EnvObj
11{
14
15public:
17 virtual ~AmbientLight();
18
19 virtual void update();
20 virtual ShaderMode drawDebug(const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx, s32 view_index, ShaderMode mode) const;
21
22public:
23 const sead::Color4f& getColor() const { return *mColor; }
24 f32 getIntensity() const { return *mIntensity; }
25
26private:
29};
30static_assert(sizeof(AmbientLight) == 0x13C);
31
32class HemisphereLight : public EnvObj
33{
36
37public:
39 virtual ~HemisphereLight();
40
41 virtual void initialize(s32 view_max, sead::Heap* heap);
42 virtual void updateView(const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx, s32 view_index);
43 virtual ShaderMode drawDebug(const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx, s32 view_index, ShaderMode mode) const;
44
45public:
46 const sead::Color4f& getSkyColor() const { return *mSkyColor; }
47 const sead::Color4f& getGroundColor() const { return *mGroundColor; }
48 f32 getIntensity() const { return *mIntensity; }
49 const sead::Vector3f& getDirection() const { return *mDirection; }
50 const sead::Vector3f& getDiffuseDir(s32 view_index) const { return mDiffuseDir[view_index]; }
51
52private:
58};
59static_assert(sizeof(HemisphereLight) == 0x180);
60
62{
65
66public:
68 virtual ~DirectionalLight();
69
70 virtual void initialize(s32 view_max, sead::Heap* heap);
71 virtual void updateView(const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx, s32 view_index);
72 virtual ShaderMode drawDebug(const sead::Matrix34f& view_mtx, const sead::Matrix44f& proj_mtx, s32 view_index, ShaderMode mode) const;
73 virtual void callbackLoadData();
74
75public:
76 const sead::Color4f& getDiffuseColor() const { return *mDiffuseColor; }
77 const sead::Color4f& getSpecularColor() const { return *mSpecularColor; }
78 const sead::Color4f& getBacksideColor() const { return *mBacksideColor; }
79 f32 getIntensity() const { return *mIntensity; }
80 const sead::Vector3f& getDirection() const { return *mDirection; }
81 const sead::Vector3f& getDiffuseDir(s32 view_index) const { return mDiffuseDir[view_index]; }
82
83private:
84 void syncFromDirection_();
85
86private:
96};
97static_assert(sizeof(DirectionalLight) == 0x1E4);
98
99} }
#define AGL_ENV_OBJ_TYPE_INFO()
Definition aglEnvObj.h:160
Definition aglLight.h:11
virtual ShaderMode drawDebug(const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, s32 view_index, ShaderMode mode) const
Definition aglLight.cpp:23
utl::Parameter< sead::Color4f > mColor
Definition aglLight.h:27
virtual void update()
Definition aglLight.cpp:19
const sead::Color4f & getColor() const
Definition aglLight.h:23
virtual ~AmbientLight()
Definition aglLight.cpp:15
utl::Parameter< f32 > mIntensity
Definition aglLight.h:28
f32 getIntensity() const
Definition aglLight.h:24
AmbientLight()
Definition aglLight.cpp:9
Definition aglLight.h:62
sead::Vector2f _1dc
Definition aglLight.h:95
sead::Buffer< sead::Vector3f > mDiffuseDir
Definition aglLight.h:92
sead::Vector3f _1d0
Definition aglLight.h:94
const sead::Color4f & getBacksideColor() const
Definition aglLight.h:78
f32 getIntensity() const
Definition aglLight.h:79
utl::Parameter< sead::Color4f > mDiffuseColor
Definition aglLight.h:87
utl::ParameterDirection3f mDirection
Definition aglLight.h:91
utl::Parameter< sead::Color4f > mSpecularColor
Definition aglLight.h:88
utl::Parameter< sead::Color4f > mBacksideColor
Definition aglLight.h:89
virtual void updateView(const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, s32 view_index)
Definition aglLight.cpp:92
const sead::Vector3f & getDiffuseDir(s32 view_index) const
Definition aglLight.h:81
virtual ShaderMode drawDebug(const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, s32 view_index, ShaderMode mode) const
Definition aglLight.cpp:98
void syncFromDirection_()
Definition aglLight.cpp:73
DirectionalLight()
Definition aglLight.cpp:57
const sead::Color4f & getDiffuseColor() const
Definition aglLight.h:76
virtual ~DirectionalLight()
Definition aglLight.cpp:68
virtual void callbackLoadData()
Definition aglLight.cpp:104
const sead::Vector3f & getDirection() const
Definition aglLight.h:80
utl::Parameter< f32 > mIntensity
Definition aglLight.h:90
const sead::Color4f & getSpecularColor() const
Definition aglLight.h:77
sead::Matrix34f _1a0
Definition aglLight.h:93
virtual void initialize(s32 view_max, sead::Heap *heap)
Definition aglLight.cpp:87
Definition aglEnvObj.h:17
Definition aglLight.h:33
const sead::Color4f & getGroundColor() const
Definition aglLight.h:47
virtual ~HemisphereLight()
Definition aglLight.cpp:36
sead::Buffer< sead::Vector3f > mDiffuseDir
Definition aglLight.h:57
const sead::Vector3f & getDirection() const
Definition aglLight.h:49
virtual ShaderMode drawDebug(const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, s32 view_index, ShaderMode mode) const
Definition aglLight.cpp:52
HemisphereLight()
Definition aglLight.cpp:28
const sead::Color4f & getSkyColor() const
Definition aglLight.h:46
const sead::Vector3f & getDiffuseDir(s32 view_index) const
Definition aglLight.h:50
virtual void updateView(const sead::Matrix34f &view_mtx, const sead::Matrix44f &proj_mtx, s32 view_index)
Definition aglLight.cpp:46
utl::Parameter< sead::Color4f > mSkyColor
Definition aglLight.h:53
virtual void initialize(s32 view_max, sead::Heap *heap)
Definition aglLight.cpp:41
f32 getIntensity() const
Definition aglLight.h:48
utl::Parameter< sead::Color4f > mGroundColor
Definition aglLight.h:54
utl::ParameterDirection3f mDirection
Definition aglLight.h:56
utl::Parameter< f32 > mIntensity
Definition aglLight.h:55
Definition aglParameterDirection.h:8
Definition aglParameter.h:107
Definition seadBuffer.h:13
Definition seadHeap.h:23
Definition aglEnvObj.cpp:21
Definition aglImageFilter2D.h:11
Definition aglDisplayList.cpp:5
ShaderMode
Definition aglShaderEnum.h:27
Definition seadAssert.h:44
Vector2< f32 > Vector2f
Definition seadVector.h:238
Matrix44< f32 > Matrix44f
Definition seadMatrix.h:343
Vector3< f32 > Vector3f
Definition seadVector.h:239
Matrix34< f32 > Matrix34f
Definition seadMatrix.h:342
#define SEAD_RTTI_OVERRIDE(CLASS, BASE)
Definition seadRuntimeTypeInfo.h:96
Definition seadColor.h:9