Răsfoiți Sursa

Assimp WIP.

Mark Sibly 8 ani în urmă
părinte
comite
018fa635a8

+ 12 - 3
modules/assimp/assimp.monkey2

@@ -78,6 +78,11 @@ Struct aiColor4D
 	Field a:Float
 End
 
+Struct aiFace
+	Field mIndices:UInt Ptr
+	Field mNumIndices:UInt
+End
+
 Class aiMaterial Extends Void
 End
 
@@ -85,13 +90,17 @@ Class aiMesh Extends Void
 	
 	Field mVertices:aiVector3D Ptr 
 	Field mNormals:aiVector3D Ptr
+	Field mTangents:aiVector3D Ptr
+	Field mBitangents:aiVector3D Ptr
 	Field mTextureCoords:aiVector3D Ptr Ptr
+	Field mFaces:aiFace Ptr
 	
 	Field mName:aiString
-	
 	Field mMaterialIndex:UInt
-	
 	Field mNumVertices:UInt
+	Field mPrimitiveTypes:UInt
+	Field mNumUVComponents:UInt Ptr
+	Field mNumFaces:UInt
 
 End
 
@@ -107,7 +116,7 @@ End
 
 Function aiImportFile:aiScene( pFile:CString,pFlags:UInt )
 
-Function aiImportFileFromMemory:aiScene( pBuffer:Void Ptr,pLength:UInt,pFlags:UInt,pHint:CString )
+Function aiImportFileFromMemory:aiScene( pBuffer:libc.char_t Ptr,pLength:UInt,pFlags:UInt,pHint:CString )
 
 Function aiReleaseImport( scene:aiScene )
 	

+ 50 - 5
modules/assimp/assimp/include/assimp/config.h

@@ -59,18 +59,63 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef AI_CONFIG_H_INC
 #define AI_CONFIG_H_INC
 
-// Added by Mark! These affect stuff in 'defs'
+// ###########################################################################
+// MARK WAS HERE!!!!
+// Tweaks for monkey2
+// ###########################################################################
+
 #define ASSIMP_BUILD_NO_C4D_IMPORTER
 #define ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1
 //#define ASSIMP_BUILD_DLL_EXPORT
 #define OPENDDLPARSER_BUILD
 
-//Can't get IFC importer to build...
+//Enabled/Disabled importers
+
+//#define ASSIMP_BUILD_NO_X_IMPORTER 1
+#define ASSIMP_BUILD_NO_AMF_IMPORTER 1
+//#define ASSIMP_BUILD_NO_3DS_IMPORTER 1
+#define ASSIMP_BUILD_NO_MD3_IMPORTER 1
+#define ASSIMP_BUILD_NO_MDL_IMPORTER 1
+#define ASSIMP_BUILD_NO_MD2_IMPORTER 1
+#define ASSIMP_BUILD_NO_PLY_IMPORTER 1
+#define ASSIMP_BUILD_NO_ASE_IMPORTER 1
+//#define ASSIMP_BUILD_NO_OBJ_IMPORTER 1
+#define ASSIMP_BUILD_NO_HMP_IMPORTER 1
+#define ASSIMP_BUILD_NO_SMD_IMPORTER 1
+#define ASSIMP_BUILD_NO_MDC_IMPORTER 1
+#define ASSIMP_BUILD_NO_MD5_IMPORTER 1
+#define ASSIMP_BUILD_NO_STL_IMPORTER 1
+#define ASSIMP_BUILD_NO_LWO_IMPORTER 1
+#define ASSIMP_BUILD_NO_DXF_IMPORTER 1
+#define ASSIMP_BUILD_NO_NFF_IMPORTER 1
+#define ASSIMP_BUILD_NO_RAW_IMPORTER 1
+#define ASSIMP_BUILD_NO_SIB_IMPORTER 1
+#define ASSIMP_BUILD_NO_OFF_IMPORTER 1
+#define ASSIMP_BUILD_NO_AC_IMPORTER 1
+#define ASSIMP_BUILD_NO_BVH_IMPORTER 1
+#define ASSIMP_BUILD_NO_IRRMESH_IMPORTER 1
+#define ASSIMP_BUILD_NO_IRR_IMPORTER 1
+#define ASSIMP_BUILD_NO_Q3D_IMPORTER 1
+//#define ASSIMP_BUILD_NO_B3D_IMPORTER 1
+//#define ASSIMP_BUILD_NO_COLLADA_IMPORTER 1
+#define ASSIMP_BUILD_NO_TERRAGEN_IMPORTER 1
+#define ASSIMP_BUILD_NO_CSM_IMPORTER 1
+#define ASSIMP_BUILD_NO_3D_IMPORTER 1
+#define ASSIMP_BUILD_NO_LWS_IMPORTER 1
+#define ASSIMP_BUILD_NO_OGRE_IMPORTER 1
+#define ASSIMP_BUILD_NO_OPENGEX_IMPORTER 1
+#define ASSIMP_BUILD_NO_MS3D_IMPORTER 1
+#define ASSIMP_BUILD_NO_COB_IMPORTER 1
+#define ASSIMP_BUILD_NO_BLEND_IMPORTER 1
+#define ASSIMP_BUILD_NO_Q3BSP_IMPORTER 1
+#define ASSIMP_BUILD_NO_NDO_IMPORTER 1
 #define ASSIMP_BUILD_NO_IFC_IMPORTER 1
-
-//Can't get GLTF importer to build...
+#define ASSIMP_BUILD_NO_XGL_IMPORTER 1
+#define ASSIMP_BUILD_NO_FBX_IMPORTER 1
+#define ASSIMP_BUILD_NO_ASSBIN_IMPORTER 1
 #define ASSIMP_BUILD_NO_GLTF_IMPORTER 1
-
+#define ASSIMP_BUILD_NO_3MF_IMPORTER 1
+#define ASSIMP_BUILD_NO_X3D_IMPORTER 1
 
 // ###########################################################################
 // LIBRARY SETTINGS

+ 63 - 34
modules/assimp/makefile.monkey2

@@ -37,6 +37,8 @@ Namespace assimp
 #Import "assimp/code/DefaultLogger.cpp"
 #Import "assimp/code/Exporter.cpp"
 #Import "assimp/code/AssimpCExport.cpp"
+
+'Processors?
 #Import "assimp/code/CalcTangentsProcess.cpp"
 #Import "assimp/code/ComputeUVMappingProcess.cpp"
 #Import "assimp/code/ConvertToLHProcess.cpp"
@@ -63,25 +65,43 @@ Namespace assimp
 #Import "assimp/code/ProcessHelper.cpp"
 #Import "assimp/code/MakeVerboseFormat.cpp"
 #Import "assimp/code/MaterialSystem.cpp"
+
+'importers/exporters?
+'
+'Also need to edit assimp/include/assimp/config.h to enable/disable these...
+
+#Import "assimp/code/B3DImporter.cpp"
+
+#Import "assimp/code/3DSConverter.cpp"
+#Import "assimp/code/3DSLoader.cpp"
+#Import "assimp/code/3DSExporter.cpp"
+
+#Import "assimp/code/ObjFileImporter.cpp"
+#Import "assimp/code/ObjFileMtlImporter.cpp"
+#Import "assimp/code/ObjFileParser.cpp"
+#Import "assimp/code/ObjExporter.cpp"
+
+#Import "assimp/code/XFileImporter.cpp"
+#Import "assimp/code/XFileParser.cpp"
+#Import "assimp/code/XFileExporter.cpp"
+
+#Import "assimp/code/ColladaLoader.cpp"
+#Import "assimp/code/ColladaParser.cpp"
+#Import "assimp/code/ColladaExporter.cpp"
+
+#rem
 #Import "assimp/code/StepExporter.cpp"
 #Import "assimp/code/AMFImporter.cpp"
 #Import "assimp/code/AMFImporter_Geometry.cpp"
 #Import "assimp/code/AMFImporter_Material.cpp"
 #Import "assimp/code/AMFImporter_Postprocess.cpp"
-#Import "assimp/code/3DSConverter.cpp"
-#Import "assimp/code/3DSLoader.cpp"
-#Import "assimp/code/3DSExporter.cpp"
 #Import "assimp/code/ACLoader.cpp"
 #Import "assimp/code/ASELoader.cpp"
 #Import "assimp/code/ASEParser.cpp"
 #Import "assimp/code/AssbinExporter.cpp"
 #Import "assimp/code/AssbinLoader.cpp"
 #Import "assimp/code/AssxmlExporter.cpp"
-#Import "assimp/code/B3DImporter.cpp"
 #Import "assimp/code/BVHLoader.cpp"
-#Import "assimp/code/ColladaLoader.cpp"
-#Import "assimp/code/ColladaParser.cpp"
-#Import "assimp/code/ColladaExporter.cpp"
 #Import "assimp/code/DXFLoader.cpp"
 #Import "assimp/code/CSMLoader.cpp"
 #Import "assimp/code/HMPLoader.cpp"
@@ -103,10 +123,6 @@ Namespace assimp
 #Import "assimp/code/NFFLoader.cpp"
 #Import "assimp/code/NDOLoader.cpp"
 #Import "assimp/code/OFFLoader.cpp"
-#Import "assimp/code/ObjFileImporter.cpp"
-#Import "assimp/code/ObjFileMtlImporter.cpp"
-#Import "assimp/code/ObjFileParser.cpp"
-#Import "assimp/code/ObjExporter.cpp"
 #Import "assimp/code/OgreImporter.cpp"
 #Import "assimp/code/OgreStructs.cpp"
 #Import "assimp/code/OgreBinarySerializer.cpp"
@@ -166,9 +182,6 @@ Namespace assimp
 #Import "assimp/code/STLExporter.cpp"
 #Import "assimp/code/TerragenLoader.cpp"
 #Import "assimp/code/UnrealLoader.cpp"
-#Import "assimp/code/XFileImporter.cpp"
-#Import "assimp/code/XFileParser.cpp"
-#Import "assimp/code/XFileExporter.cpp"
 #Import "assimp/code/X3DExporter.cpp"
 #Import "assimp/code/X3DImporter.cpp"
 #Import "assimp/code/X3DImporter_Geometry2D.cpp"
@@ -181,32 +194,19 @@ Namespace assimp
 #Import "assimp/code/X3DImporter_Rendering.cpp"
 #Import "assimp/code/X3DImporter_Shape.cpp"
 #Import "assimp/code/X3DImporter_Texturing.cpp"
-'#Import "assimp/code/glTFImporter.cpp"
-'#Import "assimp/code/glTFExporter.cpp"
+#Import "assimp/code/glTFImporter.cpp"
+#Import "assimp/code/glTFExporter.cpp"
 #Import "assimp/code/D3MFImporter.cpp"
 #Import "assimp/code/D3MFOpcPackage.cpp"
+#end
+
+'ConvertUTF
 #Import "assimp/contrib/ConvertUTF/ConvertUTF.c"
-#Import "assimp/contrib/unzip/ioapi.c"
-#Import "assimp/contrib/unzip/unzip.c"
-#Import "assimp/contrib/poly2tri/poly2tri/common/shapes.cc"
-#Import "assimp/contrib/poly2tri/poly2tri/sweep/advancing_front.cc"
-#Import "assimp/contrib/poly2tri/poly2tri/sweep/cdt.cc"
-#Import "assimp/contrib/poly2tri/poly2tri/sweep/sweep.cc"
-#Import "assimp/contrib/poly2tri/poly2tri/sweep/sweep_context.cc"
-#Import "assimp/contrib/clipper/clipper.cpp"
-#Import "assimp/contrib/openddlparser/code/OpenDDLParser.cpp"
-#Import "assimp/contrib/openddlparser/code/DDLNode.cpp"
-#Import "assimp/contrib/openddlparser/code/OpenDDLCommon.cpp"
-#Import "assimp/contrib/openddlparser/code/OpenDDLExport.cpp"
-#Import "assimp/contrib/openddlparser/code/Value.cpp"
-#Import "assimp/contrib/Open3DGC/o3dgcArithmeticCodec.cpp"
-#Import "assimp/contrib/Open3DGC/o3dgcDynamicVectorDecoder.cpp"
-#Import "assimp/contrib/Open3DGC/o3dgcDynamicVectorEncoder.cpp"
-#Import "assimp/contrib/Open3DGC/o3dgcTools.cpp"
-#Import "assimp/contrib/Open3DGC/o3dgcTriangleFans.cpp"
 
+'irrXML
 #Import "assimp/contrib/irrXML/irrXML.cpp"
 
+'zlib
 #Import "assimp/contrib/zlib/adler32.c"
 #Import "assimp/contrib/zlib/compress.c"
 #Import "assimp/contrib/zlib/crc32.c"
@@ -222,3 +222,32 @@ Namespace assimp
 #Import "assimp/contrib/zlib/trees.c"
 #Import "assimp/contrib/zlib/uncompr.c"
 #Import "assimp/contrib/zlib/zutil.c"
+
+'unzip
+'#Import "assimp/contrib/unzip/ioapi.c"
+'#Import "assimp/contrib/unzip/unzip.c"
+
+'poly2tri
+'#Import "assimp/contrib/poly2tri/poly2tri/common/shapes.cc"
+'#Import "assimp/contrib/poly2tri/poly2tri/sweep/advancing_front.cc"
+'#Import "assimp/contrib/poly2tri/poly2tri/sweep/cdt.cc"
+'#Import "assimp/contrib/poly2tri/poly2tri/sweep/sweep.cc"
+'#Import "assimp/contrib/poly2tri/poly2tri/sweep/sweep_context.cc"
+
+'clipper
+'#Import "assimp/contrib/clipper/clipper.cpp"
+
+'openddl
+'#Import "assimp/contrib/openddlparser/code/OpenDDLParser.cpp"
+'#Import "assimp/contrib/openddlparser/code/DDLNode.cpp"
+'#Import "assimp/contrib/openddlparser/code/OpenDDLCommon.cpp"
+'#Import "assimp/contrib/openddlparser/code/OpenDDLExport.cpp"
+'#Import "assimp/contrib/openddlparser/code/Value.cpp"
+
+'Open3DGC
+'#Import "assimp/contrib/Open3DGC/o3dgcArithmeticCodec.cpp"
+'#Import "assimp/contrib/Open3DGC/o3dgcDynamicVectorDecoder.cpp"
+'#Import "assimp/contrib/Open3DGC/o3dgcDynamicVectorEncoder.cpp"
+'#Import "assimp/contrib/Open3DGC/o3dgcTools.cpp"
+'#Import "assimp/contrib/Open3DGC/o3dgcTriangleFans.cpp"
+

+ 1 - 1
modules/assimp/tests/test1.monkey2

@@ -13,7 +13,7 @@ Function Main()
 '	Local flags:UInt=aiProcess_CalcTangentSpace | aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType
 	Local flags:UInt=aiProcess_PreTransformVertices | aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType
 	
-	Local scene:=aiImportFile( AssetsDir()+"turtle1.b3d",flags )
+Local scene:=aiImportFile( AssetsDir()+"turtle1.b3d",flags )
 
 	If scene
 		Print "Loaded!"