MobileRT  1.0
A multi platform C++ CPU progressive Ray Tracer.
AreaLight.hpp
Go to the documentation of this file.
1 #ifndef COMPONENTS_LIGHTS_AREALIGHT_HPP
2 #define COMPONENTS_LIGHTS_AREALIGHT_HPP
3 
4 #include "MobileRT/Light.hpp"
5 #include "MobileRT/Sampler.hpp"
8 #include <memory>
9 
10 namespace Components {
11 
18  class AreaLight final : public ::MobileRT::Light {
19  private:
21  ::std::unique_ptr<::MobileRT::Sampler> samplerPointLight_ {};
22 
23  public:
24  explicit AreaLight() = delete;
25 
26  explicit AreaLight(
27  const ::MobileRT::Material &radiance,
28  ::std::unique_ptr<::MobileRT::Sampler> samplerPointLight,
29  const ::MobileRT::Triangle &triangle);
30 
31  AreaLight(const AreaLight &areaLight) = delete;
32 
33  AreaLight(AreaLight &&areaLight) noexcept = delete;
34 
35  ~AreaLight() final = default;
36 
37  AreaLight &operator=(const AreaLight &areaLight) = delete;
38 
39  AreaLight &operator=(AreaLight &&areaLight) noexcept = delete;
40 
41  ::glm::vec3 getPosition() final;
42 
43  void resetSampling() final;
44 
46  };
47 }//namespace Components
48 
49 #endif //COMPONENTS_LIGHTS_AREALIGHT_HPP
void resetSampling() final
Definition: AreaLight.cpp:28
Definition: Orthographic.hpp:6
~AreaLight() final=default
Definition: Light.hpp:14
Definition: Intersection.hpp:14
::MobileRT::Triangle triangle_
Definition: AreaLight.hpp:20
::glm::vec3 getPosition() final
Definition: AreaLight.cpp:17
AreaLight & operator=(const AreaLight &areaLight)=delete
::MobileRT::Intersection intersect(::MobileRT::Intersection &&intersection) final
Definition: AreaLight.cpp:32
Definition: AreaLight.hpp:18
Definition: Triangle.hpp:13
::std::unique_ptr<::MobileRT::Sampler > samplerPointLight_
Definition: AreaLight.hpp:21