00001 #ifndef _MESH_H_ 00002 #define _MESH_H_ 00003 00004 #include "cglib/vector3.h" 00005 #include "cglib/point3.h" 00006 00008 class Mesh 00009 { 00010 public: 00012 Mesh(); 00013 00015 virtual ~Mesh(); 00016 00018 virtual int get_position_count() const = 0; 00019 00021 virtual Point3 get_position(int position_index) const = 0; 00022 00024 virtual int get_normal_count() const = 0; 00025 00027 virtual Vector3 get_normal(int normal_index) const = 0; 00028 00030 virtual int get_face_count() const = 0; 00031 00033 virtual int get_face_vertex_count(int face_index) const = 0; 00034 00036 virtual int get_face_vertex_position_index(int face_index, int vertex_index) const = 0; 00037 00039 virtual int get_face_vertex_normal_index(int face_index, int vertex_index) const = 0; 00040 00042 virtual Point3 get_face_vertex_position(int face_index, int vertex_index) const = 0; 00043 00045 virtual Vector3 get_face_vertex_normal(int face_index, int vertex_index) const = 0; 00046 }; 00047 00048 #endif /* _MESH_H_ */