From 745aa274473b0e1ccce49d89f7839855d2887901 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 21 Sep 2013 15:53:16 -0700 Subject: [PATCH] Add specular parameters to Material --- src/material.cc | 37 +++++++++++++++++++++++++++++++++++-- src/material.h | 11 ++++++++++- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/material.cc b/src/material.cc index 632a818..c63cc5d 100644 --- a/src/material.cc +++ b/src/material.cc @@ -9,8 +9,10 @@ Material::Material() - : diffuse_level(1.0), - diffuse_color(Color::Black) + : diffuse_level(0.8), + diffuse_color(Color::White), + specular_level(0.5), + specular_color(Color::White) { } @@ -45,6 +47,37 @@ Material::set_diffuse_color(const Color &c) } +float +Material::get_specular_level() + const +{ + return specular_level; +} + + +void +Material::set_specular_level(const float &ks) +{ + specular_level = ks; + _clamp_parameter(specular_level); +} + + +const Color & +Material::get_specular_color() + const +{ + return specular_color; +} + + +void +Material::set_specular_color(const Color &c) +{ + specular_color = c; +} + + void Material::_clamp_parameter(float ¶m) { diff --git a/src/material.h b/src/material.h index 60950cf..b982f66 100644 --- a/src/material.h +++ b/src/material.h @@ -25,12 +25,21 @@ public: const Color &get_diffuse_color() const; void set_diffuse_color(const Color &c); + float get_specular_level() const; + void set_specular_level(const float &kd); + const Color &get_specular_color() const; + void set_specular_color(const Color &c); + private: void _clamp_parameter(float ¶m); - // Diffusion parameters. + // Diffuse parameters. float diffuse_level; Color diffuse_color; + + // Specular parameters. + float specular_level; + Color specular_color; }; #endif