Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/WolfireGames/overgrowth.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Source/AI/mesh_loader_obj.h')
-rw-r--r--Source/AI/mesh_loader_obj.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/Source/AI/mesh_loader_obj.h b/Source/AI/mesh_loader_obj.h
new file mode 100644
index 00000000..f0e72a72
--- /dev/null
+++ b/Source/AI/mesh_loader_obj.h
@@ -0,0 +1,67 @@
+//-----------------------------------------------------------------------------
+// Name: mesh_loader_obj.h
+// Developer: External
+// Author:
+// Description: This is a utility file from the Recast project which has been
+// extracted and modified by Wolfire Games LLC
+// License: Read below
+//-----------------------------------------------------------------------------
+
+//
+// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+// 1. The origin of this software must not be misrepresented; you must not
+// claim that you wrote the original software. If you use this software
+// in a product, an acknowledgment in the product documentation would be
+// appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+// misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#ifndef MESHLOADER_OBJ
+#define MESHLOADER_OBJ
+
+#include <string>
+
+using std::string;
+
+class rcMeshLoaderObj
+{
+public:
+ rcMeshLoaderObj();
+ ~rcMeshLoaderObj();
+
+ bool load(const string& fileName);
+
+ const float* getVerts() const { return m_verts; }
+ const float* getNormals() const { return m_normals; }
+ const int* getTris() const { return m_tris; }
+ int getVertCount() const { return m_vertCount; }
+ int getTriCount() const { return m_triCount; }
+ const string& getFileName() const { return m_filename; }
+
+private:
+ // Explicitly disabled copy constructor and copy assignment operator.
+ rcMeshLoaderObj(const rcMeshLoaderObj&);
+ rcMeshLoaderObj& operator=(const rcMeshLoaderObj&);
+
+ void addVertex(float x, float y, float z, int& cap);
+ void addTriangle(int a, int b, int c, int& cap);
+
+ string m_filename;
+ float m_scale;
+ float* m_verts;
+ int* m_tris;
+ float* m_normals;
+ int m_vertCount;
+ int m_triCount;
+};
+
+#endif // MESHLOADER_OBJ