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

#include <DiffuseMaterial.hpp>

Inheritance diagram for Components::DiffuseMaterial:
Inheritance graph
Collaboration diagram for Components::DiffuseMaterial:
Collaboration graph

Public Member Functions

 DiffuseMaterial ()=delete
 
 DiffuseMaterial (::MobileRT::Scene scene, ::MobileRT::Shader::Accelerator accelerator)
 
 DiffuseMaterial (const DiffuseMaterial &diffuseMaterial)=delete
 
 DiffuseMaterial (DiffuseMaterial &&diffuseMaterial) noexcept=delete
 
 ~DiffuseMaterial () final=default
 
DiffuseMaterialoperator= (const DiffuseMaterial &diffuseMaterial)=delete
 
DiffuseMaterialoperator= (DiffuseMaterial &&diffuseMaterial) noexcept=delete
 
- Public Member Functions inherited from MobileRT::Shader
void initializeAccelerators (Scene scene)
 
 Shader ()=delete
 
 Shader (Scene scene, ::std::int32_t samplesLight, Accelerator accelerator)
 
 Shader (const Shader &shader)=delete
 
 Shader (Shader &&shader) noexcept=default
 
virtual ~Shader ()=default
 
Shaderoperator= (const Shader &shader)=delete
 
Shaderoperator= (Shader &&shader) noexcept=delete
 
bool rayTrace (::glm::vec3 *rgb, Ray &&ray)
 
bool shadowTrace (float distance, Ray &&ray)
 
virtual void resetSampling ()
 
const ::std::vector< Plane > & getPlanes () const
 
const ::std::vector< Sphere > & getSpheres () const
 
const ::std::vector< Triangle > & getTriangles () const
 
const ::std::vector< Material > & getMaterials () const
 
const ::std::vector<::std::unique_ptr< Light > > & getLights () const
 

Private Member Functions

bool shade (::glm::vec3 *rgb, const ::MobileRT::Intersection &intersection) final
 

Additional Inherited Members

- Public Types inherited from MobileRT::Shader
enum  Accelerator { ACC_NAIVE = 1, ACC_REGULAR_GRID, ACC_BVH }
 
- Protected Member Functions inherited from MobileRT::Shader
virtual bool shade (::glm::vec3 *rgb, const Intersection &intersection)=0
 
::std::uint32_t getLightIndex ()
 
- Static Protected Member Functions inherited from MobileRT::Shader
::glm::vec3 getCosineSampleHemisphere (const ::glm::vec3 &normal)
 
- Protected Attributes inherited from MobileRT::Shader
const ::std::int32_t samplesLight_ {}
 
::std::vector<::std::unique_ptr< Light > > lights_ {}
 

Constructor & Destructor Documentation

◆ DiffuseMaterial() [1/4]

Components::DiffuseMaterial::DiffuseMaterial ( )
explicitdelete

◆ DiffuseMaterial() [2/4]

Components::DiffuseMaterial::DiffuseMaterial ( ::MobileRT::Scene  scene,
::MobileRT::Shader::Accelerator  accelerator 
)
explicit

◆ DiffuseMaterial() [3/4]

Components::DiffuseMaterial::DiffuseMaterial ( const DiffuseMaterial diffuseMaterial)
delete

◆ DiffuseMaterial() [4/4]

Components::DiffuseMaterial::DiffuseMaterial ( DiffuseMaterial &&  diffuseMaterial)
deletenoexcept

◆ ~DiffuseMaterial()

Components::DiffuseMaterial::~DiffuseMaterial ( )
finaldefault

Member Function Documentation

◆ operator=() [1/2]

DiffuseMaterial& Components::DiffuseMaterial::operator= ( const DiffuseMaterial diffuseMaterial)
delete

◆ operator=() [2/2]

DiffuseMaterial& Components::DiffuseMaterial::operator= ( DiffuseMaterial &&  diffuseMaterial)
deletenoexcept

◆ shade()

bool DiffuseMaterial::shade ( ::glm::vec3 *  rgb,
const ::MobileRT::Intersection intersection 
)
finalprivate
Here is the call graph for this function:

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