MobileRT  1.0
A multi platform C++ CPU progressive Ray Tracer.
Material.hpp
Go to the documentation of this file.
1 #ifndef MOBILERT_MATERIAL_HPP
2 #define MOBILERT_MATERIAL_HPP
3 
4 #include "Texture.hpp"
5 #include <glm/glm.hpp>
6 
7 namespace MobileRT {
13  class Material final {
14  public:
18  ::glm::vec3 Le_ {};
19 
23  ::glm::vec3 Kd_ {};
24 
28  ::glm::vec3 Ks_ {};
29 
33  ::glm::vec3 Kt_ {};
34 
39 
44 
45  public:
46  explicit Material() = default;
47 
48  explicit Material(
49  const ::glm::vec3 &kD,
50  const ::glm::vec3 &kS = ::glm::vec3 {},
51  const ::glm::vec3 &kT = ::glm::vec3 {},
52  float refractiveIndice = 1.0F,
53  const ::glm::vec3 &lE = ::glm::vec3 {},
54  Texture texture = Texture {}) noexcept;
55 
56  Material(const Material &material) = default;
57 
58  Material(Material &&material) noexcept = default;
59 
60  ~Material() = default;
61 
62  Material &operator=(const Material &material) = default;
63 
64  Material &operator=(Material &&material) noexcept = default;
65 
66  bool operator==(const Material &material) const;
67  };
68 }//namespace MobileRT
69 
70 #endif //MOBILERT_MATERIAL_HPP
Definition: Material.hpp:13
float refractiveIndice_
Definition: Material.hpp:38
Texture texture_
Definition: Material.hpp:43
bool operator==(const Material &material) const
Definition: Material.cpp:36
Definition: Texture.hpp:16
Material & operator=(const Material &material)=default
::glm::vec3 Kt_
Definition: Material.hpp:33
::glm::vec3 Le_
Definition: Material.hpp:18
::glm::vec3 Kd_
Definition: Material.hpp:23
::glm::vec3 Ks_
Definition: Material.hpp:28
Definition: AABB.cpp:105