miniassimp
diff include/miniassimp/config.h @ 0:879c81d94345
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 28 Jan 2019 18:19:26 +0200 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/include/miniassimp/config.h Mon Jan 28 18:19:26 2019 +0200 1.3 @@ -0,0 +1,992 @@ 1.4 +/* 1.5 +--------------------------------------------------------------------------- 1.6 +Open Asset Import Library (assimp) 1.7 +--------------------------------------------------------------------------- 1.8 + 1.9 +Copyright (c) 2006-2018, assimp team 1.10 + 1.11 + 1.12 +All rights reserved. 1.13 + 1.14 +Redistribution and use of this software in source and binary forms, 1.15 +with or without modification, are permitted provided that the following 1.16 +conditions are met: 1.17 + 1.18 +* Redistributions of source code must retain the above 1.19 + copyright notice, this list of conditions and the 1.20 + following disclaimer. 1.21 + 1.22 +* Redistributions in binary form must reproduce the above 1.23 + copyright notice, this list of conditions and the 1.24 + following disclaimer in the documentation and/or other 1.25 + materials provided with the distribution. 1.26 + 1.27 +* Neither the name of the assimp team, nor the names of its 1.28 + contributors may be used to endorse or promote products 1.29 + derived from this software without specific prior 1.30 + written permission of the assimp team. 1.31 + 1.32 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1.33 +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1.34 +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1.35 +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1.36 +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.37 +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.38 +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1.39 +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1.40 +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.41 +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.42 +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.43 +--------------------------------------------------------------------------- 1.44 +*/ 1.45 + 1.46 +/** @file config.h 1.47 + * @brief Defines constants for configurable properties for the library 1.48 + * 1.49 + * Typically these properties are set via 1.50 + * #Assimp::Importer::SetPropertyFloat, 1.51 + * #Assimp::Importer::SetPropertyInteger or 1.52 + * #Assimp::Importer::SetPropertyString, 1.53 + * depending on the data type of a property. All properties have a 1.54 + * default value. See the doc for the mentioned methods for more details. 1.55 + * 1.56 + * <br><br> 1.57 + * The corresponding functions for use with the plain-c API are: 1.58 + * #aiSetImportPropertyInteger, 1.59 + * #aiSetImportPropertyFloat, 1.60 + * #aiSetImportPropertyString 1.61 + */ 1.62 +#pragma once 1.63 +#ifndef AI_CONFIG_H_INC 1.64 +#define AI_CONFIG_H_INC 1.65 + 1.66 + 1.67 +// ########################################################################### 1.68 +// LIBRARY SETTINGS 1.69 +// General, global settings 1.70 +// ########################################################################### 1.71 + 1.72 +// --------------------------------------------------------------------------- 1.73 +/** @brief Enables time measurements. 1.74 + * 1.75 + * If enabled, measures the time needed for each part of the loading 1.76 + * process (i.e. IO time, importing, postprocessing, ..) and dumps 1.77 + * these timings to the DefaultLogger. See the @link perf Performance 1.78 + * Page@endlink for more information on this topic. 1.79 + * 1.80 + * Property type: bool. Default value: false. 1.81 + */ 1.82 +#define AI_CONFIG_GLOB_MEASURE_TIME \ 1.83 + "GLOB_MEASURE_TIME" 1.84 + 1.85 + 1.86 +// --------------------------------------------------------------------------- 1.87 +/** @brief Global setting to disable generation of skeleton dummy meshes 1.88 + * 1.89 + * Skeleton dummy meshes are generated as a visualization aid in cases which 1.90 + * the input data contains no geometry, but only animation data. 1.91 + * Property data type: bool. Default value: false 1.92 + */ 1.93 +// --------------------------------------------------------------------------- 1.94 +#define AI_CONFIG_IMPORT_NO_SKELETON_MESHES \ 1.95 + "IMPORT_NO_SKELETON_MESHES" 1.96 + 1.97 + 1.98 + 1.99 +# if 0 // not implemented yet 1.100 +// --------------------------------------------------------------------------- 1.101 +/** @brief Set Assimp's multithreading policy. 1.102 + * 1.103 + * This setting is ignored if Assimp was built without boost.thread 1.104 + * support (ASSIMP_BUILD_NO_THREADING, which is implied by ASSIMP_BUILD_BOOST_WORKAROUND). 1.105 + * Possible values are: -1 to let Assimp decide what to do, 0 to disable 1.106 + * multithreading entirely and any number larger than 0 to force a specific 1.107 + * number of threads. Assimp is always free to ignore this settings, which is 1.108 + * merely a hint. Usually, the default value (-1) will be fine. However, if 1.109 + * Assimp is used concurrently from multiple user threads, it might be useful 1.110 + * to limit each Importer instance to a specific number of cores. 1.111 + * 1.112 + * For more information, see the @link threading Threading page@endlink. 1.113 + * Property type: int, default value: -1. 1.114 + */ 1.115 +#define AI_CONFIG_GLOB_MULTITHREADING \ 1.116 + "GLOB_MULTITHREADING" 1.117 +#endif 1.118 + 1.119 +// ########################################################################### 1.120 +// POST PROCESSING SETTINGS 1.121 +// Various stuff to fine-tune the behavior of a specific post processing step. 1.122 +// ########################################################################### 1.123 + 1.124 + 1.125 +// --------------------------------------------------------------------------- 1.126 +/** @brief Maximum bone count per mesh for the SplitbyBoneCount step. 1.127 + * 1.128 + * Meshes are split until the maximum number of bones is reached. The default 1.129 + * value is AI_SBBC_DEFAULT_MAX_BONES, which may be altered at 1.130 + * compile-time. 1.131 + * Property data type: integer. 1.132 + */ 1.133 +// --------------------------------------------------------------------------- 1.134 +#define AI_CONFIG_PP_SBBC_MAX_BONES \ 1.135 + "PP_SBBC_MAX_BONES" 1.136 + 1.137 + 1.138 +// default limit for bone count 1.139 +#if (!defined AI_SBBC_DEFAULT_MAX_BONES) 1.140 +# define AI_SBBC_DEFAULT_MAX_BONES 60 1.141 +#endif 1.142 + 1.143 + 1.144 +// --------------------------------------------------------------------------- 1.145 +/** @brief Specifies the maximum angle that may be between two vertex tangents 1.146 + * that their tangents and bi-tangents are smoothed. 1.147 + * 1.148 + * This applies to the CalcTangentSpace-Step. The angle is specified 1.149 + * in degrees. The maximum value is 175. 1.150 + * Property type: float. Default value: 45 degrees 1.151 + */ 1.152 +#define AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE \ 1.153 + "PP_CT_MAX_SMOOTHING_ANGLE" 1.154 + 1.155 +// --------------------------------------------------------------------------- 1.156 +/** @brief Source UV channel for tangent space computation. 1.157 + * 1.158 + * The specified channel must exist or an error will be raised. 1.159 + * Property type: integer. Default value: 0 1.160 + */ 1.161 +// --------------------------------------------------------------------------- 1.162 +#define AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX \ 1.163 + "PP_CT_TEXTURE_CHANNEL_INDEX" 1.164 + 1.165 +// --------------------------------------------------------------------------- 1.166 +/** @brief Specifies the maximum angle that may be between two face normals 1.167 + * at the same vertex position that their are smoothed together. 1.168 + * 1.169 + * Sometimes referred to as 'crease angle'. 1.170 + * This applies to the GenSmoothNormals-Step. The angle is specified 1.171 + * in degrees, so 180 is PI. The default value is 175 degrees (all vertex 1.172 + * normals are smoothed). The maximum value is 175, too. Property type: float. 1.173 + * Warning: setting this option may cause a severe loss of performance. The 1.174 + * performance is unaffected if the #AI_CONFIG_FAVOUR_SPEED flag is set but 1.175 + * the output quality may be reduced. 1.176 + */ 1.177 +#define AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE \ 1.178 + "PP_GSN_MAX_SMOOTHING_ANGLE" 1.179 + 1.180 + 1.181 +// --------------------------------------------------------------------------- 1.182 +/** @brief Sets the colormap (= palette) to be used to decode embedded 1.183 + * textures in MDL (Quake or 3DGS) files. 1.184 + * 1.185 + * This must be a valid path to a file. The file is 768 (256*3) bytes 1.186 + * large and contains RGB triplets for each of the 256 palette entries. 1.187 + * The default value is colormap.lmp. If the file is not found, 1.188 + * a default palette (from Quake 1) is used. 1.189 + * Property type: string. 1.190 + */ 1.191 +#define AI_CONFIG_IMPORT_MDL_COLORMAP \ 1.192 + "IMPORT_MDL_COLORMAP" 1.193 + 1.194 +// --------------------------------------------------------------------------- 1.195 +/** @brief Configures the #aiProcess_RemoveRedundantMaterials step to 1.196 + * keep materials matching a name in a given list. 1.197 + * 1.198 + * This is a list of 1 to n strings, ' ' serves as delimiter character. 1.199 + * Identifiers containing whitespaces must be enclosed in *single* 1.200 + * quotation marks. For example:<tt> 1.201 + * "keep-me and_me_to anotherMaterialToBeKept \'name with whitespace\'"</tt>. 1.202 + * If a material matches on of these names, it will not be modified or 1.203 + * removed by the postprocessing step nor will other materials be replaced 1.204 + * by a reference to it. <br> 1.205 + * This option might be useful if you are using some magic material names 1.206 + * to pass additional semantics through the content pipeline. This ensures 1.207 + * they won't be optimized away, but a general optimization is still 1.208 + * performed for materials not contained in the list. 1.209 + * Property type: String. Default value: n/a 1.210 + * @note Linefeeds, tabs or carriage returns are treated as whitespace. 1.211 + * Material names are case sensitive. 1.212 + */ 1.213 +#define AI_CONFIG_PP_RRM_EXCLUDE_LIST \ 1.214 + "PP_RRM_EXCLUDE_LIST" 1.215 + 1.216 +// --------------------------------------------------------------------------- 1.217 +/** @brief Configures the #aiProcess_PreTransformVertices step to 1.218 + * keep the scene hierarchy. Meshes are moved to worldspace, but 1.219 + * no optimization is performed (read: meshes with equal materials are not 1.220 + * joined. The total number of meshes won't change). 1.221 + * 1.222 + * This option could be of use for you if the scene hierarchy contains 1.223 + * important additional information which you intend to parse. 1.224 + * For rendering, you can still render all meshes in the scene without 1.225 + * any transformations. 1.226 + * Property type: bool. Default value: false. 1.227 + */ 1.228 +#define AI_CONFIG_PP_PTV_KEEP_HIERARCHY \ 1.229 + "PP_PTV_KEEP_HIERARCHY" 1.230 + 1.231 +// --------------------------------------------------------------------------- 1.232 +/** @brief Configures the #aiProcess_PreTransformVertices step to normalize 1.233 + * all vertex components into the [-1,1] range. That is, a bounding box 1.234 + * for the whole scene is computed, the maximum component is taken and all 1.235 + * meshes are scaled appropriately (uniformly of course!). 1.236 + * This might be useful if you don't know the spatial dimension of the input 1.237 + * data*/ 1.238 +#define AI_CONFIG_PP_PTV_NORMALIZE \ 1.239 + "PP_PTV_NORMALIZE" 1.240 + 1.241 +// --------------------------------------------------------------------------- 1.242 +/** @brief Configures the #aiProcess_PreTransformVertices step to use 1.243 + * a users defined matrix as the scene root node transformation before 1.244 + * transforming vertices. 1.245 + * Property type: bool. Default value: false. 1.246 + */ 1.247 +#define AI_CONFIG_PP_PTV_ADD_ROOT_TRANSFORMATION \ 1.248 + "PP_PTV_ADD_ROOT_TRANSFORMATION" 1.249 + 1.250 +// --------------------------------------------------------------------------- 1.251 +/** @brief Configures the #aiProcess_PreTransformVertices step to use 1.252 + * a users defined matrix as the scene root node transformation before 1.253 + * transforming vertices. This property correspond to the 'a1' component 1.254 + * of the transformation matrix. 1.255 + * Property type: aiMatrix4x4. 1.256 + */ 1.257 +#define AI_CONFIG_PP_PTV_ROOT_TRANSFORMATION \ 1.258 + "PP_PTV_ROOT_TRANSFORMATION" 1.259 + 1.260 +// --------------------------------------------------------------------------- 1.261 +/** @brief Configures the #aiProcess_FindDegenerates step to 1.262 + * remove degenerated primitives from the import - immediately. 1.263 + * 1.264 + * The default behaviour converts degenerated triangles to lines and 1.265 + * degenerated lines to points. See the documentation to the 1.266 + * #aiProcess_FindDegenerates step for a detailed example of the various ways 1.267 + * to get rid of these lines and points if you don't want them. 1.268 + * Property type: bool. Default value: false. 1.269 + */ 1.270 +#define AI_CONFIG_PP_FD_REMOVE \ 1.271 + "PP_FD_REMOVE" 1.272 + 1.273 +// --------------------------------------------------------------------------- 1.274 +/** 1.275 + * @brief Configures the #aiProcess_FindDegenerates to check the area of a 1.276 + * trinagle to be greates than e-6. If this is not the case the triangle will 1.277 + * be removed if #AI_CONFIG_PP_FD_REMOVE is set to true. 1.278 + */ 1.279 +#define AI_CONFIG_PP_FD_CHECKAREA \ 1.280 + "PP_FD_CHECKAREA" 1.281 + 1.282 +// --------------------------------------------------------------------------- 1.283 +/** @brief Configures the #aiProcess_OptimizeGraph step to preserve nodes 1.284 + * matching a name in a given list. 1.285 + * 1.286 + * This is a list of 1 to n strings, ' ' serves as delimiter character. 1.287 + * Identifiers containing whitespaces must be enclosed in *single* 1.288 + * quotation marks. For example:<tt> 1.289 + * "keep-me and_me_to anotherNodeToBeKept \'name with whitespace\'"</tt>. 1.290 + * If a node matches on of these names, it will not be modified or 1.291 + * removed by the postprocessing step.<br> 1.292 + * This option might be useful if you are using some magic node names 1.293 + * to pass additional semantics through the content pipeline. This ensures 1.294 + * they won't be optimized away, but a general optimization is still 1.295 + * performed for nodes not contained in the list. 1.296 + * Property type: String. Default value: n/a 1.297 + * @note Linefeeds, tabs or carriage returns are treated as whitespace. 1.298 + * Node names are case sensitive. 1.299 + */ 1.300 +#define AI_CONFIG_PP_OG_EXCLUDE_LIST \ 1.301 + "PP_OG_EXCLUDE_LIST" 1.302 + 1.303 +// --------------------------------------------------------------------------- 1.304 +/** @brief Set the maximum number of triangles in a mesh. 1.305 + * 1.306 + * This is used by the "SplitLargeMeshes" PostProcess-Step to determine 1.307 + * whether a mesh must be split or not. 1.308 + * @note The default value is AI_SLM_DEFAULT_MAX_TRIANGLES 1.309 + * Property type: integer. 1.310 + */ 1.311 +#define AI_CONFIG_PP_SLM_TRIANGLE_LIMIT \ 1.312 + "PP_SLM_TRIANGLE_LIMIT" 1.313 + 1.314 +// default value for AI_CONFIG_PP_SLM_TRIANGLE_LIMIT 1.315 +#if (!defined AI_SLM_DEFAULT_MAX_TRIANGLES) 1.316 +# define AI_SLM_DEFAULT_MAX_TRIANGLES 1000000 1.317 +#endif 1.318 + 1.319 +// --------------------------------------------------------------------------- 1.320 +/** @brief Set the maximum number of vertices in a mesh. 1.321 + * 1.322 + * This is used by the "SplitLargeMeshes" PostProcess-Step to determine 1.323 + * whether a mesh must be split or not. 1.324 + * @note The default value is AI_SLM_DEFAULT_MAX_VERTICES 1.325 + * Property type: integer. 1.326 + */ 1.327 +#define AI_CONFIG_PP_SLM_VERTEX_LIMIT \ 1.328 + "PP_SLM_VERTEX_LIMIT" 1.329 + 1.330 +// default value for AI_CONFIG_PP_SLM_VERTEX_LIMIT 1.331 +#if (!defined AI_SLM_DEFAULT_MAX_VERTICES) 1.332 +# define AI_SLM_DEFAULT_MAX_VERTICES 1000000 1.333 +#endif 1.334 + 1.335 +// --------------------------------------------------------------------------- 1.336 +/** @brief Set the maximum number of bones affecting a single vertex 1.337 + * 1.338 + * This is used by the #aiProcess_LimitBoneWeights PostProcess-Step. 1.339 + * @note The default value is AI_LMW_MAX_WEIGHTS 1.340 + * Property type: integer.*/ 1.341 +#define AI_CONFIG_PP_LBW_MAX_WEIGHTS \ 1.342 + "PP_LBW_MAX_WEIGHTS" 1.343 + 1.344 +// default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS 1.345 +#if (!defined AI_LMW_MAX_WEIGHTS) 1.346 +# define AI_LMW_MAX_WEIGHTS 0x4 1.347 +#endif // !! AI_LMW_MAX_WEIGHTS 1.348 + 1.349 +// --------------------------------------------------------------------------- 1.350 +/** @brief Lower the deboning threshold in order to remove more bones. 1.351 + * 1.352 + * This is used by the #aiProcess_Debone PostProcess-Step. 1.353 + * @note The default value is AI_DEBONE_THRESHOLD 1.354 + * Property type: float.*/ 1.355 +#define AI_CONFIG_PP_DB_THRESHOLD \ 1.356 + "PP_DB_THRESHOLD" 1.357 + 1.358 +// default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS 1.359 +#if (!defined AI_DEBONE_THRESHOLD) 1.360 +# define AI_DEBONE_THRESHOLD 1.0f 1.361 +#endif // !! AI_DEBONE_THRESHOLD 1.362 + 1.363 +// --------------------------------------------------------------------------- 1.364 +/** @brief Require all bones qualify for deboning before removing any 1.365 + * 1.366 + * This is used by the #aiProcess_Debone PostProcess-Step. 1.367 + * @note The default value is 0 1.368 + * Property type: bool.*/ 1.369 +#define AI_CONFIG_PP_DB_ALL_OR_NONE \ 1.370 + "PP_DB_ALL_OR_NONE" 1.371 + 1.372 +/** @brief Default value for the #AI_CONFIG_PP_ICL_PTCACHE_SIZE property 1.373 + */ 1.374 +#ifndef PP_ICL_PTCACHE_SIZE 1.375 +# define PP_ICL_PTCACHE_SIZE 12 1.376 +#endif 1.377 + 1.378 +// --------------------------------------------------------------------------- 1.379 +/** @brief Set the size of the post-transform vertex cache to optimize the 1.380 + * vertices for. This configures the #aiProcess_ImproveCacheLocality step. 1.381 + * 1.382 + * The size is given in vertices. Of course you can't know how the vertex 1.383 + * format will exactly look like after the import returns, but you can still 1.384 + * guess what your meshes will probably have. 1.385 + * @note The default value is #PP_ICL_PTCACHE_SIZE. That results in slight 1.386 + * performance improvements for most nVidia/AMD cards since 2002. 1.387 + * Property type: integer. 1.388 + */ 1.389 +#define AI_CONFIG_PP_ICL_PTCACHE_SIZE "PP_ICL_PTCACHE_SIZE" 1.390 + 1.391 +// --------------------------------------------------------------------------- 1.392 +/** @brief Enumerates components of the aiScene and aiMesh data structures 1.393 + * that can be excluded from the import using the #aiProcess_RemoveComponent step. 1.394 + * 1.395 + * See the documentation to #aiProcess_RemoveComponent for more details. 1.396 + */ 1.397 +enum aiComponent 1.398 +{ 1.399 + /** Normal vectors */ 1.400 +#ifdef SWIG 1.401 + aiComponent_NORMALS = 0x2, 1.402 +#else 1.403 + aiComponent_NORMALS = 0x2u, 1.404 +#endif 1.405 + 1.406 + /** Tangents and bitangents go always together ... */ 1.407 +#ifdef SWIG 1.408 + aiComponent_TANGENTS_AND_BITANGENTS = 0x4, 1.409 +#else 1.410 + aiComponent_TANGENTS_AND_BITANGENTS = 0x4u, 1.411 +#endif 1.412 + 1.413 + /** ALL color sets 1.414 + * Use aiComponent_COLORn(N) to specify the N'th set */ 1.415 + aiComponent_COLORS = 0x8, 1.416 + 1.417 + /** ALL texture UV sets 1.418 + * aiComponent_TEXCOORDn(N) to specify the N'th set */ 1.419 + aiComponent_TEXCOORDS = 0x10, 1.420 + 1.421 + /** Removes all bone weights from all meshes. 1.422 + * The scenegraph nodes corresponding to the bones are NOT removed. 1.423 + * use the #aiProcess_OptimizeGraph step to do this */ 1.424 + aiComponent_BONEWEIGHTS = 0x20, 1.425 + 1.426 + /** Removes all node animations (aiScene::mAnimations). 1.427 + * The corresponding scenegraph nodes are NOT removed. 1.428 + * use the #aiProcess_OptimizeGraph step to do this */ 1.429 + aiComponent_ANIMATIONS = 0x40, 1.430 + 1.431 + /** Removes all embedded textures (aiScene::mTextures) */ 1.432 + aiComponent_TEXTURES = 0x80, 1.433 + 1.434 + /** Removes all light sources (aiScene::mLights). 1.435 + * The corresponding scenegraph nodes are NOT removed. 1.436 + * use the #aiProcess_OptimizeGraph step to do this */ 1.437 + aiComponent_LIGHTS = 0x100, 1.438 + 1.439 + /** Removes all cameras (aiScene::mCameras). 1.440 + * The corresponding scenegraph nodes are NOT removed. 1.441 + * use the #aiProcess_OptimizeGraph step to do this */ 1.442 + aiComponent_CAMERAS = 0x200, 1.443 + 1.444 + /** Removes all meshes (aiScene::mMeshes). */ 1.445 + aiComponent_MESHES = 0x400, 1.446 + 1.447 + /** Removes all materials. One default material will 1.448 + * be generated, so aiScene::mNumMaterials will be 1. */ 1.449 + aiComponent_MATERIALS = 0x800, 1.450 + 1.451 + 1.452 + /** This value is not used. It is just there to force the 1.453 + * compiler to map this enum to a 32 Bit integer. */ 1.454 +#ifndef SWIG 1.455 + _aiComponent_Force32Bit = 0x9fffffff 1.456 +#endif 1.457 +}; 1.458 + 1.459 +// Remove a specific color channel 'n' 1.460 +#define aiComponent_COLORSn(n) (1u << (n+20u)) 1.461 + 1.462 +// Remove a specific UV channel 'n' 1.463 +#define aiComponent_TEXCOORDSn(n) (1u << (n+25u)) 1.464 + 1.465 +// --------------------------------------------------------------------------- 1.466 +/** @brief Input parameter to the #aiProcess_RemoveComponent step: 1.467 + * Specifies the parts of the data structure to be removed. 1.468 + * 1.469 + * See the documentation to this step for further details. The property 1.470 + * is expected to be an integer, a bitwise combination of the 1.471 + * #aiComponent flags defined above in this header. The default 1.472 + * value is 0. Important: if no valid mesh is remaining after the 1.473 + * step has been executed (e.g you thought it was funny to specify ALL 1.474 + * of the flags defined above) the import FAILS. Mainly because there is 1.475 + * no data to work on anymore ... 1.476 + */ 1.477 +#define AI_CONFIG_PP_RVC_FLAGS \ 1.478 + "PP_RVC_FLAGS" 1.479 + 1.480 +// --------------------------------------------------------------------------- 1.481 +/** @brief Input parameter to the #aiProcess_SortByPType step: 1.482 + * Specifies which primitive types are removed by the step. 1.483 + * 1.484 + * This is a bitwise combination of the aiPrimitiveType flags. 1.485 + * Specifying all of them is illegal, of course. A typical use would 1.486 + * be to exclude all line and point meshes from the import. This 1.487 + * is an integer property, its default value is 0. 1.488 + */ 1.489 +#define AI_CONFIG_PP_SBP_REMOVE \ 1.490 + "PP_SBP_REMOVE" 1.491 + 1.492 +// --------------------------------------------------------------------------- 1.493 +/** @brief Input parameter to the #aiProcess_FindInvalidData step: 1.494 + * Specifies the floating-point accuracy for animation values. The step 1.495 + * checks for animation tracks where all frame values are absolutely equal 1.496 + * and removes them. This tweakable controls the epsilon for floating-point 1.497 + * comparisons - two keys are considered equal if the invariant 1.498 + * abs(n0-n1)>epsilon holds true for all vector respectively quaternion 1.499 + * components. The default value is 0.f - comparisons are exact then. 1.500 + */ 1.501 +#define AI_CONFIG_PP_FID_ANIM_ACCURACY \ 1.502 + "PP_FID_ANIM_ACCURACY" 1.503 + 1.504 +// --------------------------------------------------------------------------- 1.505 +/** @brief Input parameter to the #aiProcess_FindInvalidData step: 1.506 + * Set to true to ignore texture coordinates. This may be useful if you have 1.507 + * to assign different kind of textures like one for the summer or one for the winter. 1.508 + */ 1.509 +#define AI_CONFIG_PP_FID_IGNORE_TEXTURECOORDS \ 1.510 + "PP_FID_IGNORE_TEXTURECOORDS" 1.511 + 1.512 +// TransformUVCoords evaluates UV scalings 1.513 +#define AI_UVTRAFO_SCALING 0x1 1.514 + 1.515 +// TransformUVCoords evaluates UV rotations 1.516 +#define AI_UVTRAFO_ROTATION 0x2 1.517 + 1.518 +// TransformUVCoords evaluates UV translation 1.519 +#define AI_UVTRAFO_TRANSLATION 0x4 1.520 + 1.521 +// Everything baked together -> default value 1.522 +#define AI_UVTRAFO_ALL (AI_UVTRAFO_SCALING | AI_UVTRAFO_ROTATION | AI_UVTRAFO_TRANSLATION) 1.523 + 1.524 +// --------------------------------------------------------------------------- 1.525 +/** @brief Input parameter to the #aiProcess_TransformUVCoords step: 1.526 + * Specifies which UV transformations are evaluated. 1.527 + * 1.528 + * This is a bitwise combination of the AI_UVTRAFO_XXX flags (integer 1.529 + * property, of course). By default all transformations are enabled 1.530 + * (AI_UVTRAFO_ALL). 1.531 + */ 1.532 +#define AI_CONFIG_PP_TUV_EVALUATE \ 1.533 + "PP_TUV_EVALUATE" 1.534 + 1.535 +// --------------------------------------------------------------------------- 1.536 +/** @brief A hint to assimp to favour speed against import quality. 1.537 + * 1.538 + * Enabling this option may result in faster loading, but it needn't. 1.539 + * It represents just a hint to loaders and post-processing steps to use 1.540 + * faster code paths, if possible. 1.541 + * This property is expected to be an integer, != 0 stands for true. 1.542 + * The default value is 0. 1.543 + */ 1.544 +#define AI_CONFIG_FAVOUR_SPEED \ 1.545 + "FAVOUR_SPEED" 1.546 + 1.547 + 1.548 +// ########################################################################### 1.549 +// IMPORTER SETTINGS 1.550 +// Various stuff to fine-tune the behaviour of specific importer plugins. 1.551 +// ########################################################################### 1.552 + 1.553 + 1.554 +// --------------------------------------------------------------------------- 1.555 +/** @brief Set whether the fbx importer will merge all geometry layers present 1.556 + * in the source file or take only the first. 1.557 + * 1.558 + * The default value is true (1) 1.559 + * Property type: bool 1.560 + */ 1.561 +#define AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS \ 1.562 + "IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS" 1.563 + 1.564 +// --------------------------------------------------------------------------- 1.565 +/** @brief Set whether the fbx importer will read all materials present in the 1.566 + * source file or take only the referenced materials. 1.567 + * 1.568 + * This is void unless IMPORT_FBX_READ_MATERIALS=1. 1.569 + * 1.570 + * The default value is false (0) 1.571 + * Property type: bool 1.572 + */ 1.573 +#define AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS \ 1.574 + "IMPORT_FBX_READ_ALL_MATERIALS" 1.575 + 1.576 +// --------------------------------------------------------------------------- 1.577 +/** @brief Set whether the fbx importer will read materials. 1.578 + * 1.579 + * The default value is true (1) 1.580 + * Property type: bool 1.581 + */ 1.582 +#define AI_CONFIG_IMPORT_FBX_READ_MATERIALS \ 1.583 + "IMPORT_FBX_READ_MATERIALS" 1.584 + 1.585 +// --------------------------------------------------------------------------- 1.586 +/** @brief Set whether the fbx importer will read embedded textures. 1.587 + * 1.588 + * The default value is true (1) 1.589 + * Property type: bool 1.590 + */ 1.591 +#define AI_CONFIG_IMPORT_FBX_READ_TEXTURES \ 1.592 + "IMPORT_FBX_READ_TEXTURES" 1.593 + 1.594 +// --------------------------------------------------------------------------- 1.595 +/** @brief Set whether the fbx importer will read cameras. 1.596 + * 1.597 + * The default value is true (1) 1.598 + * Property type: bool 1.599 + */ 1.600 +#define AI_CONFIG_IMPORT_FBX_READ_CAMERAS \ 1.601 + "IMPORT_FBX_READ_CAMERAS" 1.602 + 1.603 +// --------------------------------------------------------------------------- 1.604 +/** @brief Set whether the fbx importer will read light sources. 1.605 + * 1.606 + * The default value is true (1) 1.607 + * Property type: bool 1.608 + */ 1.609 +#define AI_CONFIG_IMPORT_FBX_READ_LIGHTS \ 1.610 + "IMPORT_FBX_READ_LIGHTS" 1.611 + 1.612 +// --------------------------------------------------------------------------- 1.613 +/** @brief Set whether the fbx importer will read animations. 1.614 + * 1.615 + * The default value is true (1) 1.616 + * Property type: bool 1.617 + */ 1.618 +#define AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS \ 1.619 + "IMPORT_FBX_READ_ANIMATIONS" 1.620 + 1.621 +// --------------------------------------------------------------------------- 1.622 +/** @brief Set whether the fbx importer will act in strict mode in which only 1.623 + * FBX 2013 is supported and any other sub formats are rejected. FBX 2013 1.624 + * is the primary target for the importer, so this format is best 1.625 + * supported and well-tested. 1.626 + * 1.627 + * The default value is false (0) 1.628 + * Property type: bool 1.629 + */ 1.630 +#define AI_CONFIG_IMPORT_FBX_STRICT_MODE \ 1.631 + "IMPORT_FBX_STRICT_MODE" 1.632 + 1.633 +// --------------------------------------------------------------------------- 1.634 +/** @brief Set whether the fbx importer will preserve pivot points for 1.635 + * transformations (as extra nodes). If set to false, pivots and offsets 1.636 + * will be evaluated whenever possible. 1.637 + * 1.638 + * The default value is true (1) 1.639 + * Property type: bool 1.640 + */ 1.641 +#define AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS \ 1.642 + "IMPORT_FBX_PRESERVE_PIVOTS" 1.643 + 1.644 +// --------------------------------------------------------------------------- 1.645 +/** @brief Specifies whether the importer will drop empty animation curves or 1.646 + * animation curves which match the bind pose transformation over their 1.647 + * entire defined range. 1.648 + * 1.649 + * The default value is true (1) 1.650 + * Property type: bool 1.651 + */ 1.652 +#define AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES \ 1.653 + "IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES" 1.654 + 1.655 +// --------------------------------------------------------------------------- 1.656 +/** @brief Set whether the fbx importer will use the legacy embedded texture naming. 1.657 +* 1.658 +* The default value is false (0) 1.659 +* Property type: bool 1.660 +*/ 1.661 +#define AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING \ 1.662 + "AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING" 1.663 + 1.664 +// --------------------------------------------------------------------------- 1.665 +/** @brief Set the vertex animation keyframe to be imported 1.666 + * 1.667 + * ASSIMP does not support vertex keyframes (only bone animation is supported). 1.668 + * The library reads only one frame of models with vertex animations. 1.669 + * By default this is the first frame. 1.670 + * \note The default value is 0. This option applies to all importers. 1.671 + * However, it is also possible to override the global setting 1.672 + * for a specific loader. You can use the AI_CONFIG_IMPORT_XXX_KEYFRAME 1.673 + * options (where XXX is a placeholder for the file format for which you 1.674 + * want to override the global setting). 1.675 + * Property type: integer. 1.676 + */ 1.677 +#define AI_CONFIG_IMPORT_GLOBAL_KEYFRAME "IMPORT_GLOBAL_KEYFRAME" 1.678 + 1.679 +#define AI_CONFIG_IMPORT_MD3_KEYFRAME "IMPORT_MD3_KEYFRAME" 1.680 +#define AI_CONFIG_IMPORT_MD2_KEYFRAME "IMPORT_MD2_KEYFRAME" 1.681 +#define AI_CONFIG_IMPORT_MDL_KEYFRAME "IMPORT_MDL_KEYFRAME" 1.682 +#define AI_CONFIG_IMPORT_MDC_KEYFRAME "IMPORT_MDC_KEYFRAME" 1.683 +#define AI_CONFIG_IMPORT_SMD_KEYFRAME "IMPORT_SMD_KEYFRAME" 1.684 +#define AI_CONFIG_IMPORT_UNREAL_KEYFRAME "IMPORT_UNREAL_KEYFRAME" 1.685 + 1.686 +// --------------------------------------------------------------------------- 1.687 +/** Smd load multiple animations 1.688 + * 1.689 + * Property type: bool. Default value: true. 1.690 + */ 1.691 +#define AI_CONFIG_IMPORT_SMD_LOAD_ANIMATION_LIST "IMPORT_SMD_LOAD_ANIMATION_LIST" 1.692 + 1.693 +// --------------------------------------------------------------------------- 1.694 +/** @brief Configures the AC loader to collect all surfaces which have the 1.695 + * "Backface cull" flag set in separate meshes. 1.696 + * 1.697 + * Property type: bool. Default value: true. 1.698 + */ 1.699 +#define AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL \ 1.700 + "IMPORT_AC_SEPARATE_BFCULL" 1.701 + 1.702 +// --------------------------------------------------------------------------- 1.703 +/** @brief Configures whether the AC loader evaluates subdivision surfaces ( 1.704 + * indicated by the presence of the 'subdiv' attribute in the file). By 1.705 + * default, Assimp performs the subdivision using the standard 1.706 + * Catmull-Clark algorithm 1.707 + * 1.708 + * * Property type: bool. Default value: true. 1.709 + */ 1.710 +#define AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION \ 1.711 + "IMPORT_AC_EVAL_SUBDIVISION" 1.712 + 1.713 +// --------------------------------------------------------------------------- 1.714 +/** @brief Configures the UNREAL 3D loader to separate faces with different 1.715 + * surface flags (e.g. two-sided vs. single-sided). 1.716 + * 1.717 + * * Property type: bool. Default value: true. 1.718 + */ 1.719 +#define AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS \ 1.720 + "UNREAL_HANDLE_FLAGS" 1.721 + 1.722 +// --------------------------------------------------------------------------- 1.723 +/** @brief Configures the terragen import plugin to compute uv's for 1.724 + * terrains, if not given. Furthermore a default texture is assigned. 1.725 + * 1.726 + * UV coordinates for terrains are so simple to compute that you'll usually 1.727 + * want to compute them on your own, if you need them. This option is intended 1.728 + * for model viewers which want to offer an easy way to apply textures to 1.729 + * terrains. 1.730 + * * Property type: bool. Default value: false. 1.731 + */ 1.732 +#define AI_CONFIG_IMPORT_TER_MAKE_UVS \ 1.733 + "IMPORT_TER_MAKE_UVS" 1.734 + 1.735 +// --------------------------------------------------------------------------- 1.736 +/** @brief Configures the ASE loader to always reconstruct normal vectors 1.737 + * basing on the smoothing groups loaded from the file. 1.738 + * 1.739 + * Some ASE files have carry invalid normals, other don't. 1.740 + * * Property type: bool. Default value: true. 1.741 + */ 1.742 +#define AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS \ 1.743 + "IMPORT_ASE_RECONSTRUCT_NORMALS" 1.744 + 1.745 +// --------------------------------------------------------------------------- 1.746 +/** @brief Configures the M3D loader to detect and process multi-part 1.747 + * Quake player models. 1.748 + * 1.749 + * These models usually consist of 3 files, lower.md3, upper.md3 and 1.750 + * head.md3. If this property is set to true, Assimp will try to load and 1.751 + * combine all three files if one of them is loaded. 1.752 + * Property type: bool. Default value: true. 1.753 + */ 1.754 +#define AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART \ 1.755 + "IMPORT_MD3_HANDLE_MULTIPART" 1.756 + 1.757 +// --------------------------------------------------------------------------- 1.758 +/** @brief Tells the MD3 loader which skin files to load. 1.759 + * 1.760 + * When loading MD3 files, Assimp checks whether a file 1.761 + * [md3_file_name]_[skin_name].skin is existing. These files are used by 1.762 + * Quake III to be able to assign different skins (e.g. red and blue team) 1.763 + * to models. 'default', 'red', 'blue' are typical skin names. 1.764 + * Property type: String. Default value: "default". 1.765 + */ 1.766 +#define AI_CONFIG_IMPORT_MD3_SKIN_NAME \ 1.767 + "IMPORT_MD3_SKIN_NAME" 1.768 + 1.769 +// --------------------------------------------------------------------------- 1.770 +/** @brief Specify the Quake 3 shader file to be used for a particular 1.771 + * MD3 file. This can also be a search path. 1.772 + * 1.773 + * By default Assimp's behaviour is as follows: If a MD3 file 1.774 + * <tt>any_path/models/any_q3_subdir/model_name/file_name.md3</tt> is 1.775 + * loaded, the library tries to locate the corresponding shader file in 1.776 + * <tt>any_path/scripts/model_name.shader</tt>. This property overrides this 1.777 + * behaviour. It can either specify a full path to the shader to be loaded 1.778 + * or alternatively the path (relative or absolute) to the directory where 1.779 + * the shaders for all MD3s to be loaded reside. Assimp attempts to open 1.780 + * <tt>IMPORT_MD3_SHADER_SRC/model_name.shader</tt> first, <tt>IMPORT_MD3_SHADER_SRC/file_name.shader</tt> 1.781 + * is the fallback file. Note that IMPORT_MD3_SHADER_SRC should have a terminal (back)slash. 1.782 + * Property type: String. Default value: n/a. 1.783 + */ 1.784 +#define AI_CONFIG_IMPORT_MD3_SHADER_SRC \ 1.785 + "IMPORT_MD3_SHADER_SRC" 1.786 + 1.787 +// --------------------------------------------------------------------------- 1.788 +/** @brief Configures the LWO loader to load just one layer from the model. 1.789 + * 1.790 + * LWO files consist of layers and in some cases it could be useful to load 1.791 + * only one of them. This property can be either a string - which specifies 1.792 + * the name of the layer - or an integer - the index of the layer. If the 1.793 + * property is not set the whole LWO model is loaded. Loading fails if the 1.794 + * requested layer is not available. The layer index is zero-based and the 1.795 + * layer name may not be empty.<br> 1.796 + * Property type: Integer. Default value: all layers are loaded. 1.797 + */ 1.798 +#define AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY \ 1.799 + "IMPORT_LWO_ONE_LAYER_ONLY" 1.800 + 1.801 +// --------------------------------------------------------------------------- 1.802 +/** @brief Configures the MD5 loader to not load the MD5ANIM file for 1.803 + * a MD5MESH file automatically. 1.804 + * 1.805 + * The default strategy is to look for a file with the same name but the 1.806 + * MD5ANIM extension in the same directory. If it is found, it is loaded 1.807 + * and combined with the MD5MESH file. This configuration option can be 1.808 + * used to disable this behaviour. 1.809 + * 1.810 + * * Property type: bool. Default value: false. 1.811 + */ 1.812 +#define AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD \ 1.813 + "IMPORT_MD5_NO_ANIM_AUTOLOAD" 1.814 + 1.815 +// --------------------------------------------------------------------------- 1.816 +/** @brief Defines the begin of the time range for which the LWS loader 1.817 + * evaluates animations and computes aiNodeAnim's. 1.818 + * 1.819 + * Assimp provides full conversion of LightWave's envelope system, including 1.820 + * pre and post conditions. The loader computes linearly subsampled animation 1.821 + * chanels with the frame rate given in the LWS file. This property defines 1.822 + * the start time. Note: animation channels are only generated if a node 1.823 + * has at least one envelope with more tan one key assigned. This property. 1.824 + * is given in frames, '0' is the first frame. By default, if this property 1.825 + * is not set, the importer takes the animation start from the input LWS 1.826 + * file ('FirstFrame' line)<br> 1.827 + * Property type: Integer. Default value: taken from file. 1.828 + * 1.829 + * @see AI_CONFIG_IMPORT_LWS_ANIM_END - end of the imported time range 1.830 + */ 1.831 +#define AI_CONFIG_IMPORT_LWS_ANIM_START \ 1.832 + "IMPORT_LWS_ANIM_START" 1.833 +#define AI_CONFIG_IMPORT_LWS_ANIM_END \ 1.834 + "IMPORT_LWS_ANIM_END" 1.835 + 1.836 +// --------------------------------------------------------------------------- 1.837 +/** @brief Defines the output frame rate of the IRR loader. 1.838 + * 1.839 + * IRR animations are difficult to convert for Assimp and there will 1.840 + * always be a loss of quality. This setting defines how many keys per second 1.841 + * are returned by the converter.<br> 1.842 + * Property type: integer. Default value: 100 1.843 + */ 1.844 +#define AI_CONFIG_IMPORT_IRR_ANIM_FPS \ 1.845 + "IMPORT_IRR_ANIM_FPS" 1.846 + 1.847 +// --------------------------------------------------------------------------- 1.848 +/** @brief Ogre Importer will try to find referenced materials from this file. 1.849 + * 1.850 + * Ogre meshes reference with material names, this does not tell Assimp the file 1.851 + * where it is located in. Assimp will try to find the source file in the following 1.852 + * order: <material-name>.material, <mesh-filename-base>.material and 1.853 + * lastly the material name defined by this config property. 1.854 + * <br> 1.855 + * Property type: String. Default value: Scene.material. 1.856 + */ 1.857 +#define AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE \ 1.858 + "IMPORT_OGRE_MATERIAL_FILE" 1.859 + 1.860 +// --------------------------------------------------------------------------- 1.861 +/** @brief Ogre Importer detect the texture usage from its filename. 1.862 + * 1.863 + * Ogre material texture units do not define texture type, the textures usage 1.864 + * depends on the used shader or Ogre's fixed pipeline. If this config property 1.865 + * is true Assimp will try to detect the type from the textures filename postfix: 1.866 + * _n, _nrm, _nrml, _normal, _normals and _normalmap for normal map, _s, _spec, 1.867 + * _specular and _specularmap for specular map, _l, _light, _lightmap, _occ 1.868 + * and _occlusion for light map, _disp and _displacement for displacement map. 1.869 + * The matching is case insensitive. Post fix is taken between the last 1.870 + * underscore and the last period. 1.871 + * Default behavior is to detect type from lower cased texture unit name by 1.872 + * matching against: normalmap, specularmap, lightmap and displacementmap. 1.873 + * For both cases if no match is found aiTextureType_DIFFUSE is used. 1.874 + * <br> 1.875 + * Property type: Bool. Default value: false. 1.876 + */ 1.877 +#define AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME \ 1.878 + "IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME" 1.879 + 1.880 + /** @brief Specifies whether the Android JNI asset extraction is supported. 1.881 + * 1.882 + * Turn on this option if you want to manage assets in native 1.883 + * Android application without having to keep the internal directory and asset 1.884 + * manager pointer. 1.885 + */ 1.886 + #define AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT "AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT" 1.887 + 1.888 +// --------------------------------------------------------------------------- 1.889 +/** @brief Specifies whether the IFC loader skips over IfcSpace elements. 1.890 + * 1.891 + * IfcSpace elements (and their geometric representations) are used to 1.892 + * represent, well, free space in a building storey.<br> 1.893 + * Property type: Bool. Default value: true. 1.894 + */ 1.895 +#define AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS" 1.896 + 1.897 +// --------------------------------------------------------------------------- 1.898 +/** @brief Specifies whether the IFC loader will use its own, custom triangulation 1.899 + * algorithm to triangulate wall and floor meshes. 1.900 + * 1.901 + * If this property is set to false, walls will be either triangulated by 1.902 + * #aiProcess_Triangulate or will be passed through as huge polygons with 1.903 + * faked holes (i.e. holes that are connected with the outer boundary using 1.904 + * a dummy edge). It is highly recommended to set this property to true 1.905 + * if you want triangulated data because #aiProcess_Triangulate is known to 1.906 + * have problems with the kind of polygons that the IFC loader spits out for 1.907 + * complicated meshes. 1.908 + * Property type: Bool. Default value: true. 1.909 + */ 1.910 +#define AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION "IMPORT_IFC_CUSTOM_TRIANGULATION" 1.911 + 1.912 +// --------------------------------------------------------------------------- 1.913 +/** @brief Set the tessellation conic angle for IFC smoothing curves. 1.914 + * 1.915 + * This is used by the IFC importer to determine the tessellation parameter 1.916 + * for smoothing curves. 1.917 + * @note The default value is AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE and the 1.918 + * accepted values are in range [5.0, 120.0]. 1.919 + * Property type: Float. 1.920 + */ 1.921 +#define AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE "IMPORT_IFC_SMOOTHING_ANGLE" 1.922 + 1.923 +// default value for AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE 1.924 +#if (!defined AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE) 1.925 +# define AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE 10.0f 1.926 +#endif 1.927 + 1.928 +// --------------------------------------------------------------------------- 1.929 +/** @brief Set the tessellation for IFC cylindrical shapes. 1.930 + * 1.931 + * This is used by the IFC importer to determine the tessellation parameter 1.932 + * for cylindrical shapes, i.e. the number of segments used to approximate a circle. 1.933 + * @note The default value is AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION and the 1.934 + * accepted values are in range [3, 180]. 1.935 + * Property type: Integer. 1.936 + */ 1.937 +#define AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION "IMPORT_IFC_CYLINDRICAL_TESSELLATION" 1.938 + 1.939 +// default value for AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION 1.940 +#if (!defined AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION) 1.941 +# define AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION 32 1.942 +#endif 1.943 + 1.944 +// --------------------------------------------------------------------------- 1.945 +/** @brief Specifies whether the Collada loader will ignore the provided up direction. 1.946 + * 1.947 + * If this property is set to true, the up direction provided in the file header will 1.948 + * be ignored and the file will be loaded as is. 1.949 + * Property type: Bool. Default value: false. 1.950 + */ 1.951 +#define AI_CONFIG_IMPORT_COLLADA_IGNORE_UP_DIRECTION "IMPORT_COLLADA_IGNORE_UP_DIRECTION" 1.952 + 1.953 +// --------------------------------------------------------------------------- 1.954 +/** @brief Specifies whether the Collada loader should use Collada names as node names. 1.955 + * 1.956 + * If this property is set to true, the Collada names will be used as the 1.957 + * node name. The default is to use the id tag (resp. sid tag, if no id tag is present) 1.958 + * instead. 1.959 + * Property type: Bool. Default value: false. 1.960 + */ 1.961 +#define AI_CONFIG_IMPORT_COLLADA_USE_COLLADA_NAMES "IMPORT_COLLADA_USE_COLLADA_NAMES" 1.962 + 1.963 +// ---------- All the Export defines ------------ 1.964 + 1.965 +/** @brief Specifies the xfile use double for real values of float 1.966 + * 1.967 + * Property type: Bool. Default value: false. 1.968 + */ 1.969 + 1.970 +#define AI_CONFIG_EXPORT_XFILE_64BIT "EXPORT_XFILE_64BIT" 1.971 + 1.972 +/** 1.973 + * 1.974 + */ 1.975 +#define AI_CONFIG_EXPORT_POINT_CLOUDS "EXPORT_POINT_CLOUDS" 1.976 + 1.977 +/** 1.978 + * @brief Specifies a gobal key factor for scale, float value 1.979 + */ 1.980 +#define AI_CONFIG_GLOBAL_SCALE_FACTOR_KEY "GLOBAL_SCALE_FACTOR" 1.981 + 1.982 +#if (!defined AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT) 1.983 +# define AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT 1.0f 1.984 +#endif // !! AI_DEBONE_THRESHOLD 1.985 + 1.986 +// ---------- All the Build/Compile-time defines ------------ 1.987 + 1.988 +/** @brief Specifies if double precision is supported inside assimp 1.989 + * 1.990 + * Property type: Bool. Default value: undefined. 1.991 + */ 1.992 + 1.993 +/* #undef ASSIMP_DOUBLE_PRECISION */ 1.994 + 1.995 +#endif // !! AI_CONFIG_H_INC