dark-hammer / 3rdparty / assimp / src / ObjExporter.h

The branch '0.4.7' does not exist.
Diff from to

3rdparty/assimp/src/ObjExporter.h

-/*
-Open Asset Import Library (assimp)
-----------------------------------------------------------------------
-
-Copyright (c) 2006-2012, assimp team
-All rights reserved.
-
-Redistribution and use of this software in source and binary forms, 
-with or without modification, are permitted provided that the 
-following conditions are met:
-
-* Redistributions of source code must retain the above
-  copyright notice, this list of conditions and the
-  following disclaimer.
-
-* Redistributions in binary form must reproduce the above
-  copyright notice, this list of conditions and the
-  following disclaimer in the documentation and/or other
-  materials provided with the distribution.
-
-* Neither the name of the assimp team, nor the names of its
-  contributors may be used to endorse or promote products
-  derived from this software without specific prior
-  written permission of the assimp team.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-----------------------------------------------------------------------
-*/
-
-/** @file ColladaExporter.h
- * Declares the exporter class to write a scene to a Collada file
- */
-#ifndef AI_OBJEXPORTER_H_INC
-#define AI_OBJEXPORTER_H_INC
-
-#include <sstream>
-
-struct aiScene;
-struct aiNode;
-
-namespace Assimp	
-{
-
-// ------------------------------------------------------------------------------------------------
-/** Helper class to export a given scene to an OBJ file. */
-// ------------------------------------------------------------------------------------------------
-class ObjExporter
-{
-public:
-	/// Constructor for a specific scene to export
-	ObjExporter(const char* filename, const aiScene* pScene);
-
-public:
-
-	std::string GetMaterialLibName();
-	std::string GetMaterialLibFileName();
-	
-public:
-
-	/// public stringstreams to write all output into
-	std::ostringstream mOutput, mOutputMat;
-
-private:
-
-	// intermediate data structures
-	struct FaceVertex 
-	{
-		FaceVertex()
-			: vp(),vn(),vt() 
-		{
-		}
-
-		// one-based, 0 means: 'does not exist'
-		unsigned int vp,vn,vt;
-	};
-
-	struct Face {
-		char kind;
-		std::vector<FaceVertex> indices;
-	};
-
-	struct MeshInstance {
-
-		std::string name, matname;
-		std::vector<Face> faces;
-	};
-
-	void WriteHeader(std::ostringstream& out);
-
-	void WriteMaterialFile();
-	void WriteGeometryFile();
-
-	std::string GetMaterialName(unsigned int index);
-
-	void AddMesh(const aiString& name, const aiMesh* m, const aiMatrix4x4& mat);
-	void AddNode(const aiNode* nd, const aiMatrix4x4& mParent);
-
-private:
-
-	const std::string filename;
-	const aiScene* const pScene;
-
-	std::vector<aiVector3D> vp, vn, vt;
-	std::vector<MeshInstance> meshes;
-
-	// this endl() doesn't flush() the stream
-	const std::string endl;
-};
-
-}
-
-#endif
+/*
+Open Asset Import Library (assimp)
+----------------------------------------------------------------------
+
+Copyright (c) 2006-2012, assimp team
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, 
+with or without modification, are permitted provided that the 
+following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of the assimp team, nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of the assimp team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+----------------------------------------------------------------------
+*/
+
+/** @file ColladaExporter.h
+ * Declares the exporter class to write a scene to a Collada file
+ */
+#ifndef AI_OBJEXPORTER_H_INC
+#define AI_OBJEXPORTER_H_INC
+
+#include <sstream>
+
+struct aiScene;
+struct aiNode;
+
+namespace Assimp	
+{
+
+// ------------------------------------------------------------------------------------------------
+/** Helper class to export a given scene to an OBJ file. */
+// ------------------------------------------------------------------------------------------------
+class ObjExporter
+{
+public:
+	/// Constructor for a specific scene to export
+	ObjExporter(const char* filename, const aiScene* pScene);
+
+public:
+
+	std::string GetMaterialLibName();
+	std::string GetMaterialLibFileName();
+	
+public:
+
+	/// public stringstreams to write all output into
+	std::ostringstream mOutput, mOutputMat;
+
+private:
+
+	// intermediate data structures
+	struct FaceVertex 
+	{
+		FaceVertex()
+			: vp(),vn(),vt() 
+		{
+		}
+
+		// one-based, 0 means: 'does not exist'
+		unsigned int vp,vn,vt;
+	};
+
+	struct Face {
+		char kind;
+		std::vector<FaceVertex> indices;
+	};
+
+	struct MeshInstance {
+
+		std::string name, matname;
+		std::vector<Face> faces;
+	};
+
+	void WriteHeader(std::ostringstream& out);
+
+	void WriteMaterialFile();
+	void WriteGeometryFile();
+
+	std::string GetMaterialName(unsigned int index);
+
+	void AddMesh(const aiString& name, const aiMesh* m, const aiMatrix4x4& mat);
+	void AddNode(const aiNode* nd, const aiMatrix4x4& mParent);
+
+private:
+
+	const std::string filename;
+	const aiScene* const pScene;
+
+	std::vector<aiVector3D> vp, vn, vt;
+	std::vector<MeshInstance> meshes;
+
+	// this endl() doesn't flush() the stream
+	const std::string endl;
+};
+
+}
+
+#endif
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.