absence_thelab
diff src/3deng/material.cpp @ 0:1cffe3409164
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 23 Oct 2014 01:46:07 +0300 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/3deng/material.cpp Thu Oct 23 01:46:07 2014 +0300 1.3 @@ -0,0 +1,99 @@ 1.4 +#include "material.h" 1.5 + 1.6 +Material::Material() { 1.7 + memset(this, 0, sizeof(Material)); 1.8 + Diffuse.r = Ambient.r = 1.0f; 1.9 + Diffuse.g = Ambient.g = 1.0f; 1.10 + Diffuse.b = Ambient.b = 1.0f; 1.11 + Diffuse.a = Ambient.a = 1.0f; 1.12 + Specular.r = Specular.g = Specular.b = 1.0f; 1.13 + EnvBlend = 1.0f; 1.14 + Alpha = 1.0f; 1.15 +} 1.16 + 1.17 +Material::Material(float r, float g, float b, float a) { 1.18 + 1.19 + memset(this, 0, sizeof(Material)); 1.20 + Diffuse.r = Ambient.r = r; 1.21 + Diffuse.g = Ambient.g = g; 1.22 + Diffuse.b = Ambient.b = b; 1.23 + Diffuse.a = Ambient.a = a; 1.24 + Specular.r = Specular.g = Specular.b = 1.0f; 1.25 + EnvBlend = 1.0f; 1.26 + Alpha = 1.0f; 1.27 +} 1.28 + 1.29 +void Material::SetAmbient(float r, float g, float b) { 1.30 + Ambient.r = r; 1.31 + Ambient.g = g; 1.32 + Ambient.b = b; 1.33 + Ambient.a = 1.0f; 1.34 +} 1.35 + 1.36 +void Material::SetAmbient(const Color &col) { 1.37 + Ambient.r = col.r; 1.38 + Ambient.g = col.g; 1.39 + Ambient.b = col.b; 1.40 + Ambient.a = col.a; 1.41 +} 1.42 + 1.43 + 1.44 +void Material::SetDiffuse(float r, float g, float b) { 1.45 + Diffuse.r = r; 1.46 + Diffuse.g = g; 1.47 + Diffuse.b = b; 1.48 + Diffuse.a = 1.0f; 1.49 +} 1.50 + 1.51 +void Material::SetDiffuse(const Color &col) { 1.52 + Diffuse.r = col.r; 1.53 + Diffuse.g = col.g; 1.54 + Diffuse.b = col.b; 1.55 + Diffuse.a = col.a; 1.56 +} 1.57 + 1.58 + 1.59 +void Material::SetSpecular(float r, float g, float b) { 1.60 + Specular.r = r; 1.61 + Specular.g = g; 1.62 + Specular.b = b; 1.63 + Specular.a = 1.0f; 1.64 +} 1.65 + 1.66 +void Material::SetSpecular(const Color &col) { 1.67 + Specular.r = col.r; 1.68 + Specular.g = col.g; 1.69 + Specular.b = col.b; 1.70 + Specular.a = col.a; 1.71 +} 1.72 + 1.73 +void Material::SetEmissive(float r, float g, float b) { 1.74 + Emissive.r = r; 1.75 + Emissive.g = g; 1.76 + Emissive.b = b; 1.77 + Emissive.a = 1.0f; 1.78 +} 1.79 + 1.80 +void Material::SetEmissive(const Color &col) { 1.81 + Emissive.r = col.r; 1.82 + Emissive.g = col.g; 1.83 + Emissive.b = col.b; 1.84 + Emissive.a = col.a; 1.85 +} 1.86 + 1.87 +void Material::SetEnvBlend(float value) { 1.88 + EnvBlend = value; 1.89 +} 1.90 + 1.91 +void Material::SetSpecularPower(float pow) { 1.92 + Power = pow; 1.93 + SpecularEnable = pow > 0.0f ? true : false; 1.94 +} 1.95 + 1.96 +void Material::SetAlpha(float alpha) { 1.97 + Alpha = alpha; 1.98 +} 1.99 + 1.100 +void Material::SetTexture(Texture *texture, TextureType type) { 1.101 + Maps[type] = texture; 1.102 +} 1.103 \ No newline at end of file