--- /dev/null
+#pragma once
+
+#include "Lights\PointLight.h"
+#include "Lights\DirectionalLight.h"
+#include "Lights\AmbientLight.h"
+
--- /dev/null
+#include "AmbientLight.h"
+
+AmbientLight::AmbientLight(const vec3 & _color) :
+ Light(_color)
+{
+}
+
+AmbientLight::~AmbientLight()
+{
+}
--- /dev/null
+#pragma once
+
+#include "../../GLM.h"
+#include "Light.h"
+
+class AmbientLight
+ : public Light
+{
+public:
+ AmbientLight(const vec3& _color);
+
+ virtual ~AmbientLight();
+
+ /*Change Light*/
+
+
+protected:
+
+};
\ No newline at end of file
--- /dev/null
+#include "DirectionalLight.h"
+
+DirectionalLight::DirectionalLight(const vec3& _position, const vec3& _color, const vec3& _direction) :
+ Light(_color),
+ position(_position),
+ direction(_direction)
+{
+
+}
+
+DirectionalLight::~DirectionalLight()
+{
+
+}
+
+void DirectionalLight::changePosition(const vec3& _position)
+{
+ position = _position;
+}
+
+void DirectionalLight::changeDirection(const vec3& _direction)
+{
+ direction = _direction;
+}
\ No newline at end of file
--- /dev/null
+#pragma once
+
+#include "../../GLM.h"
+#include "Light.h"
+
+class DirectionalLight
+ : public Light
+{
+public:
+ DirectionalLight(const vec3& _color, const vec3& _position, const vec3& _direction);
+
+ virtual ~DirectionalLight();
+
+ /*Change Light*/
+ virtual void changePosition(const vec3& position);
+ virtual void changeDirection(const vec3& direction);
+
+protected:
+ vec3 position;
+ vec3 direction;
+};
\ No newline at end of file
--- /dev/null
+#include "Light.h"
+
+Light::Light(const vec3 & _color) : color(_color)
+{
+}
+
+Light::~Light()
+{
+}
+
+void Light::switchLight(swLight _switch)
+{
+ switch (_switch)
+ {
+ default:
+ case SWITCH:
+ active = !active;
+ break;
+ case ON:
+ active = true;
+ break;
+ case OFF:
+ active = false;
+ break;
+ }
+}
+
+void Light::changeColor(const vec3 & _color)
+{
+ color = _color;
+}
--- /dev/null
+#pragma once
+
+#include "../../GLM.h"
+
+
+enum swLight {
+ ON,
+ OFF,
+ SWITCH
+};
+
+class Light
+{
+public:
+ Light(const vec3& _color);
+
+ virtual ~Light();
+
+ virtual void switchLight(swLight = SWITCH);
+
+ //Calculate DepthBuffers & CO
+ virtual void usePreProcess();
+
+ //Load light Position and DephBuffers
+ virtual void useFinalDraw(); //ID? for LightArrayPosition
+
+ /*Change Light*/
+ virtual void changeColor(const vec3& color);
+
+protected:
+ vec3 color;
+ bool active = true;
+};
\ No newline at end of file
--- /dev/null
+#include "PointLight.h"
+#include "../Graphix.h"
+
+
+
+
+struct CameraDirection
+{
+ GLenum CubemapFace;
+ vec3 Target;
+ vec3 Up;
+};
+
+CameraDirection gCameraDirections[6] =
+{
+ {GL_TEXTURE_CUBE_MAP_POSITIVE_X, vec3(1.0f, 0.0f, 0.0f), vec3(0.0f, -1.0f, 0.0f)},
+ {GL_TEXTURE_CUBE_MAP_NEGATIVE_X, vec3(-1.0f, 0.0f, 0.0f), vec3(0.0f, -1.0f, 0.0f)},
+ {GL_TEXTURE_CUBE_MAP_POSITIVE_Y, vec3(0.0f, 1.0f, 0.0f), vec3(0.0f, 0.0f, -1.0f)},
+ {GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, vec3(0.0f, -1.0f, 0.0f), vec3(0.0f, 0.0f, 1.0f)},
+ {GL_TEXTURE_CUBE_MAP_POSITIVE_Z, vec3(0.0f, 0.0f, 1.0f), vec3(0.0f, -1.0f, 0.0f)},
+ {GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, vec3(0.0f, 0.0f, -1.0f), vec3(0.0f, -1.0f, 0.0f)}
+};
+
+
+
+
+
+PointLight::PointLight(const vec3& _position,const vec3& _color) :
+ Light(_color),
+ position(_position)
+{
+
+}
+
+PointLight::~PointLight()
+{
+
+}
+
+void PointLight::changePosition(const vec3& _position)
+{
+ position = _position;
+}
--- /dev/null
+#pragma once
+
+#include "../../GLM.h"
+#include "Light.h"
+
+class PointLight
+ : public Light
+{
+public:
+ PointLight(const vec3& _position, const vec3& _color);
+
+ virtual ~PointLight();
+
+
+ /*Change Light*/
+ virtual void changePosition(const vec3& position);
+
+protected:
+ vec3 position;
+};
\ No newline at end of file
+++ /dev/null
-#include "PointLight.h"
-#include "Graphix.h"
-
-
-
-
-struct CameraDirection
-{
- GLenum CubemapFace;
- vec3 Target;
- vec3 Up;
-};
-
-CameraDirection gCameraDirections[6] =
-{
- {GL_TEXTURE_CUBE_MAP_POSITIVE_X, vec3(1.0f, 0.0f, 0.0f), vec3(0.0f, -1.0f, 0.0f)},
- {GL_TEXTURE_CUBE_MAP_NEGATIVE_X, vec3(-1.0f, 0.0f, 0.0f), vec3(0.0f, -1.0f, 0.0f)},
- {GL_TEXTURE_CUBE_MAP_POSITIVE_Y, vec3(0.0f, 1.0f, 0.0f), vec3(0.0f, 0.0f, -1.0f)},
- {GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, vec3(0.0f, -1.0f, 0.0f), vec3(0.0f, 0.0f, 1.0f)},
- {GL_TEXTURE_CUBE_MAP_POSITIVE_Z, vec3(0.0f, 0.0f, 1.0f), vec3(0.0f, -1.0f, 0.0f)},
- {GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, vec3(0.0f, 0.0f, -1.0f), vec3(0.0f, -1.0f, 0.0f)}
-};
-
-
-
-
-
-PointLight::PointLight(vec3& _position, vec3& _color) :
- position(_position),
- color(_color),
- active(true)
-{
-
-}
-
-PointLight::~PointLight()
-{
-
-}
-
-void PointLight::changeLight(vec3& _position, vec3& _color)
-{
- position = _position;
- color = _color;
-}
-
-void PointLight::turnOn()
-{
- active = true;
-}
-
-void PointLight::turnOff()
-{
- active = false;
-}
\ No newline at end of file
+++ /dev/null
-#pragma once
-
-#include "../GLM.h"
-
-class PointLight
-{
-public:
- PointLight(vec3& _position, vec3& _color);
-
- virtual ~PointLight();
-
- void changeLight(vec3& _position, vec3& _color);
- void turnOn();
- void turnOff();
-
-protected:
- vec3 position;
- vec3 color;
- bool active;
-};
\ No newline at end of file
<ClCompile Include="Game.cpp" />\r
<ClCompile Include="GLM.cpp" />\r
<ClCompile Include="Graphix\Graphix.cpp" />\r
+ <ClCompile Include="Graphix\Lights\AmbientLight.cpp" />\r
+ <ClCompile Include="Graphix\Lights\DirectionalLight.cpp" />\r
+ <ClCompile Include="Graphix\Lights\Light.cpp" />\r
<ClCompile Include="Graphix\Model\Animation.cpp" />\r
<ClCompile Include="Graphix\Model\BBox.cpp" />\r
<ClCompile Include="Graphix\Model\IAnimMesh.cpp" />\r
<ClCompile Include="Graphix\Model\Model.cpp" />\r
<ClCompile Include="Graphix\Model\Plane.cpp" />\r
<ClCompile Include="Graphix\Model\SkyBox.cpp" />\r
- <ClCompile Include="Graphix\PointLight.cpp" />\r
+ <ClCompile Include="Graphix\Lights\PointLight.cpp" />\r
<ClCompile Include="Graphix\Textures\dBufferObject.cpp" />\r
<ClCompile Include="Graphix\Textures\fBufferObject.cpp" />\r
<ClCompile Include="Graphix\Textures\rBufferObject.cpp" />\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="Average.h" />\r
+ <ClInclude Include="Graphix\Lights.h" />\r
+ <ClInclude Include="Graphix\Lights\AmbientLight.h" />\r
+ <ClInclude Include="Graphix\Lights\DirectionalLight.h" />\r
+ <ClInclude Include="Graphix\Lights\Light.h" />\r
<ClInclude Include="Graphix\Textures\BufferObject.h" />\r
<ClInclude Include="Graphix\Debug.h" />\r
<ClInclude Include="Graphix\Model.h" />\r
<ClInclude Include="Graphix\Model\Model.h" />\r
<ClInclude Include="Graphix\Model\Plane.h" />\r
<ClInclude Include="Graphix\Model\SkyBox.h" />\r
- <ClInclude Include="Graphix\PointLight.h" />\r
+ <ClInclude Include="Graphix\Lights\PointLight.h" />\r
<ClInclude Include="Graphix\Textures.h" />\r
<ClInclude Include="Graphix\Textures\dBufferObject.h" />\r
<ClInclude Include="Graphix\Textures\fBufferObject.h" />\r
<ClCompile Include="Scene\Level.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
- <ClCompile Include="Graphix\PointLight.cpp">\r
- <Filter>Source Files</Filter>\r
- </ClCompile>\r
<ClCompile Include="Graphix\Model\Animation.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
<ClCompile Include="Graphix\Textures\dBufferObject.cpp">\r
<Filter>Source Files</Filter>\r
</ClCompile>\r
+ <ClCompile Include="Graphix\Lights\PointLight.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Graphix\Lights\Light.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Graphix\Lights\DirectionalLight.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="Graphix\Lights\AmbientLight.cpp">\r
+ <Filter>Source Files</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="Fps.h">\r
<ClInclude Include="Graphix\Debug.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
- <ClInclude Include="Graphix\PointLight.h">\r
- <Filter>Header Files</Filter>\r
- </ClInclude>\r
<ClInclude Include="Graphix\Model\Animation.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
<ClInclude Include="Graphix\Textures\dBufferObject.h">\r
<Filter>Header Files</Filter>\r
</ClInclude>\r
+ <ClInclude Include="Graphix\Lights.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Lights\PointLight.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Lights\Light.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Lights\DirectionalLight.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="Graphix\Lights\AmbientLight.h">\r
+ <Filter>Header Files</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
</Project>
\ No newline at end of file