[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48388] branches/soc-2012-bratwurst/extern /assimp: - ext_assimp: merge https://github.com/acgessler/ assimp-gsoc2012-fbx.
Alexander Gessler
alexander.gessler at gmx.net
Fri Jun 29 00:18:34 CEST 2012
Revision: 48388
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48388
Author: aramis_acg
Date: 2012-06-28 22:18:13 +0000 (Thu, 28 Jun 2012)
Log Message:
-----------
- ext_assimp: merge https://github.com/acgessler/assimp-gsoc2012-fbx. This updates assimp to 3.0 and adds the current status of my FBX importer, so the "Import via Open Asset Import Library" menu item now accepts FBX.
Modified Paths:
--------------
branches/soc-2012-bratwurst/extern/assimp/CMakeLists.txt
branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.cpp
branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.h
branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.cpp
branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.h
branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.cpp
branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.h
branches/soc-2012-bratwurst/extern/assimp/code/ImporterRegistry.cpp
branches/soc-2012-bratwurst/extern/assimp/code/LWSLoader.cpp
branches/soc-2012-bratwurst/extern/assimp/code/LWSLoader.h
branches/soc-2012-bratwurst/extern/assimp/code/ObjTools.h
branches/soc-2012-bratwurst/extern/assimp/code/OgreImporter.cpp
branches/soc-2012-bratwurst/extern/assimp/code/OgreImporter.hpp
branches/soc-2012-bratwurst/extern/assimp/code/OgreMaterial.cpp
branches/soc-2012-bratwurst/extern/assimp/code/OgreSkeleton.cpp
branches/soc-2012-bratwurst/extern/assimp/code/STEPFileReader.cpp
branches/soc-2012-bratwurst/extern/assimp/include/assimp/config.h
Added Paths:
-----------
branches/soc-2012-bratwurst/extern/assimp/code/FBXCompileConfig.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXConverter.cpp
branches/soc-2012-bratwurst/extern/assimp/code/FBXConverter.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXDocument.cpp
branches/soc-2012-bratwurst/extern/assimp/code/FBXDocument.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXImportSettings.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXImporter.cpp
branches/soc-2012-bratwurst/extern/assimp/code/FBXImporter.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXParser.cpp
branches/soc-2012-bratwurst/extern/assimp/code/FBXParser.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXTokenizer.cpp
branches/soc-2012-bratwurst/extern/assimp/code/FBXTokenizer.h
branches/soc-2012-bratwurst/extern/assimp/code/FBXUtil.cpp
branches/soc-2012-bratwurst/extern/assimp/code/FBXUtil.h
Modified: branches/soc-2012-bratwurst/extern/assimp/CMakeLists.txt
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/CMakeLists.txt 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/CMakeLists.txt 2012-06-28 22:18:13 UTC (rev 48388)
@@ -282,7 +282,24 @@
code/XGLLoader.h
)
+SET(FBX_SRCS
+ code/FBXCompileConfig.h
+ code/FBXConverter.cpp
+ code/FBXConverter.h
+ code/FBXDocument.cpp
+ code/FBXDocument.h
+ code/FBXImporter.cpp
+ code/FBXImporter.h
+ code/FBXImportSettings.h
+ code/FBXParser.cpp
+ code/FBXParser.h
+ code/FBXTokenizer.cpp
+ code/FBXTokenizer.h
+ code/FBXUtil.cpp
+ code/FBXUtil.h
+)
+
SET( PostProcessing_SRCS
code/CalcTangentsProcess.cpp
code/CalcTangentsProcess.h
@@ -493,6 +510,7 @@
${NDO_SRCS}
${IFC_SRCS}
${XGL_SRCS}
+ ${FBX_SRCS}
# Third-party libraries
${IrrXML_SRCS}
Modified: branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.cpp
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.cpp 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.cpp 2012-06-28 22:18:13 UTC (rev 48388)
@@ -74,6 +74,7 @@
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
ASEImporter::ASEImporter()
+: noSkeletonMesh()
{}
// ------------------------------------------------------------------------------------------------
@@ -111,6 +112,8 @@
{
configRecomputeNormals = (pImp->GetPropertyInteger(
AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS,1) ? true : false);
+
+ noSkeletonMesh = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_NO_SKELETON_MESHES,0) != 0;
}
// ------------------------------------------------------------------------------------------------
@@ -244,7 +247,9 @@
// ------------------------------------------------------------------
if (!pScene->mNumMeshes) {
pScene->mFlags |= AI_SCENE_FLAGS_INCOMPLETE;
- SkeletonMeshBuilder skeleton(pScene);
+ if (!noSkeletonMesh) {
+ SkeletonMeshBuilder skeleton(pScene);
+ }
}
}
// ------------------------------------------------------------------------------------------------
Modified: branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.h
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.h 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/code/ASELoader.h 2012-06-28 22:18:13 UTC (rev 48388)
@@ -197,6 +197,7 @@
/** Config options: Recompute the normals in every case - WA
for 3DS Max broken ASE normal export */
bool configRecomputeNormals;
+ bool noSkeletonMesh;
};
} // end of namespace Assimp
Modified: branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.cpp
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.cpp 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.cpp 2012-06-28 22:18:13 UTC (rev 48388)
@@ -65,6 +65,7 @@
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
BVHLoader::BVHLoader()
+: noSkeletonMesh()
{}
// ------------------------------------------------------------------------------------------------
@@ -90,6 +91,12 @@
}
// ------------------------------------------------------------------------------------------------
+void BVHLoader::SetupProperties(const Importer* pImp)
+{
+ noSkeletonMesh = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_NO_SKELETON_MESHES,0) != 0;
+}
+
+// ------------------------------------------------------------------------------------------------
// Loader meta information
const aiImporterDesc* BVHLoader::GetInfo () const
{
@@ -119,8 +126,10 @@
mLine = 1;
ReadStructure( pScene);
- // build a dummy mesh for the skeleton so that we see something at least
- SkeletonMeshBuilder meshBuilder( pScene);
+ if (!noSkeletonMesh) {
+ // build a dummy mesh for the skeleton so that we see something at least
+ SkeletonMeshBuilder meshBuilder( pScene);
+ }
// construct an animation from all the motion data we read
CreateAnimation( pScene);
Modified: branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.h
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.h 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/code/BVHLoader.h 2012-06-28 22:18:13 UTC (rev 48388)
@@ -94,6 +94,7 @@
* See BaseImporter::CanRead() for details. */
bool CanRead( const std::string& pFile, IOSystem* pIOHandler, bool cs) const;
+ void SetupProperties(const Importer* pImp);
const aiImporterDesc* GetInfo () const;
protected:
@@ -159,6 +160,8 @@
/** basic Animation parameters */
float mAnimTickDuration;
unsigned int mAnimNumFrames;
+
+ bool noSkeletonMesh;
};
} // end of namespace Assimp
Modified: branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.cpp
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.cpp 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.cpp 2012-06-28 22:18:13 UTC (rev 48388)
@@ -71,6 +71,7 @@
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
CSMImporter::CSMImporter()
+: noSkeletonMesh()
{}
// ------------------------------------------------------------------------------------------------
@@ -104,9 +105,9 @@
// ------------------------------------------------------------------------------------------------
// Setup configuration properties for the loader
-void CSMImporter::SetupProperties(const Importer* /*pImp*/)
+void CSMImporter::SetupProperties(const Importer* pImp)
{
- // nothing to be done for the moment
+ noSkeletonMesh = pImp->GetPropertyInteger(AI_CONFIG_IMPORT_NO_SKELETON_MESHES,0) != 0;
}
// ------------------------------------------------------------------------------------------------
@@ -289,7 +290,10 @@
// mark the scene as incomplete and run SkeletonMeshBuilder on it
pScene->mFlags |= AI_SCENE_FLAGS_INCOMPLETE;
- SkeletonMeshBuilder maker(pScene,pScene->mRootNode,true);
+
+ if (!noSkeletonMesh) {
+ SkeletonMeshBuilder maker(pScene,pScene->mRootNode,true);
+ }
}
#endif // !! ASSIMP_BUILD_NO_CSM_IMPORTER
Modified: branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.h
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.h 2012-06-28 20:48:18 UTC (rev 48387)
+++ branches/soc-2012-bratwurst/extern/assimp/code/CSMLoader.h 2012-06-28 22:18:13 UTC (rev 48388)
@@ -79,6 +79,9 @@
IOSystem* pIOHandler);
private:
+
+ bool noSkeletonMesh;
+
}; // end of class CSMImporter
} // end of namespace Assimp
#endif // AI_AC3DIMPORTER_H_INC
Added: branches/soc-2012-bratwurst/extern/assimp/code/FBXCompileConfig.h
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/FBXCompileConfig.h (rev 0)
+++ branches/soc-2012-bratwurst/extern/assimp/code/FBXCompileConfig.h 2012-06-28 22:18:13 UTC (rev 48388)
@@ -0,0 +1,66 @@
+/*
+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 FBXCompileConfig.h
+ * @brief FBX importer compile-time switches
+ */
+#ifndef INCLUDED_AI_FBX_COMPILECONFIG_H
+#define INCLUDED_AI_FBX_COMPILECONFIG_H
+
+//
+#if _MSC_VER > 1500 || (defined __GNUC___)
+# define ASSIMP_FBX_USE_UNORDERED_MULTIMAP
+# else
+# define fbx_unordered_map map
+# define fbx_unordered_multimap multimap
+#endif
+
+#ifdef ASSIMP_FBX_USE_UNORDERED_MULTIMAP
+# include <unordered_map>
+# if _MSC_VER > 1600
+# define fbx_unordered_map unordered_map
+# define fbx_unordered_multimap unordered_multimap
+# else
+# define fbx_unordered_map tr1::unordered_map
+# define fbx_unordered_multimap tr1::unordered_multimap
+# endif
+#endif
+
+#endif
Added: branches/soc-2012-bratwurst/extern/assimp/code/FBXConverter.cpp
===================================================================
--- branches/soc-2012-bratwurst/extern/assimp/code/FBXConverter.cpp (rev 0)
+++ branches/soc-2012-bratwurst/extern/assimp/code/FBXConverter.cpp 2012-06-28 22:18:13 UTC (rev 48388)
@@ -0,0 +1,262 @@
+/*
+Open Asset Import Library (assimp)
+----------------------------------------------------------------------
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list