nuclear@0: #ifndef _MATERIAL_H_ nuclear@0: #define _MATERIAL_H_ nuclear@0: nuclear@0: #include nuclear@0: #include nuclear@0: #include "d3d8.h" nuclear@0: #include "3dengtypes.h" nuclear@0: #include "color.h" nuclear@0: nuclear@0: enum TextureType { nuclear@0: TextureMap = 0, nuclear@0: DetailMap, nuclear@0: OpacityMap, nuclear@0: LightMap, nuclear@0: BumpMap, nuclear@0: EnvironmentMap, nuclear@0: SpecularMap nuclear@0: }; nuclear@0: nuclear@0: const int NumberOfTextureTypes = 7; nuclear@0: nuclear@0: class Material : public D3DMATERIAL8 { nuclear@0: public: nuclear@0: std::string name; nuclear@0: Texture *Maps[NumberOfTextureTypes]; nuclear@0: float EnvBlend, BumpIntensity; nuclear@0: float Alpha; nuclear@0: bool SpecularEnable; nuclear@0: nuclear@0: Material(); nuclear@0: Material(float r, float g, float b, float a=1.0f); nuclear@0: nuclear@0: void SetAmbient(float r, float g, float b); nuclear@0: void SetAmbient(const Color &col); nuclear@0: void SetDiffuse(float r, float g, float b); nuclear@0: void SetDiffuse(const Color &col); nuclear@0: void SetSpecular(float r, float g, float b); nuclear@0: void SetSpecular(const Color &col); nuclear@0: void SetEmissive(float r, float g, float b); nuclear@0: void SetEmissive(const Color &col); nuclear@0: void SetSpecularPower(float pow); nuclear@0: void SetAlpha(float alpha); nuclear@0: void SetEnvBlend(float value); nuclear@0: nuclear@0: void SetTexture(Texture *texture, TextureType type); nuclear@0: }; nuclear@0: nuclear@0: nuclear@0: #endif // _MATERIAL_H_