assimplib.bmx 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. ' assimplib.bmx
  2. Strict
  3. Rem
  4. bbdoc: Assimp library wrapper
  5. about: Wrapper for Assimp (Open Asset Import) library. Imported by assimp.mod.
  6. Requires BaH.Boost source code and Koriolis.Zipstream module binaries, see module info links.
  7. To get BaH.Boost by Subversion open command-line and make sure you "cd" to bah.mod before checkout.
  8. End Rem
  9. Module Openb3dlibs.Assimplib
  10. ModuleInfo "Version: 0.41"
  11. ModuleInfo "License: BSD-3-Clause"
  12. ModuleInfo "Copyright: Wrapper - 2009-2017 Peter Scheutz, Mark Mcvittie"
  13. ModuleInfo "Copyright: Library - 2006-2012 Assimp team"
  14. ModuleInfo "Source: https://github.com/markcwm/openb3dlibs.mod"
  15. ModuleInfo "Source: svn checkout https://github.com/maxmods/bah.mod/trunk/boost.mod"
  16. ModuleInfo "Source: https://github.com/maxmods/koriolis.mod"
  17. ModuleInfo "Source: https://github.com/assimp/assimp"
  18. ModuleInfo "History: 0.41 Release Aug 2017 - update to assimp 3.2"
  19. ModuleInfo "History: 0.40 Release Aug 2017 - added zipstream, 64-bit wrapper"
  20. ModuleInfo "History: 0.38 Release Jul 2017 - added source wrapper, incbin streams"
  21. ModuleInfo "History: 0.36 Release Sep 2014 - library wrapper, update to assimp 3.1.1"
  22. ModuleInfo "History: 0.30 Release Apr 2011"
  23. ModuleInfo "History: 0.22 Release Nov 2009"
  24. ModuleInfo "History: 0.07 Initial Release Jan 2009"
  25. ModuleInfo "CC_OPTS: -fexceptions"
  26. ' defs.h
  27. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COMPRESSED_X" ' disable compressed .x (zip)
  28. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COMPRESSED_BLEND" ' disable compressed .blend (zip)
  29. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COMPRESSED_IFC" ' disable compressed .ifc (unzip)
  30. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COMPRESSED_XGL" ' disable compressed .xgl (zip)
  31. '
  32. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_CALCTANGENTS_PROCESS" ' disable specific post processing step
  33. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_JOINVERTICES_PROCESS"
  34. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_TRIANGULATE_PROCESS"
  35. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_GENFACENORMALS_PROCESS"
  36. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS"
  37. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_REMOVEVC_PROCESS"
  38. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS"
  39. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS"
  40. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS"
  41. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_VALIDATEDS_PROCESS"
  42. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS"
  43. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS"
  44. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS"
  45. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS"
  46. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS"
  47. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS"
  48. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS"
  49. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_GENUVCOORDS_PROCESS"
  50. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_ENTITYMESHBUILDER_PROCESS"
  51. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS"
  52. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_FLIPUVS_PROCESS"
  53. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_FLIPWINDINGORDER_PROCESS"
  54. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS"
  55. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OPTIMIZEANIMS_PROCESS"
  56. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS"
  57. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_GENENTITYMESHES_PROCESS"
  58. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_FIXTEXTUREPATHS_PROCESS"
  59. '
  60. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_DLL_EXPORT" ' build dll of library
  61. 'ModuleInfo "CC_OPTS: -DASSIMP_DLL" ' link library as dll
  62. 'ModuleInfo "CC_OPTS: -DASSIMP_DOXYGEN_BUILD" ' build Doxygen-friendly c-Struct typedefs
  63. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_BOOST_WORKAROUND" ' build without boost - no threads/not threadsafe
  64. ' CMakeLists.txt
  65. 'ModuleInfo "CC_OPTS: -DOPENDDLPARSER_BUILD" ' build OpenDDL parser - data description language
  66. 'ModuleInfo "CC_OPTS: -DOPENDDL_NO_USE_CPP11" ' Assimp is not using c++11-support
  67. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OWN_ZLIB" ' disable building internal zlib
  68. ' ImporterRegistry.cpp - disable specific file format loader
  69. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_X_IMPORTER" ' DirectX
  70. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_3DS_IMPORTER" ' 3ds Max
  71. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MD3_IMPORTER" ' Quake III Mesh
  72. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MDL_IMPORTER" ' 3D GameStudio Mesh
  73. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MD2_IMPORTER" ' Quake II
  74. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_PLY_IMPORTER" ' Stanford Polygon Library
  75. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_ASE_IMPORTER" ' 3ds Max
  76. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OBJ_IMPORTER" ' Wavefront
  77. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_HMP_IMPORTER" ' 3D GameStudio Terrain
  78. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_SMD_IMPORTER" ' Valve Model
  79. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MDC_IMPORTER" ' Return to Castle Wolfenstein
  80. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MD5_IMPORTER" ' Doom 3
  81. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_STL_IMPORTER" ' Stereolithography
  82. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_LWO_IMPORTER" ' LightWave
  83. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_DXF_IMPORTER" ' AutoCAD
  84. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_NFF_IMPORTER" ' Sense8/WorldToolKit Neutral File Format
  85. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_RAW_IMPORTER" ' PovRAY Raw
  86. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OFF_IMPORTER" ' Object File Format
  87. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_AC_IMPORTER" ' AC3D
  88. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_BVH_IMPORTER" ' Biovision (motion capture)
  89. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_IRRMESH_IMPORTER" ' Irrlicht Mesh
  90. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_IRR_IMPORTER" ' Irrlicht Scene
  91. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_Q3D_IMPORTER" ' Quick3D
  92. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_B3D_IMPORTER" ' BlitzBasic 3D
  93. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COLLADA_IMPORTER" ' DAE
  94. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_TERRAGEN_IMPORTER" ' Terragen Terrain
  95. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_CSM_IMPORTER" ' CharacterStudio (motion capture)
  96. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_3D_IMPORTER" ' Unreal
  97. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_LWS_IMPORTER" ' LightWave Scene
  98. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OGRE_IMPORTER" ' Ogre
  99. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OPENGEX_IMPORTER" ' Open Game Engine Exchange - uses OpenDDL
  100. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_MS3D_IMPORTER" ' Milkshape 3D
  101. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COB_IMPORTER" ' TrueSpace
  102. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_BLEND_IMPORTER" ' Blender 3D
  103. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_Q3BSP_IMPORTER" ' Quake III BSP
  104. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_NDO_IMPORTER" ' Izware Nendo
  105. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_IFC_IMPORTER" ' Industry Foundation Classes
  106. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_XGL_IMPORTER" ' .XGL (3d XML) .ZGL (compressed XML)
  107. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_FBX_IMPORTER" ' Autodesk
  108. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_ASSBIN_IMPORTER" ' Assimp Binary
  109. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_C4D_IMPORTER" ' Cinema 4D - only compatible with MSVS
  110. ' Exporter.cpp - disable specific file format exporter
  111. ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_EXPORT" ' disable all
  112. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_COLLADA_EXPORTER" ' .DAE
  113. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_X_EXPORTER" ' DirectX
  114. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_STEP_EXPORTER" ' Industry Foundation Classes
  115. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_OBJ_EXPORTER" ' Wavefront
  116. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_STL_EXPORTER" ' Stereolithography
  117. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_PLY_EXPORTER" ' Stanford Polygon Library
  118. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_3DS_EXPORTER" ' 3ds Max
  119. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_ASSBIN_EXPORTER" ' Assimp Binary
  120. 'ModuleInfo "CC_OPTS: -DASSIMP_BUILD_NO_ASSXML_EXPORTER" ' Assimp XML
  121. Import Brl.Math
  122. Import Brl.Retro
  123. Import Koriolis.Zipstream
  124. Import "source.bmx"
  125. Import "common.bmx"
  126. Include "types.bmx"
  127. Rem
  128. bbdoc: Returns the error text of the last failed import process.
  129. about: See <a href="http://assimp.sourceforge.net/lib_html/class_assimp_1_1_importer.html">Assimp.cpp</a>
  130. and <a href="http://assimp.sourceforge.net/lib_html/cimport_8h.html">cimport.h</a>.
  131. End Rem
  132. Function aiIsExtensionSupported:Int( pFile:String )
  133. Return aiIsExtensionSupported_( pFile )
  134. End Function
  135. Rem
  136. Memo:
  137. aiSetImportPropertyInteger caused crash, was missing p parameter
  138. changed aiGetMaterialTexture pMat:Int Ptr to :Byte Ptr
  139. changed aiImportFile:Int Ptr to :Byte Ptr
  140. added aiImportFileFromMemory
  141. unwrapped aiIsExtensionSupported caused "double free or corruption" error in ubuntu x64
  142. EndRem