00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __OBJPARSER__H__
00013 #define __OBJPARSER__H__
00014
00015 #include "../../scenemanager.h"
00016 #include "../../geometrynode.h"
00017 #include "../../geometrytriangles.h"
00018 #include "../../textparser.h"
00019
00020
00021 namespace VRUT
00022 {
00023 class Module;
00024
00026 class OBJParser
00027 {
00028 private:
00030 wxInputStream * inputStream;
00032 SCENE_ID sceneID;
00034 wxString fileName;
00036 Module * module;
00037
00039 bool parseIndices(TextParser &textParser, std::vector<GeometryTriangles::Indice> * indices, GeometryTriangles::TriDescList *triDescList,
00040 GeometryTriangles::PRIMITIVE_TYPE primType, std::vector<VECTOR3> &v, std::vector<GeometryTriangles::TexCoord> &vt, std::vector<VECTOR3> &vn,
00041 std::vector<VECTOR3> *vertices, std::vector<GeometryTriangles::TexCoord> *texCoords, std::vector<VECTOR3> *normals);
00042
00044 bool parseFile(GeometryNode *node, GeometryTriangles *geometry);
00045
00046 public:
00052 OBJParser(wxInputStream * _inputStream, SCENE_ID _sceneID, const wxString _scenePath, Module * _module);
00054 ~OBJParser();
00055
00059 bool Parse(const wxString & rootUid);
00060 };
00061 };
00062
00063
00064 #endif
00065