diff options
| author | hachem <im@hachem.wtf> | 2025-08-14 18:21:00 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2025-08-14 18:21:00 +0200 |
| commit | bc2d88c799cb3913a5defe4ea9ddea9c56814349 (patch) | |
| tree | ea60d47c5924ba56f6d84de9d7baa38f1710f13a /src/Engine/Object.h | |
| parent | 5265d5f8cacdb8af523e2b2fbfa45f0ef44b9995 (diff) | |
[help]: I am going to throw my computer out a window
Diffstat (limited to 'src/Engine/Object.h')
| -rw-r--r-- | src/Engine/Object.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Engine/Object.h b/src/Engine/Object.h new file mode 100644 index 0000000..0ae3430 --- /dev/null +++ b/src/Engine/Object.h @@ -0,0 +1,38 @@ +#pragma once + +#include <glm/glm.hpp> + +namespace Donut +{ + class Ray + { + public: + glm::vec3 m_Direction; + glm::vec3 m_Origin; + + Ray(glm::vec3 o, glm::vec3 d); + }; + + class Material + { + public: + glm::vec3 m_Color; + float m_Specular; + float m_Emission; + + Material(glm::vec3 c, float s, float e); + }; + + class Object + { + public: + glm::vec3 m_Centre; + float m_Radius; + Material m_Material; + + Object(glm::vec3 c, float r, Material m); + + bool Intersect(Ray &ray, float &t); + glm::vec3 GetNormal(glm::vec3 &point) const; + }; +}; |
