home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 February
/
Chip_2001-02_cd1.bin
/
bonus
/
demos
/
CS
/
exp
/
SOURCES
/
GLENGINE
/
material.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-07-16
|
1KB
|
57 lines
#ifndef __OGL2_MATERIAL__
#define __OGL2_MATERIAL__
#include "types.h"
#include "entity.h"
extern "C++" {
class Material : public Entity {
public:
virtual ~Material () {}
virtual void GL (GLenum face) = 0;
};
template class EntityList<Material>;
typedef EntityList<Material> Materials;
class MaterialGL : public Material
{
GLfloat ambient[4];
GLfloat diffuse[4];
GLfloat specular[4];
GLfloat emission[4];
GLfloat shininess;
public:
MaterialGL ();
void Reset ();
void GL (GLenum face);
void Ambient (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0F),
Ambient (GLfloat* v),
Diffuse (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0F),
Diffuse (GLfloat* v),
Specular (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0F),
Specular (GLfloat* v),
Emission (GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0F),
Emission (GLfloat* v);
void Shininess (GLfloat f);
// Feedback
const GLfloat* Ambient ();
const GLfloat* Diffuse ();
const GLfloat* Specular ();
const GLfloat* Emission ();
GLfloat Shininess ();
};
} // extern "C++"
#endif