thunderbrew/src/model/CM2Lighting.hpp
2023-01-02 13:17:18 -06:00

48 lines
1.4 KiB
C++

#ifndef MODEL_C_M2_LIGHTING_HPP
#define MODEL_C_M2_LIGHTING_HPP
#include <tempest/Plane.hpp>
#include <tempest/Sphere.hpp>
#include <tempest/Vector.hpp>
class CM2Light;
class CM2Scene;
class CM2Lighting {
public:
// Member variables
CM2Scene* m_scene;
CAaSphere sphere4;
uint32_t m_flags;
C3Vector vector18;
C3Vector vector24;
C3Vector vector30;
C3Vector vector3C;
C3Vector vector48;
C3Vector m_sunAmbient;
C3Vector m_sunDiffuse;
C3Vector m_sunSpecular;
C3Vector m_sunDir;
CM2Light* m_lights[4];
uint32_t m_lightCount;
float m_fogStart;
float m_fogEnd;
float m_fogScale;
float m_fogDensity;
C3Vector m_fogColor;
C4Plane m_liquidPlane;
// Member functions
void AddAmbient(const C3Vector& ambColor);
void AddDiffuse(const C3Vector& dirColor, const C3Vector& dir);
void AddLight(CM2Light* light);
void AddSpecular(const C3Vector& specColor);
void CameraSpace(void);
void Initialize(CM2Scene* scene, const CAaSphere& a3);
void SetFog(const C3Vector& fogColor, float fogStart, float fogEnd);
void SetFog(const C3Vector& fogColor, float fogStart, float fogEnd, float fogDensity);
void SetupGxLights(const C3Vector* a2);
void SetupSunlight(void);
};
#endif