00001 #ifndef OBJECT_H_ 00002 #define OBJECT_H_ 00003 #include <iostream> 00004 #include <cstdlib> 00005 #include <GL/glut.h> 00006 #include "Vector.h" 00007 #include "Node.h" 00008 #include "Material.h" 00009 #include "Text.h" 00010 using std::cout; 00011 00016 class Object : public Node { 00017 protected: 00023 Material* mat; 00024 00028 Text* name; 00029 00033 GLdouble x; 00034 00038 GLdouble y; 00039 00043 GLdouble z; 00044 00048 GLdouble mm[16]; 00049 00053 GLdouble pm[16]; 00054 00058 GLint viewport[4]; 00059 00060 public: 00064 Object(Material* mat = 0); 00065 00069 Object(Material* mat, Text* name); 00070 00074 Material* getMaterial(); 00075 00079 virtual void work(); 00080 00084 virtual void draw() = 0; 00085 00089 virtual ~Object(); 00090 }; 00091 00092 #endif /*OBJECT_H_*/