Planeshift

MeshLoaderObj.h

Go to the documentation of this file.
00001 //
00002 // Copyright (c) 2009-2010 Mikko Mononen [email protected]
00003 //
00004 // This software is provided 'as-is', without any express or implied
00005 // warranty.  In no event will the authors be held liable for any damages
00006 // arising from the use of this software.
00007 // Permission is granted to anyone to use this software for any purpose,
00008 // including commercial applications, and to alter it and redistribute it
00009 // freely, subject to the following restrictions:
00010 // 1. The origin of this software must not be misrepresented; you must not
00011 //    claim that you wrote the original software. If you use this software
00012 //    in a product, an acknowledgment in the product documentation would be
00013 //    appreciated but is not required.
00014 // 2. Altered source versions must be plainly marked as such, and must not be
00015 //    misrepresented as being the original software.
00016 // 3. This notice may not be removed or altered from any source distribution.
00017 //
00018 
00019 #ifndef MESHLOADER_OBJ
00020 #define MESHLOADER_OBJ
00021 
00022 class rcMeshLoaderObj
00023 {
00024 public:
00025         rcMeshLoaderObj();
00026         ~rcMeshLoaderObj();
00027         
00028         bool load(const char* fileName);
00029 
00030         inline const float* getVerts() const { return m_verts; }
00031         inline const float* getNormals() const { return m_normals; }
00032         inline const int* getTris() const { return m_tris; }
00033         inline int getVertCount() const { return m_vertCount; }
00034         inline int getTriCount() const { return m_triCount; }
00035         inline const char* getFileName() const { return m_filename; }
00036 
00037 private:
00038         
00039         void addVertex(float x, float y, float z, int& cap);
00040         void addTriangle(int a, int b, int c, int& cap);
00041         
00042         char m_filename[260];
00043         
00044         float* m_verts;
00045         int* m_tris;
00046         float* m_normals;
00047         int m_vertCount;
00048         int m_triCount;
00049 };
00050 
00051 #endif // MESHLOADER_OBJ