hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/engine/object.h
blob: 5f5d86fa8219266c85775bcc60933b599de0c7dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 get_normal(glm::vec3 &point) const;
    };
};