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