Add diffuse parameters to Material
This commit is contained in:
parent
438b0734a4
commit
887233e3e4
2 changed files with 54 additions and 8 deletions
|
@ -8,16 +8,50 @@
|
|||
#include "material.h"
|
||||
|
||||
|
||||
Color
|
||||
Material::get_color()
|
||||
Material::Material()
|
||||
: diffuse_level(1.0),
|
||||
diffuse_color(Color::Black)
|
||||
{ }
|
||||
|
||||
|
||||
float
|
||||
Material::get_diffuse_level()
|
||||
const
|
||||
{
|
||||
return color;
|
||||
return diffuse_level;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Material::set_color(const Color &c)
|
||||
Material::set_diffuse_level(const float &kd)
|
||||
{
|
||||
color = c;
|
||||
diffuse_level = kd;
|
||||
_clamp_parameter(diffuse_level);
|
||||
}
|
||||
|
||||
|
||||
const Color &
|
||||
Material::get_diffuse_color()
|
||||
const
|
||||
{
|
||||
return diffuse_color;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Material::set_diffuse_color(const Color &c)
|
||||
{
|
||||
diffuse_color = c;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
Material::_clamp_parameter(float ¶m)
|
||||
{
|
||||
if (param < 0.0) {
|
||||
param = 0.0;
|
||||
}
|
||||
else if (param > 1.0) {
|
||||
param = 1.0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,11 +14,23 @@
|
|||
class Material
|
||||
{
|
||||
public:
|
||||
Color get_color() const;
|
||||
void set_color(const Color &c);
|
||||
enum {
|
||||
DiffuseLightingTypeLambert = 1,
|
||||
} DiffuseLightingType;
|
||||
|
||||
Material();
|
||||
|
||||
float get_diffuse_level() const;
|
||||
void set_diffuse_level(const float &kd);
|
||||
const Color &get_diffuse_color() const;
|
||||
void set_diffuse_color(const Color &c);
|
||||
|
||||
private:
|
||||
Color color;
|
||||
void _clamp_parameter(float ¶m);
|
||||
|
||||
// Diffusion parameters.
|
||||
float diffuse_level;
|
||||
Color diffuse_color;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue