From 8da45501acc89b3a4368a802274a1bfd57eeff77 Mon Sep 17 00:00:00 2001 From: Woohyung Choi <201421062@sce212.ajou.ac.kr> Date: Sat, 14 Dec 2019 00:02:01 +0900 Subject: [PATCH] Make Light class, Scene class. --- LearnOpenGL/LearnOpenGL.vcxproj | 3 +++ LearnOpenGL/LearnOpenGL.vcxproj.filters | 9 ++++++++ LearnOpenGL/Light.cpp | 18 +++++++++++++++ LearnOpenGL/Light.h | 30 +++++++++++++++++++++++++ LearnOpenGL/Scene.h | 5 +++++ 5 files changed, 65 insertions(+) create mode 100644 LearnOpenGL/Light.cpp create mode 100644 LearnOpenGL/Light.h create mode 100644 LearnOpenGL/Scene.h diff --git a/LearnOpenGL/LearnOpenGL.vcxproj b/LearnOpenGL/LearnOpenGL.vcxproj index 132c65d..902ff56 100644 --- a/LearnOpenGL/LearnOpenGL.vcxproj +++ b/LearnOpenGL/LearnOpenGL.vcxproj @@ -123,6 +123,7 @@ </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="FileSystem.cpp" /> + <ClCompile Include="Light.cpp" /> <ClCompile Include="Logger.cpp" /> <ClCompile Include="ResourceLoader.cpp" /> <ClCompile Include="OpenGLWrapper.cpp" /> @@ -132,9 +133,11 @@ <ItemGroup> <ClInclude Include="Camera.h" /> <ClInclude Include="FileSystem.h" /> + <ClInclude Include="Light.h" /> <ClInclude Include="Logger.h" /> <ClInclude Include="ResourceLoader.h" /> <ClInclude Include="OpenGLWrapper.h" /> + <ClInclude Include="Scene.h" /> <ClInclude Include="ShaderType.h" /> <ClInclude Include="Transform.h" /> </ItemGroup> diff --git a/LearnOpenGL/LearnOpenGL.vcxproj.filters b/LearnOpenGL/LearnOpenGL.vcxproj.filters index 6ce7b36..f4a72bb 100644 --- a/LearnOpenGL/LearnOpenGL.vcxproj.filters +++ b/LearnOpenGL/LearnOpenGL.vcxproj.filters @@ -33,6 +33,9 @@ <ClCompile Include="Transform.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="Light.cpp"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="ShaderType.h"> @@ -56,5 +59,11 @@ <ClInclude Include="Transform.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="Scene.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Light.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project> \ No newline at end of file diff --git a/LearnOpenGL/Light.cpp b/LearnOpenGL/Light.cpp new file mode 100644 index 0000000..60c8904 --- /dev/null +++ b/LearnOpenGL/Light.cpp @@ -0,0 +1,18 @@ +#include "Light.h" + +Light::Light(glm::vec3 _ambient, glm::vec3 _diffuse, glm::vec3 _specular) +{ + ambient = _ambient; + diffuse = _diffuse; + specular = _specular; +} + +Transform *Light::get_transform() +{ + return &transform; +} + +glm::vec3 DirectionalLight::get_light_direction() +{ + return get_transform()->get_front(); +} \ No newline at end of file diff --git a/LearnOpenGL/Light.h b/LearnOpenGL/Light.h new file mode 100644 index 0000000..0a0da49 --- /dev/null +++ b/LearnOpenGL/Light.h @@ -0,0 +1,30 @@ +#pragma once + +#include <GL/glew.h> + +#include <glm/glm.hpp> +#include <glm/gtc/matrix_transform.hpp> +#include <glm/gtc/type_ptr.hpp> + +#include "Transform.h" + +class Light +{ +private: + Transform transform; + +public: + Light(glm::vec3 _ambient, glm::vec3 _diffuse, glm::vec3 _specular); + + Transform *get_transform(); + + glm::vec3 ambient; + glm::vec3 diffuse; + glm::vec3 specular; +}; + +class DirectionalLight : Light +{ +public: + glm::vec3 get_light_direction(); +}; \ No newline at end of file diff --git a/LearnOpenGL/Scene.h b/LearnOpenGL/Scene.h new file mode 100644 index 0000000..e44f64a --- /dev/null +++ b/LearnOpenGL/Scene.h @@ -0,0 +1,5 @@ +#pragma once + +class Scene +{ +}; \ No newline at end of file -- GitLab