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