Ray Tracer Common Project
Image rendering program based on the ray tracing technique.
daynightmaterial.hpp
1 #pragma once
2 
3 #include "material.hpp"
4 
5 namespace rt{
6 
7 class DayNightMaterial : public Material{
8 public:
9  DayNightMaterial(Material *day, Material *night);
11 
12  virtual color diffuse(const element & e, const photon & external_light) const;
13 
14  virtual double reflexion(const element & e, const photon & external_light) const;
15 
16  virtual photon emission(const element & e, const photon & external_light) const;
17 
18  virtual vector disturbance(const element &e, const photon &external_light) const;
19 
20 private:
21  Material *_day;
22  Material *_night;
23 };
24 
25 }
Object material.
Definition: material.hpp:39
Definition: bitmap.cpp:4
RGBA color representation.
Definition: color.hpp:31
Definition: daynightmaterial.hpp:7
3D vector
Definition: vector.hpp:28
Geometric surface element unit.
Definition: element.hpp:43
virtual color diffuse(const element &e, const photon &external_light) const
Get the diffuse color of a surface element.
Definition: daynightmaterial.cpp:15
Light photon class.
Definition: photon.hpp:28