#pragma once #include 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 get_normal(glm::vec3 &point) const; }; };