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