absence_thelab

annotate src/3deng/material.h @ 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 #ifndef _MATERIAL_H_
nuclear@0 2 #define _MATERIAL_H_
nuclear@0 3
nuclear@0 4 #include <string>
nuclear@0 5 #include <vector>
nuclear@0 6 #include "d3d8.h"
nuclear@0 7 #include "3dengtypes.h"
nuclear@0 8 #include "color.h"
nuclear@0 9
nuclear@0 10 enum TextureType {
nuclear@0 11 TextureMap = 0,
nuclear@0 12 DetailMap,
nuclear@0 13 OpacityMap,
nuclear@0 14 LightMap,
nuclear@0 15 BumpMap,
nuclear@0 16 EnvironmentMap,
nuclear@0 17 SpecularMap
nuclear@0 18 };
nuclear@0 19
nuclear@0 20 const int NumberOfTextureTypes = 7;
nuclear@0 21
nuclear@0 22 class Material : public D3DMATERIAL8 {
nuclear@0 23 public:
nuclear@0 24 std::string name;
nuclear@0 25 Texture *Maps[NumberOfTextureTypes];
nuclear@0 26 float EnvBlend, BumpIntensity;
nuclear@0 27 float Alpha;
nuclear@0 28 bool SpecularEnable;
nuclear@0 29
nuclear@0 30 Material();
nuclear@0 31 Material(float r, float g, float b, float a=1.0f);
nuclear@0 32
nuclear@0 33 void SetAmbient(float r, float g, float b);
nuclear@0 34 void SetAmbient(const Color &col);
nuclear@0 35 void SetDiffuse(float r, float g, float b);
nuclear@0 36 void SetDiffuse(const Color &col);
nuclear@0 37 void SetSpecular(float r, float g, float b);
nuclear@0 38 void SetSpecular(const Color &col);
nuclear@0 39 void SetEmissive(float r, float g, float b);
nuclear@0 40 void SetEmissive(const Color &col);
nuclear@0 41 void SetSpecularPower(float pow);
nuclear@0 42 void SetAlpha(float alpha);
nuclear@0 43 void SetEnvBlend(float value);
nuclear@0 44
nuclear@0 45 void SetTexture(Texture *texture, TextureType type);
nuclear@0 46 };
nuclear@0 47
nuclear@0 48
nuclear@0 49 #endif // _MATERIAL_H_