2 Copyright 2004 John Tsiombikas <nuclear@siggraph.org>
4 This file is part of the 3dengfx, realtime visualization system.
6 3dengfx is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 3dengfx is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with 3dengfx; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 #ifndef _MATERIALS_HPP_
21 #define _MATERIALS_HPP_
24 #include "3denginefx_types.hpp"
25 #include "textures.hpp"
26 #include "gfx/color.hpp"
27 #include "n3dmath2/n3dmath2.hpp"
44 #define MAX_TEXTURES 5
50 Color ambient_color, diffuse_color, specular_color, emissive_color;
51 scalar_t specular_power;
52 scalar_t env_intensity;
53 scalar_t bump_intensity;
56 Texture *tex[MAX_TEXTURES];
57 Matrix4x4 tmat[MAX_TEXTURES];
69 Material(const Color &col);
71 void set_texture(Texture *texture, TextureType type);
72 Texture *get_texture(TextureType type);
73 int get_texture_count() const;
75 void set_glmaterial() const;
79 #endif // _MATERIALS_HPP_