MobileRT  1.0
A multi platform C++ CPU progressive Ray Tracer.
Components::AreaLight Class Referencefinal

#include <AreaLight.hpp>

Inheritance diagram for Components::AreaLight:
Inheritance graph
Collaboration diagram for Components::AreaLight:
Collaboration graph

Public Member Functions

 AreaLight ()=delete
 
 AreaLight (const ::MobileRT::Material &radiance, ::std::unique_ptr<::MobileRT::Sampler > samplerPointLight, const ::MobileRT::Triangle &triangle)
 
 AreaLight (const AreaLight &areaLight)=delete
 
 AreaLight (AreaLight &&areaLight) noexcept=delete
 
 ~AreaLight () final=default
 
AreaLightoperator= (const AreaLight &areaLight)=delete
 
AreaLightoperator= (AreaLight &&areaLight) noexcept=delete
 
::glm::vec3 getPosition () final
 
void resetSampling () final
 
::MobileRT::Intersection intersect (::MobileRT::Intersection &&intersection) final
 
- Public Member Functions inherited from MobileRT::Light
 Light ()=delete
 
 Light (Material radiance)
 
 Light (const Light &light)=delete
 
 Light (Light &&light) noexcept=delete
 
virtual ~Light ()
 
Lightoperator= (const Light &light)=delete
 
Lightoperator= (Light &&light) noexcept=delete
 
virtual Intersection intersect (Intersection &&intersection)=0
 

Private Attributes

::MobileRT::Triangle triangle_
 
::std::unique_ptr<::MobileRT::SamplersamplerPointLight_ {}
 

Additional Inherited Members

- Public Attributes inherited from MobileRT::Light
Material radiance_ {}
 

Detailed Description

An area light is a light that casts directional light rays from within a set boundary, in this case, in the format of a triangle. All other light types emit light from a single point, where an area light emits light from an entire area which is generally more realistic.

Constructor & Destructor Documentation

◆ AreaLight() [1/4]

Components::AreaLight::AreaLight ( )
explicitdelete

◆ AreaLight() [2/4]

Components::AreaLight::AreaLight ( const ::MobileRT::Material radiance,
::std::unique_ptr<::MobileRT::Sampler samplerPointLight,
const ::MobileRT::Triangle triangle 
)
explicit

◆ AreaLight() [3/4]

Components::AreaLight::AreaLight ( const AreaLight areaLight)
delete

◆ AreaLight() [4/4]

Components::AreaLight::AreaLight ( AreaLight &&  areaLight)
deletenoexcept

◆ ~AreaLight()

Components::AreaLight::~AreaLight ( )
finaldefault

Member Function Documentation

◆ getPosition()

glm::vec3 AreaLight::getPosition ( )
finalvirtual

Gets the position of the light.

Returns
The position of the light.

Implements MobileRT::Light.

◆ intersect()

Intersection AreaLight::intersect ( ::MobileRT::Intersection &&  intersection)
final

◆ operator=() [1/2]

AreaLight& Components::AreaLight::operator= ( const AreaLight areaLight)
delete

◆ operator=() [2/2]

AreaLight& Components::AreaLight::operator= ( AreaLight &&  areaLight)
deletenoexcept

◆ resetSampling()

void AreaLight::resetSampling ( )
finalvirtual

Resets the sampling counter.

Implements MobileRT::Light.

Member Data Documentation

◆ samplerPointLight_

::std::unique_ptr<::MobileRT::Sampler> Components::AreaLight::samplerPointLight_ {}
private

◆ triangle_

::MobileRT::Triangle Components::AreaLight::triangle_
private

The documentation for this class was generated from the following files: