absence_thelab
annotate 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 |
rev | line source |
---|---|
nuclear@0 | 1 #include "material.h" |
nuclear@0 | 2 |
nuclear@0 | 3 Material::Material() { |
nuclear@0 | 4 memset(this, 0, sizeof(Material)); |
nuclear@0 | 5 Diffuse.r = Ambient.r = 1.0f; |
nuclear@0 | 6 Diffuse.g = Ambient.g = 1.0f; |
nuclear@0 | 7 Diffuse.b = Ambient.b = 1.0f; |
nuclear@0 | 8 Diffuse.a = Ambient.a = 1.0f; |
nuclear@0 | 9 Specular.r = Specular.g = Specular.b = 1.0f; |
nuclear@0 | 10 EnvBlend = 1.0f; |
nuclear@0 | 11 Alpha = 1.0f; |
nuclear@0 | 12 } |
nuclear@0 | 13 |
nuclear@0 | 14 Material::Material(float r, float g, float b, float a) { |
nuclear@0 | 15 |
nuclear@0 | 16 memset(this, 0, sizeof(Material)); |
nuclear@0 | 17 Diffuse.r = Ambient.r = r; |
nuclear@0 | 18 Diffuse.g = Ambient.g = g; |
nuclear@0 | 19 Diffuse.b = Ambient.b = b; |
nuclear@0 | 20 Diffuse.a = Ambient.a = a; |
nuclear@0 | 21 Specular.r = Specular.g = Specular.b = 1.0f; |
nuclear@0 | 22 EnvBlend = 1.0f; |
nuclear@0 | 23 Alpha = 1.0f; |
nuclear@0 | 24 } |
nuclear@0 | 25 |
nuclear@0 | 26 void Material::SetAmbient(float r, float g, float b) { |
nuclear@0 | 27 Ambient.r = r; |
nuclear@0 | 28 Ambient.g = g; |
nuclear@0 | 29 Ambient.b = b; |
nuclear@0 | 30 Ambient.a = 1.0f; |
nuclear@0 | 31 } |
nuclear@0 | 32 |
nuclear@0 | 33 void Material::SetAmbient(const Color &col) { |
nuclear@0 | 34 Ambient.r = col.r; |
nuclear@0 | 35 Ambient.g = col.g; |
nuclear@0 | 36 Ambient.b = col.b; |
nuclear@0 | 37 Ambient.a = col.a; |
nuclear@0 | 38 } |
nuclear@0 | 39 |
nuclear@0 | 40 |
nuclear@0 | 41 void Material::SetDiffuse(float r, float g, float b) { |
nuclear@0 | 42 Diffuse.r = r; |
nuclear@0 | 43 Diffuse.g = g; |
nuclear@0 | 44 Diffuse.b = b; |
nuclear@0 | 45 Diffuse.a = 1.0f; |
nuclear@0 | 46 } |
nuclear@0 | 47 |
nuclear@0 | 48 void Material::SetDiffuse(const Color &col) { |
nuclear@0 | 49 Diffuse.r = col.r; |
nuclear@0 | 50 Diffuse.g = col.g; |
nuclear@0 | 51 Diffuse.b = col.b; |
nuclear@0 | 52 Diffuse.a = col.a; |
nuclear@0 | 53 } |
nuclear@0 | 54 |
nuclear@0 | 55 |
nuclear@0 | 56 void Material::SetSpecular(float r, float g, float b) { |
nuclear@0 | 57 Specular.r = r; |
nuclear@0 | 58 Specular.g = g; |
nuclear@0 | 59 Specular.b = b; |
nuclear@0 | 60 Specular.a = 1.0f; |
nuclear@0 | 61 } |
nuclear@0 | 62 |
nuclear@0 | 63 void Material::SetSpecular(const Color &col) { |
nuclear@0 | 64 Specular.r = col.r; |
nuclear@0 | 65 Specular.g = col.g; |
nuclear@0 | 66 Specular.b = col.b; |
nuclear@0 | 67 Specular.a = col.a; |
nuclear@0 | 68 } |
nuclear@0 | 69 |
nuclear@0 | 70 void Material::SetEmissive(float r, float g, float b) { |
nuclear@0 | 71 Emissive.r = r; |
nuclear@0 | 72 Emissive.g = g; |
nuclear@0 | 73 Emissive.b = b; |
nuclear@0 | 74 Emissive.a = 1.0f; |
nuclear@0 | 75 } |
nuclear@0 | 76 |
nuclear@0 | 77 void Material::SetEmissive(const Color &col) { |
nuclear@0 | 78 Emissive.r = col.r; |
nuclear@0 | 79 Emissive.g = col.g; |
nuclear@0 | 80 Emissive.b = col.b; |
nuclear@0 | 81 Emissive.a = col.a; |
nuclear@0 | 82 } |
nuclear@0 | 83 |
nuclear@0 | 84 void Material::SetEnvBlend(float value) { |
nuclear@0 | 85 EnvBlend = value; |
nuclear@0 | 86 } |
nuclear@0 | 87 |
nuclear@0 | 88 void Material::SetSpecularPower(float pow) { |
nuclear@0 | 89 Power = pow; |
nuclear@0 | 90 SpecularEnable = pow > 0.0f ? true : false; |
nuclear@0 | 91 } |
nuclear@0 | 92 |
nuclear@0 | 93 void Material::SetAlpha(float alpha) { |
nuclear@0 | 94 Alpha = alpha; |
nuclear@0 | 95 } |
nuclear@0 | 96 |
nuclear@0 | 97 void Material::SetTexture(Texture *texture, TextureType type) { |
nuclear@0 | 98 Maps[type] = texture; |
nuclear@0 | 99 } |