Main Page | Class Hierarchy | Class List | Directories | File List

Renderable.h

00001 #ifndef __RENDERABLE__
00002 #define __RENDERABLE__
00003 
00004 #include "Vec3.h"
00005 
00006 namespace apig {
00007 
00009     class Renderable {
00010         public:
00011             virtual ~Renderable() {}
00012             virtual void init() {}      // this function is called once, when the OpenGL context is ready
00013             virtual void render() const = 0;
00014             virtual Vec3  center() const { return Vec3(0,0,0); }
00015             virtual float radius() const { return 1.0f; }
00016         };
00017     
00019     class RenderableCube : public Renderable {
00020         public:
00021             RenderableCube(float c) : c(c) {}
00022             
00023             virtual void render() const;
00024             
00025             //virtual Vec3  center() const;
00026             virtual float radius() const;
00027             
00028         private:
00029             float c;
00030         };
00031     
00033     class RenderableTeapot : public Renderable {
00034         public:
00035             RenderableTeapot(float r) : r(r) {}
00036             
00037             virtual void render() const;
00038             
00039             //virtual Vec3  center() const;
00040             virtual float radius() const;
00041             
00042         private:
00043             float r;
00044         };
00045     
00046     }
00047 
00048 #endif
00049 

Generated on Fri Nov 14 20:49:47 2008 for Api Graphics by  doxygen 1.4.4