Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

model.h

Go to the documentation of this file.
00001 
00008 #ifndef _MODEL_H
00009 #define _MODEL_H
00010 
00011 #include "utils.h"
00012 #include "material.h"
00013 
00018 void draw_wire_cube( const Vec3& min, const Vec3& max, const Vec3f& color );
00019 
00024 void draw_solid_cube( const Vec3& min, const Vec3& max, const bool draw_faces[6] = NULL );
00025 
00027 void draw_capped_cylinder( double length, double radius, int quality = 3 );
00028 
00029 #define CUBE_FRONT  0
00030 #define CUBE_BACK   1
00031 #define CUBE_LEFT   2
00032 #define CUBE_RIGHT  3
00033 #define CUBE_TOP    4
00034 #define CUBE_BOTTOM 5
00035 
00036 
00040 class Model {
00041 public:
00042     Model( void );
00043     Model( const Material& mat );
00044 
00045     virtual ~Model( void ) {}
00046 
00050     virtual void render( void );
00051 
00055     virtual void draw_decor( Vec3 color )
00056     { draw_wire_cube( get_min()*1.02, get_max()*1.02, color ); }
00057 
00058     virtual Vec3 get_min( void ) { return Vec3( -1.0 ); }
00059     virtual Vec3 get_max( void ) { return Vec3( 1.0 ); }
00060 
00061     virtual string get_info()
00062         { return "texture=\"" + _material.texture_filename + "\""; }
00063 
00064     void set_material( Material m ) { _material = m; }
00065 private:
00066     Material _material; 
00067 };
00068 
00069 #endif // header guard

Generated on Sat Mar 13 15:00:10 2004 by doxygen 1.3.5