00001 #ifndef OBJ_READER_H_IS_INCLUDED 00002 #define OBJ_READER_H_IS_INCLUDED 00003 00004 /*! 00005 * \file objreader.H 00006 * \brief Contains the definition of the OBJReader class. A class for reading 00007 * .obj files into meshes. 00008 * 00009 * \sa objreader.C 00010 * 00011 */ 00012 00013 #include <iostream> 00014 00015 class BMESH; 00016 00017 class OBJReaderImpl; 00018 00019 /*! 00020 * \brief A class that can read .obj files and create Jot meshes from them. 00021 * 00022 */ 00023 class OBJReader { 00024 00025 public: 00026 00027 OBJReader(); 00028 00029 ~OBJReader(); 00030 00031 //! \brief Attempt to read the contents of a .obj file from the stream 00032 //! \p in. 00033 bool read(std::istream &in); 00034 00035 //! \brief Create a new BMESH object containing the data read in with the 00036 //! read function. 00037 BMESH *get_mesh() const; 00038 00039 //! \brief Clear the given mesh object and fill it with the data read in 00040 //! with the read function. 00041 void get_mesh(BMESH *mesh) const; 00042 00043 unsigned long get_num_vertices() const; 00044 unsigned long get_num_texcoords() const; 00045 unsigned long get_num_normals() const; 00046 unsigned long get_num_faces() const; 00047 unsigned long get_num_materials() const; 00048 unsigned long get_num_material_libs() const; 00049 00050 private: 00051 00052 OBJReaderImpl *impl; 00053 00054 }; 00055 00056 #endif // OBJ_READER_H_IS_INCLUDED