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 }