assimp: Clean and document buildsystem, prepare for unbundling

- Improve the SCsub to allow unbundling and remove unnecessary code.
- Move files around to match upstream source.
- Re-sync with upstream commit 308db73d0b3c2d1870cd3e465eaa283692a4cf23
  to ensure we don't have local modifications.
- Doesn't actually build against current version 5.0.1 due to the lack
  of the new ArmaturePopulate API that Gordon authored. We'll have to
  wait for a public release with that API (5.1?) to enable unbundling.

(cherry picked from commit 9d8a9ea826)
This commit is contained in:
Rémi Verschelde 2020-03-06 13:31:52 +01:00
parent 5bbce634ad
commit 98d0bf7d7a
9 changed files with 256 additions and 2028 deletions

View file

@ -138,6 +138,7 @@ opts.Add(BoolVariable('no_editor_splash', "Don't use the custom splash screen fo
opts.Add('system_certs_path', "Use this path as SSL certificates default for editor (for package maintainers)", '') opts.Add('system_certs_path', "Use this path as SSL certificates default for editor (for package maintainers)", '')
# Thirdparty libraries # Thirdparty libraries
#opts.Add(BoolVariable('builtin_assimp', "Use the built-in Assimp library", True))
opts.Add(BoolVariable('builtin_bullet', "Use the built-in Bullet library", True)) opts.Add(BoolVariable('builtin_bullet', "Use the built-in Bullet library", True))
opts.Add(BoolVariable('builtin_certs', "Bundle default SSL certificates to be used if you don't specify an override in the project settings", True)) opts.Add(BoolVariable('builtin_certs', "Bundle default SSL certificates to be used if you don't specify an override in the project settings", True))
opts.Add(BoolVariable('builtin_enet', "Use the built-in ENet library", True)) opts.Add(BoolVariable('builtin_enet', "Use the built-in ENet library", True))

View file

@ -4,97 +4,91 @@ Import('env')
Import('env_modules') Import('env_modules')
env_assimp = env_modules.Clone() env_assimp = env_modules.Clone()
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/include'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/code/Importer/IFC'])
env_assimp.Prepend(CPPPATH=['#thirdparty/misc'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/code'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/common'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/contrib/irrXML/'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/contrib/unzip/'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/code/Importer/STEPParser'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/'])
env_assimp.Prepend(CPPPATH=['#thirdparty/zlib/'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/contrib/openddlparser/include'])
env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/contrib/rapidjson/include'])
env_assimp.Prepend(CPPPATH=['.'])
#env_assimp.Append(CPPDEFINES=['ASSIMP_DOUBLE_PRECISION']) # TODO default to what godot is compiled with for future double support
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_BOOST_WORKAROUND'])
env_assimp.Append(CPPDEFINES=['OPENDDLPARSER_BUILD'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OWN_ZLIB'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_EXPORT'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_X_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_AMF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_3DS_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD3_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD5_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MDL_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD2_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_PLY_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_ASE_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OBJ_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_HMP_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_SMD_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MDC_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD5_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_STL_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_LWO_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_DXF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_NFF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_RAW_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_SIB_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OFF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_AC_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_BVH_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_IRRMESH_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_IRR_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_Q3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_B3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_COLLADA_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_TERRAGEN_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_CSM_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_LWS_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OGRE_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OPENGEX_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MS3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_COB_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_BLEND_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_Q3BSP_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_NDO_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_STEP_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_IFC_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_XGL_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_ASSBIN_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_C4D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_3MF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_X3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_GLTF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_GLTF2_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_SINGLETHREADED'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_M3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MMD_IMPORTER'])
# Force bundled version for now, there's no released version of Assimp with
# support for ArmaturePopulate which we use from their master branch.
if True: # env['builtin_assimp']:
thirdparty_dir = "#thirdparty/assimp"
if(env['platform'] == 'windows'): env_assimp.Prepend(CPPPATH=['#thirdparty/assimp'])
env_assimp.Append(CPPDEFINES=['PLATFORM_WINDOWS']) env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/code'])
env_assimp.Append(CPPDEFINES=[('PLATFORM', 'WINDOWS')]) env_assimp.Prepend(CPPPATH=['#thirdparty/assimp/include'])
elif(env['platform'] == 'x11'):
env_assimp.Append(CPPDEFINES=['PLATFORM_LINUX']) #env_assimp.Append(CPPDEFINES=['ASSIMP_DOUBLE_PRECISION']) # TODO default to what godot is compiled with for future double support
env_assimp.Append(CPPDEFINES=[('PLATFORM', 'LINUX')]) env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_SINGLETHREADED'])
elif(env['platform'] == 'osx'): env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_BOOST_WORKAROUND'])
env_assimp.Append(CPPDEFINES=['PLATFORM_DARWIN']) env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OWN_ZLIB'])
env_assimp.Append(CPPDEFINES=[('PLATFORM', 'DARWIN')]) env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_EXPORT'])
# Importers we don't need
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_3DS_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_3MF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_AC_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_AMF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_ASE_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_ASSBIN_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_B3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_BLEND_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_BVH_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_C4D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_COB_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_COLLADA_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_CSM_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_DXF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_GLTF2_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_GLTF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_HMP_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_IFC_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_IRR_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_IRRMESH_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_LWO_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_LWS_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_M3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD2_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD3_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD5_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MD5_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MDC_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MDL_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MMD_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_MS3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_NDO_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_NFF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OBJ_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OFF_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OGRE_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_OPENGEX_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_PLY_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_Q3BSP_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_Q3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_RAW_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_SIB_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_SMD_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_STEP_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_STL_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_TERRAGEN_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_X3D_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_XGL_IMPORTER'])
env_assimp.Append(CPPDEFINES=['ASSIMP_BUILD_NO_X_IMPORTER'])
if(env['platform'] == 'windows'):
env_assimp.Append(CPPDEFINES=['PLATFORM_WINDOWS'])
env_assimp.Append(CPPDEFINES=[('PLATFORM', 'WINDOWS')])
elif(env['platform'] == 'x11'):
env_assimp.Append(CPPDEFINES=['PLATFORM_LINUX'])
env_assimp.Append(CPPDEFINES=[('PLATFORM', 'LINUX')])
elif(env['platform'] == 'osx'):
env_assimp.Append(CPPDEFINES=['PLATFORM_DARWIN'])
env_assimp.Append(CPPDEFINES=[('PLATFORM', 'DARWIN')])
env_thirdparty = env_assimp.Clone() env_thirdparty = env_assimp.Clone()
env_thirdparty.disable_warnings() env_thirdparty.disable_warnings()
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/Common/*.cpp')) env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/CApi/*.cpp'))
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/PostProcessing/*.cpp')) env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/Common/*.cpp'))
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/Material/*.cpp')) env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/PostProcessing/*.cpp'))
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/FBX/*.cpp')) env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/Material/*.cpp'))
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/MMD/*.cpp')) env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/FBX/*.cpp'))
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/glTF/*.cpp'))
env_thirdparty.add_source_files(env.modules_sources, Glob('#thirdparty/assimp/code/glTF2/*.cpp'))
# Godot's own source files # Godot's own source files
env_assimp.add_source_files(env.modules_sources, "*.cpp") env_assimp.add_source_files(env.modules_sources, "*.cpp")

View file

@ -159,6 +159,10 @@ def configure(env):
sys.exit(255) sys.exit(255)
env.ParseConfig('pkg-config bullet --cflags --libs') env.ParseConfig('pkg-config bullet --cflags --libs')
if False: # not env['builtin_assimp']:
# FIXME: Add min version check
env.ParseConfig('pkg-config assimp --cflags --libs')
if not env['builtin_enet']: if not env['builtin_enet']:
env.ParseConfig('pkg-config libenet --cflags --libs') env.ParseConfig('pkg-config libenet --cflags --libs')

View file

@ -228,6 +228,10 @@ def configure(env):
sys.exit(255) sys.exit(255)
env.ParseConfig('pkg-config bullet --cflags --libs') env.ParseConfig('pkg-config bullet --cflags --libs')
if False: # not env['builtin_assimp']:
# FIXME: Add min version check
env.ParseConfig('pkg-config assimp --cflags --libs')
if not env['builtin_enet']: if not env['builtin_enet']:
env.ParseConfig('pkg-config libenet --cflags --libs') env.ParseConfig('pkg-config libenet --cflags --libs')

13
thirdparty/README.md vendored
View file

@ -4,9 +4,20 @@
## assimp ## assimp
- Upstream: http://github.com/assimp/assimp - Upstream: http://github.com/assimp/assimp
- Version: git (308db73d0b3c2d1870cd3e465eaa283692a4cf23) - Version: git (308db73d0b3c2d1870cd3e465eaa283692a4cf23, 2019)
- License: BSD-3-Clause - License: BSD-3-Clause
Files extracted from upstream source:
- Run `cmake .` in root folder to generate files
- `code/{CApi,Common,FBX,Material,PostProcessing}/`
- `contrib/utf8cpp/source/`
- `include/`
- `revision.h`
- `CREDITS` and `LICENSE` files
- `rm -f code/Common/ZipArchiveIOSystem.cpp include/assimp/ZipArchiveIOSystem.h
include/assimp/irrXMLWrapper.h`
## bullet ## bullet

View file

@ -1,12 +0,0 @@
utf8 cpp library
Release 2.3.4
A minor bug fix release. Thanks to all who reported bugs.
Note: Version 2.3.3 contained a regression, and therefore was removed.
Changes from version 2.3.2
- Bug fix [39]: checked.h Line 273 and unchecked.h Line 182 have an extra ';'
- Bug fix [36]: replace_invalid() only works with back_inserter
Files included in the release: utf8.h, core.h, checked.h, unchecked.h, utf8cpp.html, ReleaseNotes

File diff suppressed because it is too large Load diff

View file

@ -60,6 +60,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef AI_CONFIG_H_INC #ifndef AI_CONFIG_H_INC
#define AI_CONFIG_H_INC #define AI_CONFIG_H_INC
// ########################################################################### // ###########################################################################
// LIBRARY SETTINGS // LIBRARY SETTINGS
// General, global settings // General, global settings
@ -75,8 +76,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* Property type: bool. Default value: false. * Property type: bool. Default value: false.
*/ */
#define AI_CONFIG_GLOB_MEASURE_TIME \ #define AI_CONFIG_GLOB_MEASURE_TIME \
"GLOB_MEASURE_TIME" "GLOB_MEASURE_TIME"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Global setting to disable generation of skeleton dummy meshes /** @brief Global setting to disable generation of skeleton dummy meshes
@ -87,9 +89,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
#define AI_CONFIG_IMPORT_NO_SKELETON_MESHES \ #define AI_CONFIG_IMPORT_NO_SKELETON_MESHES \
"IMPORT_NO_SKELETON_MESHES" "IMPORT_NO_SKELETON_MESHES"
#if 0 // not implemented yet
# if 0 // not implemented yet
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set Assimp's multithreading policy. /** @brief Set Assimp's multithreading policy.
* *
@ -105,8 +109,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* For more information, see the @link threading Threading page@endlink. * For more information, see the @link threading Threading page@endlink.
* Property type: int, default value: -1. * Property type: int, default value: -1.
*/ */
#define AI_CONFIG_GLOB_MULTITHREADING \ #define AI_CONFIG_GLOB_MULTITHREADING \
"GLOB_MULTITHREADING" "GLOB_MULTITHREADING"
#endif #endif
// ########################################################################### // ###########################################################################
@ -114,6 +118,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Various stuff to fine-tune the behavior of a specific post processing step. // Various stuff to fine-tune the behavior of a specific post processing step.
// ########################################################################### // ###########################################################################
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Maximum bone count per mesh for the SplitbyBoneCount step. /** @brief Maximum bone count per mesh for the SplitbyBoneCount step.
* *
@ -124,13 +129,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
#define AI_CONFIG_PP_SBBC_MAX_BONES \ #define AI_CONFIG_PP_SBBC_MAX_BONES \
"PP_SBBC_MAX_BONES" "PP_SBBC_MAX_BONES"
// default limit for bone count // default limit for bone count
#if (!defined AI_SBBC_DEFAULT_MAX_BONES) #if (!defined AI_SBBC_DEFAULT_MAX_BONES)
#define AI_SBBC_DEFAULT_MAX_BONES 60 # define AI_SBBC_DEFAULT_MAX_BONES 60
#endif #endif
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Specifies the maximum angle that may be between two vertex tangents /** @brief Specifies the maximum angle that may be between two vertex tangents
* that their tangents and bi-tangents are smoothed. * that their tangents and bi-tangents are smoothed.
@ -140,7 +147,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Property type: float. Default value: 45 degrees * Property type: float. Default value: 45 degrees
*/ */
#define AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE \ #define AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE \
"PP_CT_MAX_SMOOTHING_ANGLE" "PP_CT_MAX_SMOOTHING_ANGLE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Source UV channel for tangent space computation. /** @brief Source UV channel for tangent space computation.
@ -150,7 +157,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
#define AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX \ #define AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX \
"PP_CT_TEXTURE_CHANNEL_INDEX" "PP_CT_TEXTURE_CHANNEL_INDEX"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Specifies the maximum angle that may be between two face normals /** @brief Specifies the maximum angle that may be between two face normals
@ -165,7 +172,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* the output quality may be reduced. * the output quality may be reduced.
*/ */
#define AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE \ #define AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE \
"PP_GSN_MAX_SMOOTHING_ANGLE" "PP_GSN_MAX_SMOOTHING_ANGLE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Sets the colormap (= palette) to be used to decode embedded /** @brief Sets the colormap (= palette) to be used to decode embedded
@ -177,8 +185,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* a default palette (from Quake 1) is used. * a default palette (from Quake 1) is used.
* Property type: string. * Property type: string.
*/ */
#define AI_CONFIG_IMPORT_MDL_COLORMAP \ #define AI_CONFIG_IMPORT_MDL_COLORMAP \
"IMPORT_MDL_COLORMAP" "IMPORT_MDL_COLORMAP"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_RemoveRedundantMaterials step to /** @brief Configures the #aiProcess_RemoveRedundantMaterials step to
@ -199,8 +207,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @note Linefeeds, tabs or carriage returns are treated as whitespace. * @note Linefeeds, tabs or carriage returns are treated as whitespace.
* Material names are case sensitive. * Material names are case sensitive.
*/ */
#define AI_CONFIG_PP_RRM_EXCLUDE_LIST \ #define AI_CONFIG_PP_RRM_EXCLUDE_LIST \
"PP_RRM_EXCLUDE_LIST" "PP_RRM_EXCLUDE_LIST"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_PreTransformVertices step to /** @brief Configures the #aiProcess_PreTransformVertices step to
@ -214,8 +222,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* any transformations. * any transformations.
* Property type: bool. Default value: false. * Property type: bool. Default value: false.
*/ */
#define AI_CONFIG_PP_PTV_KEEP_HIERARCHY \ #define AI_CONFIG_PP_PTV_KEEP_HIERARCHY \
"PP_PTV_KEEP_HIERARCHY" "PP_PTV_KEEP_HIERARCHY"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_PreTransformVertices step to normalize /** @brief Configures the #aiProcess_PreTransformVertices step to normalize
@ -224,8 +232,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* meshes are scaled appropriately (uniformly of course!). * meshes are scaled appropriately (uniformly of course!).
* This might be useful if you don't know the spatial dimension of the input * This might be useful if you don't know the spatial dimension of the input
* data*/ * data*/
#define AI_CONFIG_PP_PTV_NORMALIZE \ #define AI_CONFIG_PP_PTV_NORMALIZE \
"PP_PTV_NORMALIZE" "PP_PTV_NORMALIZE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_PreTransformVertices step to use /** @brief Configures the #aiProcess_PreTransformVertices step to use
@ -233,8 +241,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* transforming vertices. * transforming vertices.
* Property type: bool. Default value: false. * Property type: bool. Default value: false.
*/ */
#define AI_CONFIG_PP_PTV_ADD_ROOT_TRANSFORMATION \ #define AI_CONFIG_PP_PTV_ADD_ROOT_TRANSFORMATION \
"PP_PTV_ADD_ROOT_TRANSFORMATION" "PP_PTV_ADD_ROOT_TRANSFORMATION"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_PreTransformVertices step to use /** @brief Configures the #aiProcess_PreTransformVertices step to use
@ -243,8 +251,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* of the transformation matrix. * of the transformation matrix.
* Property type: aiMatrix4x4. * Property type: aiMatrix4x4.
*/ */
#define AI_CONFIG_PP_PTV_ROOT_TRANSFORMATION \ #define AI_CONFIG_PP_PTV_ROOT_TRANSFORMATION \
"PP_PTV_ROOT_TRANSFORMATION" "PP_PTV_ROOT_TRANSFORMATION"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_FindDegenerates step to /** @brief Configures the #aiProcess_FindDegenerates step to
@ -257,7 +265,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Property type: bool. Default value: false. * Property type: bool. Default value: false.
*/ */
#define AI_CONFIG_PP_FD_REMOVE \ #define AI_CONFIG_PP_FD_REMOVE \
"PP_FD_REMOVE" "PP_FD_REMOVE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** /**
@ -266,7 +274,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* be removed if #AI_CONFIG_PP_FD_REMOVE is set to true. * be removed if #AI_CONFIG_PP_FD_REMOVE is set to true.
*/ */
#define AI_CONFIG_PP_FD_CHECKAREA \ #define AI_CONFIG_PP_FD_CHECKAREA \
"PP_FD_CHECKAREA" "PP_FD_CHECKAREA"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the #aiProcess_OptimizeGraph step to preserve nodes /** @brief Configures the #aiProcess_OptimizeGraph step to preserve nodes
@ -286,8 +294,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @note Linefeeds, tabs or carriage returns are treated as whitespace. * @note Linefeeds, tabs or carriage returns are treated as whitespace.
* Node names are case sensitive. * Node names are case sensitive.
*/ */
#define AI_CONFIG_PP_OG_EXCLUDE_LIST \ #define AI_CONFIG_PP_OG_EXCLUDE_LIST \
"PP_OG_EXCLUDE_LIST" "PP_OG_EXCLUDE_LIST"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set the maximum number of triangles in a mesh. /** @brief Set the maximum number of triangles in a mesh.
@ -298,11 +306,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Property type: integer. * Property type: integer.
*/ */
#define AI_CONFIG_PP_SLM_TRIANGLE_LIMIT \ #define AI_CONFIG_PP_SLM_TRIANGLE_LIMIT \
"PP_SLM_TRIANGLE_LIMIT" "PP_SLM_TRIANGLE_LIMIT"
// default value for AI_CONFIG_PP_SLM_TRIANGLE_LIMIT // default value for AI_CONFIG_PP_SLM_TRIANGLE_LIMIT
#if (!defined AI_SLM_DEFAULT_MAX_TRIANGLES) #if (!defined AI_SLM_DEFAULT_MAX_TRIANGLES)
#define AI_SLM_DEFAULT_MAX_TRIANGLES 1000000 # define AI_SLM_DEFAULT_MAX_TRIANGLES 1000000
#endif #endif
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -314,11 +322,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Property type: integer. * Property type: integer.
*/ */
#define AI_CONFIG_PP_SLM_VERTEX_LIMIT \ #define AI_CONFIG_PP_SLM_VERTEX_LIMIT \
"PP_SLM_VERTEX_LIMIT" "PP_SLM_VERTEX_LIMIT"
// default value for AI_CONFIG_PP_SLM_VERTEX_LIMIT // default value for AI_CONFIG_PP_SLM_VERTEX_LIMIT
#if (!defined AI_SLM_DEFAULT_MAX_VERTICES) #if (!defined AI_SLM_DEFAULT_MAX_VERTICES)
#define AI_SLM_DEFAULT_MAX_VERTICES 1000000 # define AI_SLM_DEFAULT_MAX_VERTICES 1000000
#endif #endif
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -327,12 +335,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* This is used by the #aiProcess_LimitBoneWeights PostProcess-Step. * This is used by the #aiProcess_LimitBoneWeights PostProcess-Step.
* @note The default value is AI_LMW_MAX_WEIGHTS * @note The default value is AI_LMW_MAX_WEIGHTS
* Property type: integer.*/ * Property type: integer.*/
#define AI_CONFIG_PP_LBW_MAX_WEIGHTS \ #define AI_CONFIG_PP_LBW_MAX_WEIGHTS \
"PP_LBW_MAX_WEIGHTS" "PP_LBW_MAX_WEIGHTS"
// default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS // default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS
#if (!defined AI_LMW_MAX_WEIGHTS) #if (!defined AI_LMW_MAX_WEIGHTS)
#define AI_LMW_MAX_WEIGHTS 0x4 # define AI_LMW_MAX_WEIGHTS 0x4
#endif // !! AI_LMW_MAX_WEIGHTS #endif // !! AI_LMW_MAX_WEIGHTS
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -342,11 +350,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @note The default value is AI_DEBONE_THRESHOLD * @note The default value is AI_DEBONE_THRESHOLD
* Property type: float.*/ * Property type: float.*/
#define AI_CONFIG_PP_DB_THRESHOLD \ #define AI_CONFIG_PP_DB_THRESHOLD \
"PP_DB_THRESHOLD" "PP_DB_THRESHOLD"
// default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS // default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS
#if (!defined AI_DEBONE_THRESHOLD) #if (!defined AI_DEBONE_THRESHOLD)
#define AI_DEBONE_THRESHOLD 1.0f # define AI_DEBONE_THRESHOLD 1.0f
#endif // !! AI_DEBONE_THRESHOLD #endif // !! AI_DEBONE_THRESHOLD
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -356,12 +364,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* @note The default value is 0 * @note The default value is 0
* Property type: bool.*/ * Property type: bool.*/
#define AI_CONFIG_PP_DB_ALL_OR_NONE \ #define AI_CONFIG_PP_DB_ALL_OR_NONE \
"PP_DB_ALL_OR_NONE" "PP_DB_ALL_OR_NONE"
/** @brief Default value for the #AI_CONFIG_PP_ICL_PTCACHE_SIZE property /** @brief Default value for the #AI_CONFIG_PP_ICL_PTCACHE_SIZE property
*/ */
#ifndef PP_ICL_PTCACHE_SIZE #ifndef PP_ICL_PTCACHE_SIZE
#define PP_ICL_PTCACHE_SIZE 12 # define PP_ICL_PTCACHE_SIZE 12
#endif #endif
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -375,7 +383,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* performance improvements for most nVidia/AMD cards since 2002. * performance improvements for most nVidia/AMD cards since 2002.
* Property type: integer. * Property type: integer.
*/ */
#define AI_CONFIG_PP_ICL_PTCACHE_SIZE "PP_ICL_PTCACHE_SIZE" #define AI_CONFIG_PP_ICL_PTCACHE_SIZE "PP_ICL_PTCACHE_SIZE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Enumerates components of the aiScene and aiMesh data structures /** @brief Enumerates components of the aiScene and aiMesh data structures
@ -383,71 +391,73 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* See the documentation to #aiProcess_RemoveComponent for more details. * See the documentation to #aiProcess_RemoveComponent for more details.
*/ */
enum aiComponent { enum aiComponent
/** Normal vectors */ {
/** Normal vectors */
#ifdef SWIG #ifdef SWIG
aiComponent_NORMALS = 0x2, aiComponent_NORMALS = 0x2,
#else #else
aiComponent_NORMALS = 0x2u, aiComponent_NORMALS = 0x2u,
#endif #endif
/** Tangents and bitangents go always together ... */ /** Tangents and bitangents go always together ... */
#ifdef SWIG #ifdef SWIG
aiComponent_TANGENTS_AND_BITANGENTS = 0x4, aiComponent_TANGENTS_AND_BITANGENTS = 0x4,
#else #else
aiComponent_TANGENTS_AND_BITANGENTS = 0x4u, aiComponent_TANGENTS_AND_BITANGENTS = 0x4u,
#endif #endif
/** ALL color sets /** ALL color sets
* Use aiComponent_COLORn(N) to specify the N'th set */ * Use aiComponent_COLORn(N) to specify the N'th set */
aiComponent_COLORS = 0x8, aiComponent_COLORS = 0x8,
/** ALL texture UV sets /** ALL texture UV sets
* aiComponent_TEXCOORDn(N) to specify the N'th set */ * aiComponent_TEXCOORDn(N) to specify the N'th set */
aiComponent_TEXCOORDS = 0x10, aiComponent_TEXCOORDS = 0x10,
/** Removes all bone weights from all meshes. /** Removes all bone weights from all meshes.
* The scenegraph nodes corresponding to the bones are NOT removed. * The scenegraph nodes corresponding to the bones are NOT removed.
* use the #aiProcess_OptimizeGraph step to do this */ * use the #aiProcess_OptimizeGraph step to do this */
aiComponent_BONEWEIGHTS = 0x20, aiComponent_BONEWEIGHTS = 0x20,
/** Removes all node animations (aiScene::mAnimations). /** Removes all node animations (aiScene::mAnimations).
* The corresponding scenegraph nodes are NOT removed. * The corresponding scenegraph nodes are NOT removed.
* use the #aiProcess_OptimizeGraph step to do this */ * use the #aiProcess_OptimizeGraph step to do this */
aiComponent_ANIMATIONS = 0x40, aiComponent_ANIMATIONS = 0x40,
/** Removes all embedded textures (aiScene::mTextures) */ /** Removes all embedded textures (aiScene::mTextures) */
aiComponent_TEXTURES = 0x80, aiComponent_TEXTURES = 0x80,
/** Removes all light sources (aiScene::mLights). /** Removes all light sources (aiScene::mLights).
* The corresponding scenegraph nodes are NOT removed. * The corresponding scenegraph nodes are NOT removed.
* use the #aiProcess_OptimizeGraph step to do this */ * use the #aiProcess_OptimizeGraph step to do this */
aiComponent_LIGHTS = 0x100, aiComponent_LIGHTS = 0x100,
/** Removes all cameras (aiScene::mCameras). /** Removes all cameras (aiScene::mCameras).
* The corresponding scenegraph nodes are NOT removed. * The corresponding scenegraph nodes are NOT removed.
* use the #aiProcess_OptimizeGraph step to do this */ * use the #aiProcess_OptimizeGraph step to do this */
aiComponent_CAMERAS = 0x200, aiComponent_CAMERAS = 0x200,
/** Removes all meshes (aiScene::mMeshes). */ /** Removes all meshes (aiScene::mMeshes). */
aiComponent_MESHES = 0x400, aiComponent_MESHES = 0x400,
/** Removes all materials. One default material will /** Removes all materials. One default material will
* be generated, so aiScene::mNumMaterials will be 1. */ * be generated, so aiScene::mNumMaterials will be 1. */
aiComponent_MATERIALS = 0x800, aiComponent_MATERIALS = 0x800,
/** This value is not used. It is just there to force the
/** This value is not used. It is just there to force the
* compiler to map this enum to a 32 Bit integer. */ * compiler to map this enum to a 32 Bit integer. */
#ifndef SWIG #ifndef SWIG
_aiComponent_Force32Bit = 0x9fffffff _aiComponent_Force32Bit = 0x9fffffff
#endif #endif
}; };
// Remove a specific color channel 'n' // Remove a specific color channel 'n'
#define aiComponent_COLORSn(n) (1u << (n + 20u)) #define aiComponent_COLORSn(n) (1u << (n+20u))
// Remove a specific UV channel 'n' // Remove a specific UV channel 'n'
#define aiComponent_TEXCOORDSn(n) (1u << (n + 25u)) #define aiComponent_TEXCOORDSn(n) (1u << (n+25u))
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Input parameter to the #aiProcess_RemoveComponent step: /** @brief Input parameter to the #aiProcess_RemoveComponent step:
@ -461,8 +471,8 @@ enum aiComponent {
* of the flags defined above) the import FAILS. Mainly because there is * of the flags defined above) the import FAILS. Mainly because there is
* no data to work on anymore ... * no data to work on anymore ...
*/ */
#define AI_CONFIG_PP_RVC_FLAGS \ #define AI_CONFIG_PP_RVC_FLAGS \
"PP_RVC_FLAGS" "PP_RVC_FLAGS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Input parameter to the #aiProcess_SortByPType step: /** @brief Input parameter to the #aiProcess_SortByPType step:
@ -473,8 +483,8 @@ enum aiComponent {
* be to exclude all line and point meshes from the import. This * be to exclude all line and point meshes from the import. This
* is an integer property, its default value is 0. * is an integer property, its default value is 0.
*/ */
#define AI_CONFIG_PP_SBP_REMOVE \ #define AI_CONFIG_PP_SBP_REMOVE \
"PP_SBP_REMOVE" "PP_SBP_REMOVE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Input parameter to the #aiProcess_FindInvalidData step: /** @brief Input parameter to the #aiProcess_FindInvalidData step:
@ -485,8 +495,16 @@ enum aiComponent {
* abs(n0-n1)>epsilon holds true for all vector respectively quaternion * abs(n0-n1)>epsilon holds true for all vector respectively quaternion
* components. The default value is 0.f - comparisons are exact then. * components. The default value is 0.f - comparisons are exact then.
*/ */
#define AI_CONFIG_PP_FID_ANIM_ACCURACY \ #define AI_CONFIG_PP_FID_ANIM_ACCURACY \
"PP_FID_ANIM_ACCURACY" "PP_FID_ANIM_ACCURACY"
// ---------------------------------------------------------------------------
/** @brief Input parameter to the #aiProcess_FindInvalidData step:
* Set to true to ignore texture coordinates. This may be useful if you have
* to assign different kind of textures like one for the summer or one for the winter.
*/
#define AI_CONFIG_PP_FID_IGNORE_TEXTURECOORDS \
"PP_FID_IGNORE_TEXTURECOORDS"
// TransformUVCoords evaluates UV scalings // TransformUVCoords evaluates UV scalings
#define AI_UVTRAFO_SCALING 0x1 #define AI_UVTRAFO_SCALING 0x1
@ -500,14 +518,6 @@ enum aiComponent {
// Everything baked together -> default value // Everything baked together -> default value
#define AI_UVTRAFO_ALL (AI_UVTRAFO_SCALING | AI_UVTRAFO_ROTATION | AI_UVTRAFO_TRANSLATION) #define AI_UVTRAFO_ALL (AI_UVTRAFO_SCALING | AI_UVTRAFO_ROTATION | AI_UVTRAFO_TRANSLATION)
// ---------------------------------------------------------------------------
/** @brief Input parameter to the #aiProcess_FindInvalidData step:
* Set to true to ignore texture coordinates. This may be useful if you have
* to assign different kind of textures like one for the summer or one for the winter.
*/
#define AI_CONFIG_PP_FID_IGNORE_TEXTURECOORDS \
"PP_FID_IGNORE_TEXTURECOORDS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Input parameter to the #aiProcess_TransformUVCoords step: /** @brief Input parameter to the #aiProcess_TransformUVCoords step:
* Specifies which UV transformations are evaluated. * Specifies which UV transformations are evaluated.
@ -516,8 +526,8 @@ enum aiComponent {
* property, of course). By default all transformations are enabled * property, of course). By default all transformations are enabled
* (AI_UVTRAFO_ALL). * (AI_UVTRAFO_ALL).
*/ */
#define AI_CONFIG_PP_TUV_EVALUATE \ #define AI_CONFIG_PP_TUV_EVALUATE \
"PP_TUV_EVALUATE" "PP_TUV_EVALUATE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief A hint to assimp to favour speed against import quality. /** @brief A hint to assimp to favour speed against import quality.
@ -528,14 +538,16 @@ enum aiComponent {
* This property is expected to be an integer, != 0 stands for true. * This property is expected to be an integer, != 0 stands for true.
* The default value is 0. * The default value is 0.
*/ */
#define AI_CONFIG_FAVOUR_SPEED \ #define AI_CONFIG_FAVOUR_SPEED \
"FAVOUR_SPEED" "FAVOUR_SPEED"
// ########################################################################### // ###########################################################################
// IMPORTER SETTINGS // IMPORTER SETTINGS
// Various stuff to fine-tune the behaviour of specific importer plugins. // Various stuff to fine-tune the behaviour of specific importer plugins.
// ########################################################################### // ###########################################################################
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will merge all geometry layers present /** @brief Set whether the fbx importer will merge all geometry layers present
* in the source file or take only the first. * in the source file or take only the first.
@ -544,7 +556,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS \ #define AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS \
"IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS" "IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will read all materials present in the /** @brief Set whether the fbx importer will read all materials present in the
@ -556,7 +568,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS \ #define AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS \
"IMPORT_FBX_READ_ALL_MATERIALS" "IMPORT_FBX_READ_ALL_MATERIALS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will read materials. /** @brief Set whether the fbx importer will read materials.
@ -565,7 +577,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_MATERIALS \ #define AI_CONFIG_IMPORT_FBX_READ_MATERIALS \
"IMPORT_FBX_READ_MATERIALS" "IMPORT_FBX_READ_MATERIALS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will read embedded textures. /** @brief Set whether the fbx importer will read embedded textures.
@ -574,7 +586,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_TEXTURES \ #define AI_CONFIG_IMPORT_FBX_READ_TEXTURES \
"IMPORT_FBX_READ_TEXTURES" "IMPORT_FBX_READ_TEXTURES"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will read cameras. /** @brief Set whether the fbx importer will read cameras.
@ -583,7 +595,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_CAMERAS \ #define AI_CONFIG_IMPORT_FBX_READ_CAMERAS \
"IMPORT_FBX_READ_CAMERAS" "IMPORT_FBX_READ_CAMERAS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will read light sources. /** @brief Set whether the fbx importer will read light sources.
@ -592,7 +604,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_LIGHTS \ #define AI_CONFIG_IMPORT_FBX_READ_LIGHTS \
"IMPORT_FBX_READ_LIGHTS" "IMPORT_FBX_READ_LIGHTS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will read animations. /** @brief Set whether the fbx importer will read animations.
@ -601,7 +613,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS \ #define AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS \
"IMPORT_FBX_READ_ANIMATIONS" "IMPORT_FBX_READ_ANIMATIONS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will act in strict mode in which only /** @brief Set whether the fbx importer will act in strict mode in which only
@ -613,7 +625,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_STRICT_MODE \ #define AI_CONFIG_IMPORT_FBX_STRICT_MODE \
"IMPORT_FBX_STRICT_MODE" "IMPORT_FBX_STRICT_MODE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will preserve pivot points for /** @brief Set whether the fbx importer will preserve pivot points for
@ -624,7 +636,7 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS \ #define AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS \
"IMPORT_FBX_PRESERVE_PIVOTS" "IMPORT_FBX_PRESERVE_PIVOTS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Specifies whether the importer will drop empty animation curves or /** @brief Specifies whether the importer will drop empty animation curves or
@ -635,26 +647,26 @@ enum aiComponent {
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES \ #define AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES \
"IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES" "IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set whether the fbx importer will use the legacy embedded texture naming. /** @brief Set whether the fbx importer will use the legacy embedded texture naming.
* *
* The default value is false (0) * The default value is false (0)
* Property type: bool * Property type: bool
*/ */
#define AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING \ #define AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING \
"AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING" "AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set wether the FBX importer shall not remove empty bones. /** @brief Set wether the importer shall not remove empty bones.
*
* *
* Empty bone are often used to define connections for other models. * Empty bone are often used to define connections for other models.
*/ */
#define AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES \ #define AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES \
"AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES" "AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Set wether the FBX importer shall convert the unit from cm to m. /** @brief Set wether the FBX importer shall convert the unit from cm to m.
*/ */
@ -674,14 +686,14 @@ enum aiComponent {
* want to override the global setting). * want to override the global setting).
* Property type: integer. * Property type: integer.
*/ */
#define AI_CONFIG_IMPORT_GLOBAL_KEYFRAME "IMPORT_GLOBAL_KEYFRAME" #define AI_CONFIG_IMPORT_GLOBAL_KEYFRAME "IMPORT_GLOBAL_KEYFRAME"
#define AI_CONFIG_IMPORT_MD3_KEYFRAME "IMPORT_MD3_KEYFRAME" #define AI_CONFIG_IMPORT_MD3_KEYFRAME "IMPORT_MD3_KEYFRAME"
#define AI_CONFIG_IMPORT_MD2_KEYFRAME "IMPORT_MD2_KEYFRAME" #define AI_CONFIG_IMPORT_MD2_KEYFRAME "IMPORT_MD2_KEYFRAME"
#define AI_CONFIG_IMPORT_MDL_KEYFRAME "IMPORT_MDL_KEYFRAME" #define AI_CONFIG_IMPORT_MDL_KEYFRAME "IMPORT_MDL_KEYFRAME"
#define AI_CONFIG_IMPORT_MDC_KEYFRAME "IMPORT_MDC_KEYFRAME" #define AI_CONFIG_IMPORT_MDC_KEYFRAME "IMPORT_MDC_KEYFRAME"
#define AI_CONFIG_IMPORT_SMD_KEYFRAME "IMPORT_SMD_KEYFRAME" #define AI_CONFIG_IMPORT_SMD_KEYFRAME "IMPORT_SMD_KEYFRAME"
#define AI_CONFIG_IMPORT_UNREAL_KEYFRAME "IMPORT_UNREAL_KEYFRAME" #define AI_CONFIG_IMPORT_UNREAL_KEYFRAME "IMPORT_UNREAL_KEYFRAME"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** Smd load multiple animations /** Smd load multiple animations
@ -697,7 +709,7 @@ enum aiComponent {
* Property type: bool. Default value: true. * Property type: bool. Default value: true.
*/ */
#define AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL \ #define AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL \
"IMPORT_AC_SEPARATE_BFCULL" "IMPORT_AC_SEPARATE_BFCULL"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures whether the AC loader evaluates subdivision surfaces ( /** @brief Configures whether the AC loader evaluates subdivision surfaces (
@ -707,8 +719,8 @@ enum aiComponent {
* *
* * Property type: bool. Default value: true. * * Property type: bool. Default value: true.
*/ */
#define AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION \ #define AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION \
"IMPORT_AC_EVAL_SUBDIVISION" "IMPORT_AC_EVAL_SUBDIVISION"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the UNREAL 3D loader to separate faces with different /** @brief Configures the UNREAL 3D loader to separate faces with different
@ -717,7 +729,7 @@ enum aiComponent {
* * Property type: bool. Default value: true. * * Property type: bool. Default value: true.
*/ */
#define AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS \ #define AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS \
"UNREAL_HANDLE_FLAGS" "UNREAL_HANDLE_FLAGS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the terragen import plugin to compute uv's for /** @brief Configures the terragen import plugin to compute uv's for
@ -730,7 +742,7 @@ enum aiComponent {
* * Property type: bool. Default value: false. * * Property type: bool. Default value: false.
*/ */
#define AI_CONFIG_IMPORT_TER_MAKE_UVS \ #define AI_CONFIG_IMPORT_TER_MAKE_UVS \
"IMPORT_TER_MAKE_UVS" "IMPORT_TER_MAKE_UVS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the ASE loader to always reconstruct normal vectors /** @brief Configures the ASE loader to always reconstruct normal vectors
@ -739,8 +751,8 @@ enum aiComponent {
* Some ASE files have carry invalid normals, other don't. * Some ASE files have carry invalid normals, other don't.
* * Property type: bool. Default value: true. * * Property type: bool. Default value: true.
*/ */
#define AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS \ #define AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS \
"IMPORT_ASE_RECONSTRUCT_NORMALS" "IMPORT_ASE_RECONSTRUCT_NORMALS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the M3D loader to detect and process multi-part /** @brief Configures the M3D loader to detect and process multi-part
@ -752,7 +764,7 @@ enum aiComponent {
* Property type: bool. Default value: true. * Property type: bool. Default value: true.
*/ */
#define AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART \ #define AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART \
"IMPORT_MD3_HANDLE_MULTIPART" "IMPORT_MD3_HANDLE_MULTIPART"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Tells the MD3 loader which skin files to load. /** @brief Tells the MD3 loader which skin files to load.
@ -764,7 +776,7 @@ enum aiComponent {
* Property type: String. Default value: "default". * Property type: String. Default value: "default".
*/ */
#define AI_CONFIG_IMPORT_MD3_SKIN_NAME \ #define AI_CONFIG_IMPORT_MD3_SKIN_NAME \
"IMPORT_MD3_SKIN_NAME" "IMPORT_MD3_SKIN_NAME"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Specify the Quake 3 shader file to be used for a particular /** @brief Specify the Quake 3 shader file to be used for a particular
@ -782,7 +794,7 @@ enum aiComponent {
* Property type: String. Default value: n/a. * Property type: String. Default value: n/a.
*/ */
#define AI_CONFIG_IMPORT_MD3_SHADER_SRC \ #define AI_CONFIG_IMPORT_MD3_SHADER_SRC \
"IMPORT_MD3_SHADER_SRC" "IMPORT_MD3_SHADER_SRC"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the LWO loader to load just one layer from the model. /** @brief Configures the LWO loader to load just one layer from the model.
@ -795,8 +807,8 @@ enum aiComponent {
* layer name may not be empty.<br> * layer name may not be empty.<br>
* Property type: Integer. Default value: all layers are loaded. * Property type: Integer. Default value: all layers are loaded.
*/ */
#define AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY \ #define AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY \
"IMPORT_LWO_ONE_LAYER_ONLY" "IMPORT_LWO_ONE_LAYER_ONLY"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Configures the MD5 loader to not load the MD5ANIM file for /** @brief Configures the MD5 loader to not load the MD5ANIM file for
@ -809,8 +821,8 @@ enum aiComponent {
* *
* * Property type: bool. Default value: false. * * Property type: bool. Default value: false.
*/ */
#define AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD \ #define AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD \
"IMPORT_MD5_NO_ANIM_AUTOLOAD" "IMPORT_MD5_NO_ANIM_AUTOLOAD"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Defines the begin of the time range for which the LWS loader /** @brief Defines the begin of the time range for which the LWS loader
@ -828,10 +840,10 @@ enum aiComponent {
* *
* @see AI_CONFIG_IMPORT_LWS_ANIM_END - end of the imported time range * @see AI_CONFIG_IMPORT_LWS_ANIM_END - end of the imported time range
*/ */
#define AI_CONFIG_IMPORT_LWS_ANIM_START \ #define AI_CONFIG_IMPORT_LWS_ANIM_START \
"IMPORT_LWS_ANIM_START" "IMPORT_LWS_ANIM_START"
#define AI_CONFIG_IMPORT_LWS_ANIM_END \ #define AI_CONFIG_IMPORT_LWS_ANIM_END \
"IMPORT_LWS_ANIM_END" "IMPORT_LWS_ANIM_END"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Defines the output frame rate of the IRR loader. /** @brief Defines the output frame rate of the IRR loader.
@ -841,8 +853,8 @@ enum aiComponent {
* are returned by the converter.<br> * are returned by the converter.<br>
* Property type: integer. Default value: 100 * Property type: integer. Default value: 100
*/ */
#define AI_CONFIG_IMPORT_IRR_ANIM_FPS \ #define AI_CONFIG_IMPORT_IRR_ANIM_FPS \
"IMPORT_IRR_ANIM_FPS" "IMPORT_IRR_ANIM_FPS"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Ogre Importer will try to find referenced materials from this file. /** @brief Ogre Importer will try to find referenced materials from this file.
@ -855,7 +867,7 @@ enum aiComponent {
* Property type: String. Default value: Scene.material. * Property type: String. Default value: Scene.material.
*/ */
#define AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE \ #define AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE \
"IMPORT_OGRE_MATERIAL_FILE" "IMPORT_OGRE_MATERIAL_FILE"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Ogre Importer detect the texture usage from its filename. /** @brief Ogre Importer detect the texture usage from its filename.
@ -875,15 +887,15 @@ enum aiComponent {
* Property type: Bool. Default value: false. * Property type: Bool. Default value: false.
*/ */
#define AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME \ #define AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME \
"IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME" "IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME"
/** @brief Specifies whether the Android JNI asset extraction is supported. /** @brief Specifies whether the Android JNI asset extraction is supported.
* *
* Turn on this option if you want to manage assets in native * Turn on this option if you want to manage assets in native
* Android application without having to keep the internal directory and asset * Android application without having to keep the internal directory and asset
* manager pointer. * manager pointer.
*/ */
#define AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT" #define AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT"
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
/** @brief Specifies whether the IFC loader skips over IfcSpace elements. /** @brief Specifies whether the IFC loader skips over IfcSpace elements.
@ -922,7 +934,7 @@ enum aiComponent {
// default value for AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE // default value for AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE
#if (!defined AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE) #if (!defined AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE)
#define AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE 10.0f # define AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE 10.0f
#endif #endif
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -938,7 +950,7 @@ enum aiComponent {
// default value for AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION // default value for AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION
#if (!defined AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION) #if (!defined AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION)
#define AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION 32 # define AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION 32
#endif #endif
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@ -969,8 +981,12 @@ enum aiComponent {
#define AI_CONFIG_EXPORT_XFILE_64BIT "EXPORT_XFILE_64BIT" #define AI_CONFIG_EXPORT_XFILE_64BIT "EXPORT_XFILE_64BIT"
/** /** @brief Specifies whether the assimp export shall be able to export point clouds
* *
* When this flag is not defined the render data has to contain valid faces.
* Point clouds are only a collection of vertices which have nor spatial organization
* by a face and the validation process will remove them. Enabling this feature will
* switch off the flag and enable the functionality to export pure point clouds.
*/ */
#define AI_CONFIG_EXPORT_POINT_CLOUDS "EXPORT_POINT_CLOUDS" #define AI_CONFIG_EXPORT_POINT_CLOUDS "EXPORT_POINT_CLOUDS"
@ -980,7 +996,7 @@ enum aiComponent {
#define AI_CONFIG_GLOBAL_SCALE_FACTOR_KEY "GLOBAL_SCALE_FACTOR" #define AI_CONFIG_GLOBAL_SCALE_FACTOR_KEY "GLOBAL_SCALE_FACTOR"
#if (!defined AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT) #if (!defined AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT)
#define AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT 1.0f # define AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT 1.0f
#endif // !! AI_DEBONE_THRESHOLD #endif // !! AI_DEBONE_THRESHOLD
#define AI_CONFIG_APP_SCALE_KEY "APP_SCALE_FACTOR" #define AI_CONFIG_APP_SCALE_KEY "APP_SCALE_FACTOR"
@ -997,7 +1013,6 @@ enum aiComponent {
* Property type: Bool. Default value: undefined. * Property type: Bool. Default value: undefined.
*/ */
/* #cmakedefine ASSIMP_DOUBLE_PRECISION 1 */ /* #undef ASSIMP_DOUBLE_PRECISION */
#endif // !! AI_CONFIG_H_INC #endif // !! AI_CONFIG_H_INC