Update code style for Material objects
This commit is contained in:
		
							parent
							
								
									0d2011931c
								
							
						
					
					
						commit
						ac8421b5e1
					
				
					 2 changed files with 63 additions and 45 deletions
				
			
		| 
						 | 
				
			
			@ -8,78 +8,82 @@
 | 
			
		|||
#include "material.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
namespace charles {
 | 
			
		||||
    
 | 
			
		||||
Material::Material()
 | 
			
		||||
    : diffuse_level(0.8),
 | 
			
		||||
      diffuse_color(Color::White),
 | 
			
		||||
      specular_level(0.5),
 | 
			
		||||
      specular_color(Color::White)
 | 
			
		||||
    : mDiffuseModel(DiffuseShaderModel::Lambert),
 | 
			
		||||
      mDiffuseIntensity(0.8),
 | 
			
		||||
      mDiffuseColor(Color::White),
 | 
			
		||||
      mSpecularModel(SpecularShaderModel::Phong),
 | 
			
		||||
      mSpecularIntensity(0.5),
 | 
			
		||||
      mSpecularColor(Color::White)
 | 
			
		||||
{ }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
float
 | 
			
		||||
Material::get_diffuse_level()
 | 
			
		||||
Double
 | 
			
		||||
Material::GetDiffuseIntensity()
 | 
			
		||||
    const
 | 
			
		||||
{
 | 
			
		||||
    return diffuse_level;
 | 
			
		||||
    return mDiffuseIntensity;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
Material::set_diffuse_level(const float &kd)
 | 
			
		||||
Material::SetDiffuseIntensity(const Double& kd)
 | 
			
		||||
{
 | 
			
		||||
    diffuse_level = kd;
 | 
			
		||||
    _clamp_parameter(diffuse_level);
 | 
			
		||||
    mDiffuseIntensity = kd;
 | 
			
		||||
    ClampParameter(mDiffuseIntensity);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const Color&
 | 
			
		||||
Material::get_diffuse_color()
 | 
			
		||||
Material::GetDiffuseColor()
 | 
			
		||||
    const
 | 
			
		||||
{
 | 
			
		||||
    return diffuse_color;
 | 
			
		||||
    return mDiffuseColor;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
Material::set_diffuse_color(const Color &c)
 | 
			
		||||
Material::SetDiffuseColor(const Color& color)
 | 
			
		||||
{
 | 
			
		||||
    diffuse_color = c;
 | 
			
		||||
    mDiffuseColor = color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
float
 | 
			
		||||
Material::get_specular_level()
 | 
			
		||||
Double
 | 
			
		||||
Material::GetSpecularIntensity()
 | 
			
		||||
    const
 | 
			
		||||
{
 | 
			
		||||
    return specular_level;
 | 
			
		||||
    return mSpecularIntensity;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
Material::set_specular_level(const float &ks)
 | 
			
		||||
Material::SetSpecularIntensity(const Double& ks)
 | 
			
		||||
{
 | 
			
		||||
    specular_level = ks;
 | 
			
		||||
    _clamp_parameter(specular_level);
 | 
			
		||||
    mSpecularIntensity = ks;
 | 
			
		||||
    ClampParameter(mSpecularIntensity);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const Color&
 | 
			
		||||
Material::get_specular_color()
 | 
			
		||||
Material::GetSpecularColor()
 | 
			
		||||
    const
 | 
			
		||||
{
 | 
			
		||||
    return specular_color;
 | 
			
		||||
    return mSpecularColor;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
Material::set_specular_color(const Color &c)
 | 
			
		||||
Material::SetSpecularColor(const Color& color)
 | 
			
		||||
{
 | 
			
		||||
    specular_color = c;
 | 
			
		||||
    mSpecularColor = color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
Material::_clamp_parameter(float ¶m)
 | 
			
		||||
Material::ClampParameter(Double& param)
 | 
			
		||||
{
 | 
			
		||||
    if (param < 0.0) {
 | 
			
		||||
        param = 0.0;
 | 
			
		||||
| 
						 | 
				
			
			@ -88,3 +92,5 @@ Material::_clamp_parameter(float ¶m)
 | 
			
		|||
        param = 1.0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} /* namespace charles */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,37 +9,49 @@
 | 
			
		|||
#define __MATERIAL_H__
 | 
			
		||||
 | 
			
		||||
#include "basics.h"
 | 
			
		||||
#include "types.hh"
 | 
			
		||||
 | 
			
		||||
namespace charles {
 | 
			
		||||
 | 
			
		||||
class Material
 | 
			
		||||
struct Material
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    enum {
 | 
			
		||||
        DiffuseLightingTypeLambert = 1,
 | 
			
		||||
    } DiffuseLightingType;
 | 
			
		||||
    enum class DiffuseShaderModel {
 | 
			
		||||
        Lambert,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enum class SpecularShaderModel {
 | 
			
		||||
        Blinn,
 | 
			
		||||
        Phong
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
    Double GetDiffuseIntensity() const;
 | 
			
		||||
    void SetDiffuseIntensity(const Double& kd);
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
    const Color& GetDiffuseColor() const;
 | 
			
		||||
    void SetDiffuseColor(const Color& c);
 | 
			
		||||
 | 
			
		||||
    Double GetSpecularIntensity() const;
 | 
			
		||||
    void SetSpecularIntensity(const Double& kd);
 | 
			
		||||
 | 
			
		||||
    const Color &GetSpecularColor() const;
 | 
			
		||||
    void SetSpecularColor(const Color& c);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void _clamp_parameter(float ¶m);
 | 
			
		||||
    void ClampParameter(Double& param);
 | 
			
		||||
 | 
			
		||||
    // Diffuse parameters.
 | 
			
		||||
    float diffuse_level;
 | 
			
		||||
    Color diffuse_color;
 | 
			
		||||
    DiffuseShaderModel mDiffuseModel;
 | 
			
		||||
    Double mDiffuseIntensity;
 | 
			
		||||
    Color mDiffuseColor;
 | 
			
		||||
 | 
			
		||||
    // Specular parameters.
 | 
			
		||||
    float specular_level;
 | 
			
		||||
    Color specular_color;
 | 
			
		||||
    SpecularShaderModel mSpecularModel;
 | 
			
		||||
    Double mSpecularIntensity;
 | 
			
		||||
    Color mSpecularColor;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} /* namespace charles */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue