/* -*- C++ -*- * material.h * $Id: material.h,v 1.2 2000/07/21 22:31:44 ghali Exp $ */ #ifndef MATERIAL_H #define MATERIAL_H #include <GL/glut.h> #include "node.h" #include "../other/color.h" namespace MSG { class Material : public Node { protected: Color ambient; Color diffuse; Color specular; Color emissivity; // The following duplicate the previous variables, but in a format // suitable for OpenGL GLfloat ambientMat[4]; GLfloat diffuseMat[4]; GLfloat specularMat[4]; GLfloat emissivityMat[4]; public: Material(const Color& _ambient = Color::defaultAmbientMaterial, const Color& _diffuse = Color::defaultDiffuseMaterial, const Color& _specular = Color::defaultSpecularMaterial, const Color& _emissivity = Color::defaultEmissivityMaterial); void issueGLcommands(); virtual void render(std::vector<ActiveLight*>* &activelights, std::vector<TransformGroup*> transforms); virtual bool handleEvent(Event* event); }; } #endif