vrshoot

annotate libs/assimp/assimp/config.h @ 0:b2f14e535253

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 01 Feb 2014 19:58:19 +0200
parents
children
rev   line source
nuclear@0 1 /*
nuclear@0 2 ---------------------------------------------------------------------------
nuclear@0 3 Open Asset Import Library (assimp)
nuclear@0 4 ---------------------------------------------------------------------------
nuclear@0 5
nuclear@0 6 Copyright (c) 2006-2012, assimp team
nuclear@0 7
nuclear@0 8 All rights reserved.
nuclear@0 9
nuclear@0 10 Redistribution and use of this software in source and binary forms,
nuclear@0 11 with or without modification, are permitted provided that the following
nuclear@0 12 conditions are met:
nuclear@0 13
nuclear@0 14 * Redistributions of source code must retain the above
nuclear@0 15 copyright notice, this list of conditions and the
nuclear@0 16 following disclaimer.
nuclear@0 17
nuclear@0 18 * Redistributions in binary form must reproduce the above
nuclear@0 19 copyright notice, this list of conditions and the
nuclear@0 20 following disclaimer in the documentation and/or other
nuclear@0 21 materials provided with the distribution.
nuclear@0 22
nuclear@0 23 * Neither the name of the assimp team, nor the names of its
nuclear@0 24 contributors may be used to endorse or promote products
nuclear@0 25 derived from this software without specific prior
nuclear@0 26 written permission of the assimp team.
nuclear@0 27
nuclear@0 28 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
nuclear@0 29 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
nuclear@0 30 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
nuclear@0 31 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
nuclear@0 32 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
nuclear@0 33 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
nuclear@0 34 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
nuclear@0 35 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
nuclear@0 36 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
nuclear@0 37 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
nuclear@0 38 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
nuclear@0 39 ---------------------------------------------------------------------------
nuclear@0 40 */
nuclear@0 41
nuclear@0 42 /** @file config.h
nuclear@0 43 * @brief Defines constants for configurable properties for the library
nuclear@0 44 *
nuclear@0 45 * Typically these properties are set via
nuclear@0 46 * #Assimp::Importer::SetPropertyFloat,
nuclear@0 47 * #Assimp::Importer::SetPropertyInteger or
nuclear@0 48 * #Assimp::Importer::SetPropertyString,
nuclear@0 49 * depending on the data type of a property. All properties have a
nuclear@0 50 * default value. See the doc for the mentioned methods for more details.
nuclear@0 51 *
nuclear@0 52 * <br><br>
nuclear@0 53 * The corresponding functions for use with the plain-c API are:
nuclear@0 54 * #aiSetImportPropertyInteger,
nuclear@0 55 * #aiSetImportPropertyFloat,
nuclear@0 56 * #aiSetImportPropertyString
nuclear@0 57 */
nuclear@0 58 #ifndef INCLUDED_AI_CONFIG_H
nuclear@0 59 #define INCLUDED_AI_CONFIG_H
nuclear@0 60
nuclear@0 61
nuclear@0 62 // ###########################################################################
nuclear@0 63 // LIBRARY SETTINGS
nuclear@0 64 // General, global settings
nuclear@0 65 // ###########################################################################
nuclear@0 66
nuclear@0 67 // ---------------------------------------------------------------------------
nuclear@0 68 /** @brief Enables time measurements.
nuclear@0 69 *
nuclear@0 70 * If enabled, measures the time needed for each part of the loading
nuclear@0 71 * process (i.e. IO time, importing, postprocessing, ..) and dumps
nuclear@0 72 * these timings to the DefaultLogger. See the @link perf Performance
nuclear@0 73 * Page@endlink for more information on this topic.
nuclear@0 74 *
nuclear@0 75 * Property type: bool. Default value: false.
nuclear@0 76 */
nuclear@0 77 #define AI_CONFIG_GLOB_MEASURE_TIME \
nuclear@0 78 "GLOB_MEASURE_TIME"
nuclear@0 79
nuclear@0 80
nuclear@0 81 // ---------------------------------------------------------------------------
nuclear@0 82 /** @brief Global setting to disable generation of skeleton dummy meshes
nuclear@0 83 *
nuclear@0 84 * Skeleton dummy meshes are generated as a visualization aid in cases which
nuclear@0 85 * the input data contains no geometry, but only animation data.
nuclear@0 86 * Property data type: bool. Default value: false
nuclear@0 87 */
nuclear@0 88 // ---------------------------------------------------------------------------
nuclear@0 89 #define AI_CONFIG_IMPORT_NO_SKELETON_MESHES \
nuclear@0 90 "IMPORT_NO_SKELETON_MESHES"
nuclear@0 91
nuclear@0 92
nuclear@0 93
nuclear@0 94 # if 0 // not implemented yet
nuclear@0 95 // ---------------------------------------------------------------------------
nuclear@0 96 /** @brief Set Assimp's multithreading policy.
nuclear@0 97 *
nuclear@0 98 * This setting is ignored if Assimp was built without boost.thread
nuclear@0 99 * support (ASSIMP_BUILD_NO_THREADING, which is implied by ASSIMP_BUILD_BOOST_WORKAROUND).
nuclear@0 100 * Possible values are: -1 to let Assimp decide what to do, 0 to disable
nuclear@0 101 * multithreading entirely and any number larger than 0 to force a specific
nuclear@0 102 * number of threads. Assimp is always free to ignore this settings, which is
nuclear@0 103 * merely a hint. Usually, the default value (-1) will be fine. However, if
nuclear@0 104 * Assimp is used concurrently from multiple user threads, it might be useful
nuclear@0 105 * to limit each Importer instance to a specific number of cores.
nuclear@0 106 *
nuclear@0 107 * For more information, see the @link threading Threading page@endlink.
nuclear@0 108 * Property type: int, default value: -1.
nuclear@0 109 */
nuclear@0 110 #define AI_CONFIG_GLOB_MULTITHREADING \
nuclear@0 111 "GLOB_MULTITHREADING"
nuclear@0 112 #endif
nuclear@0 113
nuclear@0 114 // ###########################################################################
nuclear@0 115 // POST PROCESSING SETTINGS
nuclear@0 116 // Various stuff to fine-tune the behavior of a specific post processing step.
nuclear@0 117 // ###########################################################################
nuclear@0 118
nuclear@0 119
nuclear@0 120 // ---------------------------------------------------------------------------
nuclear@0 121 /** @brief Maximum bone count per mesh for the SplitbyBoneCount step.
nuclear@0 122 *
nuclear@0 123 * Meshes are split until the maximum number of bones is reached. The default
nuclear@0 124 * value is AI_SBBC_DEFAULT_MAX_BONES, which may be altered at
nuclear@0 125 * compile-time.
nuclear@0 126 * Property data type: integer.
nuclear@0 127 */
nuclear@0 128 // ---------------------------------------------------------------------------
nuclear@0 129 #define AI_CONFIG_PP_SBBC_MAX_BONES \
nuclear@0 130 "PP_SBBC_MAX_BONES"
nuclear@0 131
nuclear@0 132
nuclear@0 133 // default limit for bone count
nuclear@0 134 #if (!defined AI_SBBC_DEFAULT_MAX_BONES)
nuclear@0 135 # define AI_SBBC_DEFAULT_MAX_BONES 60
nuclear@0 136 #endif
nuclear@0 137
nuclear@0 138
nuclear@0 139 // ---------------------------------------------------------------------------
nuclear@0 140 /** @brief Specifies the maximum angle that may be between two vertex tangents
nuclear@0 141 * that their tangents and bi-tangents are smoothed.
nuclear@0 142 *
nuclear@0 143 * This applies to the CalcTangentSpace-Step. The angle is specified
nuclear@0 144 * in degrees. The maximum value is 175.
nuclear@0 145 * Property type: float. Default value: 45 degrees
nuclear@0 146 */
nuclear@0 147 #define AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE \
nuclear@0 148 "PP_CT_MAX_SMOOTHING_ANGLE"
nuclear@0 149
nuclear@0 150 // ---------------------------------------------------------------------------
nuclear@0 151 /** @brief Source UV channel for tangent space computation.
nuclear@0 152 *
nuclear@0 153 * The specified channel must exist or an error will be raised.
nuclear@0 154 * Property type: integer. Default value: 0
nuclear@0 155 */
nuclear@0 156 // ---------------------------------------------------------------------------
nuclear@0 157 #define AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX \
nuclear@0 158 "PP_CT_TEXTURE_CHANNEL_INDEX"
nuclear@0 159
nuclear@0 160 // ---------------------------------------------------------------------------
nuclear@0 161 /** @brief Specifies the maximum angle that may be between two face normals
nuclear@0 162 * at the same vertex position that their are smoothed together.
nuclear@0 163 *
nuclear@0 164 * Sometimes referred to as 'crease angle'.
nuclear@0 165 * This applies to the GenSmoothNormals-Step. The angle is specified
nuclear@0 166 * in degrees, so 180 is PI. The default value is 175 degrees (all vertex
nuclear@0 167 * normals are smoothed). The maximum value is 175, too. Property type: float.
nuclear@0 168 * Warning: setting this option may cause a severe loss of performance. The
nuclear@0 169 * performance is unaffected if the #AI_CONFIG_FAVOUR_SPEED flag is set but
nuclear@0 170 * the output quality may be reduced.
nuclear@0 171 */
nuclear@0 172 #define AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE \
nuclear@0 173 "PP_GSN_MAX_SMOOTHING_ANGLE"
nuclear@0 174
nuclear@0 175
nuclear@0 176 // ---------------------------------------------------------------------------
nuclear@0 177 /** @brief Sets the colormap (= palette) to be used to decode embedded
nuclear@0 178 * textures in MDL (Quake or 3DGS) files.
nuclear@0 179 *
nuclear@0 180 * This must be a valid path to a file. The file is 768 (256*3) bytes
nuclear@0 181 * large and contains RGB triplets for each of the 256 palette entries.
nuclear@0 182 * The default value is colormap.lmp. If the file is not found,
nuclear@0 183 * a default palette (from Quake 1) is used.
nuclear@0 184 * Property type: string.
nuclear@0 185 */
nuclear@0 186 #define AI_CONFIG_IMPORT_MDL_COLORMAP \
nuclear@0 187 "IMPORT_MDL_COLORMAP"
nuclear@0 188
nuclear@0 189 // ---------------------------------------------------------------------------
nuclear@0 190 /** @brief Configures the #aiProcess_RemoveRedundantMaterials step to
nuclear@0 191 * keep materials matching a name in a given list.
nuclear@0 192 *
nuclear@0 193 * This is a list of 1 to n strings, ' ' serves as delimiter character.
nuclear@0 194 * Identifiers containing whitespaces must be enclosed in *single*
nuclear@0 195 * quotation marks. For example:<tt>
nuclear@0 196 * "keep-me and_me_to anotherMaterialToBeKept \'name with whitespace\'"</tt>.
nuclear@0 197 * If a material matches on of these names, it will not be modified or
nuclear@0 198 * removed by the postprocessing step nor will other materials be replaced
nuclear@0 199 * by a reference to it. <br>
nuclear@0 200 * This option might be useful if you are using some magic material names
nuclear@0 201 * to pass additional semantics through the content pipeline. This ensures
nuclear@0 202 * they won't be optimized away, but a general optimization is still
nuclear@0 203 * performed for materials not contained in the list.
nuclear@0 204 * Property type: String. Default value: n/a
nuclear@0 205 * @note Linefeeds, tabs or carriage returns are treated as whitespace.
nuclear@0 206 * Material names are case sensitive.
nuclear@0 207 */
nuclear@0 208 #define AI_CONFIG_PP_RRM_EXCLUDE_LIST \
nuclear@0 209 "PP_RRM_EXCLUDE_LIST"
nuclear@0 210
nuclear@0 211 // ---------------------------------------------------------------------------
nuclear@0 212 /** @brief Configures the #aiProcess_PretransformVertices step to
nuclear@0 213 * keep the scene hierarchy. Meshes are moved to worldspace, but
nuclear@0 214 * no optimization is performed (read: meshes with equal materials are not
nuclear@0 215 * joined. The total number of meshes won't change).
nuclear@0 216 *
nuclear@0 217 * This option could be of use for you if the scene hierarchy contains
nuclear@0 218 * important additional information which you intend to parse.
nuclear@0 219 * For rendering, you can still render all meshes in the scene without
nuclear@0 220 * any transformations.
nuclear@0 221 * Property type: bool. Default value: false.
nuclear@0 222 */
nuclear@0 223 #define AI_CONFIG_PP_PTV_KEEP_HIERARCHY \
nuclear@0 224 "PP_PTV_KEEP_HIERARCHY"
nuclear@0 225
nuclear@0 226 // ---------------------------------------------------------------------------
nuclear@0 227 /** @brief Configures the #aiProcess_PretransformVertices step to normalize
nuclear@0 228 * all vertex components into the [-1,1] range. That is, a bounding box
nuclear@0 229 * for the whole scene is computed, the maximum component is taken and all
nuclear@0 230 * meshes are scaled appropriately (uniformly of course!).
nuclear@0 231 * This might be useful if you don't know the spatial dimension of the input
nuclear@0 232 * data*/
nuclear@0 233 #define AI_CONFIG_PP_PTV_NORMALIZE \
nuclear@0 234 "PP_PTV_NORMALIZE"
nuclear@0 235
nuclear@0 236 // ---------------------------------------------------------------------------
nuclear@0 237 /** @brief Configures the #aiProcess_FindDegenerates step to
nuclear@0 238 * remove degenerated primitives from the import - immediately.
nuclear@0 239 *
nuclear@0 240 * The default behaviour converts degenerated triangles to lines and
nuclear@0 241 * degenerated lines to points. See the documentation to the
nuclear@0 242 * #aiProcess_FindDegenerates step for a detailed example of the various ways
nuclear@0 243 * to get rid of these lines and points if you don't want them.
nuclear@0 244 * Property type: bool. Default value: false.
nuclear@0 245 */
nuclear@0 246 #define AI_CONFIG_PP_FD_REMOVE \
nuclear@0 247 "PP_FD_REMOVE"
nuclear@0 248
nuclear@0 249 // ---------------------------------------------------------------------------
nuclear@0 250 /** @brief Configures the #aiProcess_OptimizeGraph step to preserve nodes
nuclear@0 251 * matching a name in a given list.
nuclear@0 252 *
nuclear@0 253 * This is a list of 1 to n strings, ' ' serves as delimiter character.
nuclear@0 254 * Identifiers containing whitespaces must be enclosed in *single*
nuclear@0 255 * quotation marks. For example:<tt>
nuclear@0 256 * "keep-me and_me_to anotherNodeToBeKept \'name with whitespace\'"</tt>.
nuclear@0 257 * If a node matches on of these names, it will not be modified or
nuclear@0 258 * removed by the postprocessing step.<br>
nuclear@0 259 * This option might be useful if you are using some magic node names
nuclear@0 260 * to pass additional semantics through the content pipeline. This ensures
nuclear@0 261 * they won't be optimized away, but a general optimization is still
nuclear@0 262 * performed for nodes not contained in the list.
nuclear@0 263 * Property type: String. Default value: n/a
nuclear@0 264 * @note Linefeeds, tabs or carriage returns are treated as whitespace.
nuclear@0 265 * Node names are case sensitive.
nuclear@0 266 */
nuclear@0 267 #define AI_CONFIG_PP_OG_EXCLUDE_LIST \
nuclear@0 268 "PP_OG_EXCLUDE_LIST"
nuclear@0 269
nuclear@0 270 // ---------------------------------------------------------------------------
nuclear@0 271 /** @brief Set the maximum number of triangles in a mesh.
nuclear@0 272 *
nuclear@0 273 * This is used by the "SplitLargeMeshes" PostProcess-Step to determine
nuclear@0 274 * whether a mesh must be split or not.
nuclear@0 275 * @note The default value is AI_SLM_DEFAULT_MAX_TRIANGLES
nuclear@0 276 * Property type: integer.
nuclear@0 277 */
nuclear@0 278 #define AI_CONFIG_PP_SLM_TRIANGLE_LIMIT \
nuclear@0 279 "PP_SLM_TRIANGLE_LIMIT"
nuclear@0 280
nuclear@0 281 // default value for AI_CONFIG_PP_SLM_TRIANGLE_LIMIT
nuclear@0 282 #if (!defined AI_SLM_DEFAULT_MAX_TRIANGLES)
nuclear@0 283 # define AI_SLM_DEFAULT_MAX_TRIANGLES 1000000
nuclear@0 284 #endif
nuclear@0 285
nuclear@0 286 // ---------------------------------------------------------------------------
nuclear@0 287 /** @brief Set the maximum number of vertices in a mesh.
nuclear@0 288 *
nuclear@0 289 * This is used by the "SplitLargeMeshes" PostProcess-Step to determine
nuclear@0 290 * whether a mesh must be split or not.
nuclear@0 291 * @note The default value is AI_SLM_DEFAULT_MAX_VERTICES
nuclear@0 292 * Property type: integer.
nuclear@0 293 */
nuclear@0 294 #define AI_CONFIG_PP_SLM_VERTEX_LIMIT \
nuclear@0 295 "PP_SLM_VERTEX_LIMIT"
nuclear@0 296
nuclear@0 297 // default value for AI_CONFIG_PP_SLM_VERTEX_LIMIT
nuclear@0 298 #if (!defined AI_SLM_DEFAULT_MAX_VERTICES)
nuclear@0 299 # define AI_SLM_DEFAULT_MAX_VERTICES 1000000
nuclear@0 300 #endif
nuclear@0 301
nuclear@0 302 // ---------------------------------------------------------------------------
nuclear@0 303 /** @brief Set the maximum number of bones affecting a single vertex
nuclear@0 304 *
nuclear@0 305 * This is used by the #aiProcess_LimitBoneWeights PostProcess-Step.
nuclear@0 306 * @note The default value is AI_LBW_MAX_WEIGHTS
nuclear@0 307 * Property type: integer.*/
nuclear@0 308 #define AI_CONFIG_PP_LBW_MAX_WEIGHTS \
nuclear@0 309 "PP_LBW_MAX_WEIGHTS"
nuclear@0 310
nuclear@0 311 // default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS
nuclear@0 312 #if (!defined AI_LMW_MAX_WEIGHTS)
nuclear@0 313 # define AI_LMW_MAX_WEIGHTS 0x4
nuclear@0 314 #endif // !! AI_LMW_MAX_WEIGHTS
nuclear@0 315
nuclear@0 316 // ---------------------------------------------------------------------------
nuclear@0 317 /** @brief Lower the deboning threshold in order to remove more bones.
nuclear@0 318 *
nuclear@0 319 * This is used by the #aiProcess_Debone PostProcess-Step.
nuclear@0 320 * @note The default value is AI_DEBONE_THRESHOLD
nuclear@0 321 * Property type: float.*/
nuclear@0 322 #define AI_CONFIG_PP_DB_THRESHOLD \
nuclear@0 323 "PP_DB_THRESHOLD"
nuclear@0 324
nuclear@0 325 // default value for AI_CONFIG_PP_LBW_MAX_WEIGHTS
nuclear@0 326 #if (!defined AI_DEBONE_THRESHOLD)
nuclear@0 327 # define AI_DEBONE_THRESHOLD 1.0f
nuclear@0 328 #endif // !! AI_DEBONE_THRESHOLD
nuclear@0 329
nuclear@0 330 // ---------------------------------------------------------------------------
nuclear@0 331 /** @brief Require all bones qualify for deboning before removing any
nuclear@0 332 *
nuclear@0 333 * This is used by the #aiProcess_Debone PostProcess-Step.
nuclear@0 334 * @note The default value is 0
nuclear@0 335 * Property type: bool.*/
nuclear@0 336 #define AI_CONFIG_PP_DB_ALL_OR_NONE \
nuclear@0 337 "PP_DB_ALL_OR_NONE"
nuclear@0 338
nuclear@0 339 /** @brief Default value for the #AI_CONFIG_PP_ICL_PTCACHE_SIZE property
nuclear@0 340 */
nuclear@0 341 #ifndef PP_ICL_PTCACHE_SIZE
nuclear@0 342 # define PP_ICL_PTCACHE_SIZE 12
nuclear@0 343 #endif
nuclear@0 344
nuclear@0 345 // ---------------------------------------------------------------------------
nuclear@0 346 /** @brief Set the size of the post-transform vertex cache to optimize the
nuclear@0 347 * vertices for. This configures the #aiProcess_ImproveCacheLocality step.
nuclear@0 348 *
nuclear@0 349 * The size is given in vertices. Of course you can't know how the vertex
nuclear@0 350 * format will exactly look like after the import returns, but you can still
nuclear@0 351 * guess what your meshes will probably have.
nuclear@0 352 * @note The default value is #PP_ICL_PTCACHE_SIZE. That results in slight
nuclear@0 353 * performance improvements for most nVidia/AMD cards since 2002.
nuclear@0 354 * Property type: integer.
nuclear@0 355 */
nuclear@0 356 #define AI_CONFIG_PP_ICL_PTCACHE_SIZE "PP_ICL_PTCACHE_SIZE"
nuclear@0 357
nuclear@0 358 // ---------------------------------------------------------------------------
nuclear@0 359 /** @brief Enumerates components of the aiScene and aiMesh data structures
nuclear@0 360 * that can be excluded from the import using the #aiPrpcess_RemoveComponent step.
nuclear@0 361 *
nuclear@0 362 * See the documentation to #aiProcess_RemoveComponent for more details.
nuclear@0 363 */
nuclear@0 364 enum aiComponent
nuclear@0 365 {
nuclear@0 366 /** Normal vectors */
nuclear@0 367 #ifdef SWIG
nuclear@0 368 aiComponent_NORMALS = 0x2,
nuclear@0 369 #else
nuclear@0 370 aiComponent_NORMALS = 0x2u,
nuclear@0 371 #endif
nuclear@0 372
nuclear@0 373 /** Tangents and bitangents go always together ... */
nuclear@0 374 #ifdef SWIG
nuclear@0 375 aiComponent_TANGENTS_AND_BITANGENTS = 0x4,
nuclear@0 376 #else
nuclear@0 377 aiComponent_TANGENTS_AND_BITANGENTS = 0x4u,
nuclear@0 378 #endif
nuclear@0 379
nuclear@0 380 /** ALL color sets
nuclear@0 381 * Use aiComponent_COLORn(N) to specify the N'th set */
nuclear@0 382 aiComponent_COLORS = 0x8,
nuclear@0 383
nuclear@0 384 /** ALL texture UV sets
nuclear@0 385 * aiComponent_TEXCOORDn(N) to specify the N'th set */
nuclear@0 386 aiComponent_TEXCOORDS = 0x10,
nuclear@0 387
nuclear@0 388 /** Removes all bone weights from all meshes.
nuclear@0 389 * The scenegraph nodes corresponding to the bones are NOT removed.
nuclear@0 390 * use the #aiProcess_OptimizeGraph step to do this */
nuclear@0 391 aiComponent_BONEWEIGHTS = 0x20,
nuclear@0 392
nuclear@0 393 /** Removes all node animations (aiScene::mAnimations).
nuclear@0 394 * The corresponding scenegraph nodes are NOT removed.
nuclear@0 395 * use the #aiProcess_OptimizeGraph step to do this */
nuclear@0 396 aiComponent_ANIMATIONS = 0x40,
nuclear@0 397
nuclear@0 398 /** Removes all embedded textures (aiScene::mTextures) */
nuclear@0 399 aiComponent_TEXTURES = 0x80,
nuclear@0 400
nuclear@0 401 /** Removes all light sources (aiScene::mLights).
nuclear@0 402 * The corresponding scenegraph nodes are NOT removed.
nuclear@0 403 * use the #aiProcess_OptimizeGraph step to do this */
nuclear@0 404 aiComponent_LIGHTS = 0x100,
nuclear@0 405
nuclear@0 406 /** Removes all cameras (aiScene::mCameras).
nuclear@0 407 * The corresponding scenegraph nodes are NOT removed.
nuclear@0 408 * use the #aiProcess_OptimizeGraph step to do this */
nuclear@0 409 aiComponent_CAMERAS = 0x200,
nuclear@0 410
nuclear@0 411 /** Removes all meshes (aiScene::mMeshes). */
nuclear@0 412 aiComponent_MESHES = 0x400,
nuclear@0 413
nuclear@0 414 /** Removes all materials. One default material will
nuclear@0 415 * be generated, so aiScene::mNumMaterials will be 1. */
nuclear@0 416 aiComponent_MATERIALS = 0x800,
nuclear@0 417
nuclear@0 418
nuclear@0 419 /** This value is not used. It is just there to force the
nuclear@0 420 * compiler to map this enum to a 32 Bit integer. */
nuclear@0 421 #ifndef SWIG
nuclear@0 422 _aiComponent_Force32Bit = 0x9fffffff
nuclear@0 423 #endif
nuclear@0 424 };
nuclear@0 425
nuclear@0 426 // Remove a specific color channel 'n'
nuclear@0 427 #define aiComponent_COLORSn(n) (1u << (n+20u))
nuclear@0 428
nuclear@0 429 // Remove a specific UV channel 'n'
nuclear@0 430 #define aiComponent_TEXCOORDSn(n) (1u << (n+25u))
nuclear@0 431
nuclear@0 432 // ---------------------------------------------------------------------------
nuclear@0 433 /** @brief Input parameter to the #aiProcess_RemoveComponent step:
nuclear@0 434 * Specifies the parts of the data structure to be removed.
nuclear@0 435 *
nuclear@0 436 * See the documentation to this step for further details. The property
nuclear@0 437 * is expected to be an integer, a bitwise combination of the
nuclear@0 438 * #aiComponent flags defined above in this header. The default
nuclear@0 439 * value is 0. Important: if no valid mesh is remaining after the
nuclear@0 440 * step has been executed (e.g you thought it was funny to specify ALL
nuclear@0 441 * of the flags defined above) the import FAILS. Mainly because there is
nuclear@0 442 * no data to work on anymore ...
nuclear@0 443 */
nuclear@0 444 #define AI_CONFIG_PP_RVC_FLAGS \
nuclear@0 445 "PP_RVC_FLAGS"
nuclear@0 446
nuclear@0 447 // ---------------------------------------------------------------------------
nuclear@0 448 /** @brief Input parameter to the #aiProcess_SortByPType step:
nuclear@0 449 * Specifies which primitive types are removed by the step.
nuclear@0 450 *
nuclear@0 451 * This is a bitwise combination of the aiPrimitiveType flags.
nuclear@0 452 * Specifying all of them is illegal, of course. A typical use would
nuclear@0 453 * be to exclude all line and point meshes from the import. This
nuclear@0 454 * is an integer property, its default value is 0.
nuclear@0 455 */
nuclear@0 456 #define AI_CONFIG_PP_SBP_REMOVE \
nuclear@0 457 "PP_SBP_REMOVE"
nuclear@0 458
nuclear@0 459 // ---------------------------------------------------------------------------
nuclear@0 460 /** @brief Input parameter to the #aiProcess_FindInvalidData step:
nuclear@0 461 * Specifies the floating-point accuracy for animation values. The step
nuclear@0 462 * checks for animation tracks where all frame values are absolutely equal
nuclear@0 463 * and removes them. This tweakable controls the epsilon for floating-point
nuclear@0 464 * comparisons - two keys are considered equal if the invariant
nuclear@0 465 * abs(n0-n1)>epsilon holds true for all vector respectively quaternion
nuclear@0 466 * components. The default value is 0.f - comparisons are exact then.
nuclear@0 467 */
nuclear@0 468 #define AI_CONFIG_PP_FID_ANIM_ACCURACY \
nuclear@0 469 "PP_FID_ANIM_ACCURACY"
nuclear@0 470
nuclear@0 471
nuclear@0 472 // TransformUVCoords evaluates UV scalings
nuclear@0 473 #define AI_UVTRAFO_SCALING 0x1
nuclear@0 474
nuclear@0 475 // TransformUVCoords evaluates UV rotations
nuclear@0 476 #define AI_UVTRAFO_ROTATION 0x2
nuclear@0 477
nuclear@0 478 // TransformUVCoords evaluates UV translation
nuclear@0 479 #define AI_UVTRAFO_TRANSLATION 0x4
nuclear@0 480
nuclear@0 481 // Everything baked together -> default value
nuclear@0 482 #define AI_UVTRAFO_ALL (AI_UVTRAFO_SCALING | AI_UVTRAFO_ROTATION | AI_UVTRAFO_TRANSLATION)
nuclear@0 483
nuclear@0 484 // ---------------------------------------------------------------------------
nuclear@0 485 /** @brief Input parameter to the #aiProcess_TransformUVCoords step:
nuclear@0 486 * Specifies which UV transformations are evaluated.
nuclear@0 487 *
nuclear@0 488 * This is a bitwise combination of the AI_UVTRAFO_XXX flags (integer
nuclear@0 489 * property, of course). By default all transformations are enabled
nuclear@0 490 * (AI_UVTRAFO_ALL).
nuclear@0 491 */
nuclear@0 492 #define AI_CONFIG_PP_TUV_EVALUATE \
nuclear@0 493 "PP_TUV_EVALUATE"
nuclear@0 494
nuclear@0 495 // ---------------------------------------------------------------------------
nuclear@0 496 /** @brief A hint to assimp to favour speed against import quality.
nuclear@0 497 *
nuclear@0 498 * Enabling this option may result in faster loading, but it needn't.
nuclear@0 499 * It represents just a hint to loaders and post-processing steps to use
nuclear@0 500 * faster code paths, if possible.
nuclear@0 501 * This property is expected to be an integer, != 0 stands for true.
nuclear@0 502 * The default value is 0.
nuclear@0 503 */
nuclear@0 504 #define AI_CONFIG_FAVOUR_SPEED \
nuclear@0 505 "FAVOUR_SPEED"
nuclear@0 506
nuclear@0 507
nuclear@0 508 // ###########################################################################
nuclear@0 509 // IMPORTER SETTINGS
nuclear@0 510 // Various stuff to fine-tune the behaviour of specific importer plugins.
nuclear@0 511 // ###########################################################################
nuclear@0 512
nuclear@0 513
nuclear@0 514 // ---------------------------------------------------------------------------
nuclear@0 515 /** @brief Set whether the fbx importer will merge all geometry layers present
nuclear@0 516 * in the source file or take only the first.
nuclear@0 517 *
nuclear@0 518 * The default value is true (1)
nuclear@0 519 * Property type: bool
nuclear@0 520 */
nuclear@0 521 #define AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS \
nuclear@0 522 "IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS"
nuclear@0 523
nuclear@0 524 // ---------------------------------------------------------------------------
nuclear@0 525 /** @brief Set whether the fbx importer will read all materials present in the
nuclear@0 526 * source file or take only the referenced materials.
nuclear@0 527 *
nuclear@0 528 * This is void unless IMPORT_FBX_READ_MATERIALS=1.
nuclear@0 529 *
nuclear@0 530 * The default value is false (0)
nuclear@0 531 * Property type: bool
nuclear@0 532 */
nuclear@0 533 #define AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS \
nuclear@0 534 "IMPORT_FBX_READ_ALL_MATERIALS"
nuclear@0 535
nuclear@0 536 // ---------------------------------------------------------------------------
nuclear@0 537 /** @brief Set whether the fbx importer will read materials.
nuclear@0 538 *
nuclear@0 539 * The default value is true (1)
nuclear@0 540 * Property type: bool
nuclear@0 541 */
nuclear@0 542 #define AI_CONFIG_IMPORT_FBX_READ_MATERIALS \
nuclear@0 543 "IMPORT_FBX_READ_MATERIALS"
nuclear@0 544
nuclear@0 545 // ---------------------------------------------------------------------------
nuclear@0 546 /** @brief Set whether the fbx importer will read cameras.
nuclear@0 547 *
nuclear@0 548 * The default value is true (1)
nuclear@0 549 * Property type: bool
nuclear@0 550 */
nuclear@0 551 #define AI_CONFIG_IMPORT_FBX_READ_CAMERAS \
nuclear@0 552 "IMPORT_FBX_READ_CAMERAS"
nuclear@0 553
nuclear@0 554 // ---------------------------------------------------------------------------
nuclear@0 555 /** @brief Set whether the fbx importer will read light sources.
nuclear@0 556 *
nuclear@0 557 * The default value is true (1)
nuclear@0 558 * Property type: bool
nuclear@0 559 */
nuclear@0 560 #define AI_CONFIG_IMPORT_FBX_READ_LIGHTS \
nuclear@0 561 "IMPORT_FBX_READ_LIGHTS"
nuclear@0 562
nuclear@0 563 // ---------------------------------------------------------------------------
nuclear@0 564 /** @brief Set whether the fbx importer will read animations.
nuclear@0 565 *
nuclear@0 566 * The default value is true (1)
nuclear@0 567 * Property type: bool
nuclear@0 568 */
nuclear@0 569 #define AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS \
nuclear@0 570 "IMPORT_FBX_READ_ANIMATIONS"
nuclear@0 571
nuclear@0 572 // ---------------------------------------------------------------------------
nuclear@0 573 /** @brief Set whether the fbx importer will act in strict mode in which only
nuclear@0 574 * FBX 2013 is supported and any other sub formats are rejected. FBX 2013
nuclear@0 575 * is the primary target for the importer, so this format is best
nuclear@0 576 * supported and well-tested.
nuclear@0 577 *
nuclear@0 578 * The default value is false (0)
nuclear@0 579 * Property type: bool
nuclear@0 580 */
nuclear@0 581 #define AI_CONFIG_IMPORT_FBX_STRICT_MODE \
nuclear@0 582 "IMPORT_FBX_STRICT_MODE"
nuclear@0 583
nuclear@0 584 // ---------------------------------------------------------------------------
nuclear@0 585 /** @brief Set whether the fbx importer will preserve pivot points for
nuclear@0 586 * transformations (as extra nodes). If set to false, pivots and offsets
nuclear@0 587 * will be evaluated whenever possible.
nuclear@0 588 *
nuclear@0 589 * The default value is true (1)
nuclear@0 590 * Property type: bool
nuclear@0 591 */
nuclear@0 592 #define AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS \
nuclear@0 593 "IMPORT_FBX_PRESERVE_PIVOTS"
nuclear@0 594
nuclear@0 595 // ---------------------------------------------------------------------------
nuclear@0 596 /** @brief Specifies whether the importer will drop empty animation curves or
nuclear@0 597 * animation curves which match the bind pose transformation over their
nuclear@0 598 * entire defined range.
nuclear@0 599 *
nuclear@0 600 * The default value is true (1)
nuclear@0 601 * Property type: bool
nuclear@0 602 */
nuclear@0 603 #define AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES \
nuclear@0 604 "IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES"
nuclear@0 605
nuclear@0 606
nuclear@0 607
nuclear@0 608 // ---------------------------------------------------------------------------
nuclear@0 609 /** @brief Set the vertex animation keyframe to be imported
nuclear@0 610 *
nuclear@0 611 * ASSIMP does not support vertex keyframes (only bone animation is supported).
nuclear@0 612 * The library reads only one frame of models with vertex animations.
nuclear@0 613 * By default this is the first frame.
nuclear@0 614 * \note The default value is 0. This option applies to all importers.
nuclear@0 615 * However, it is also possible to override the global setting
nuclear@0 616 * for a specific loader. You can use the AI_CONFIG_IMPORT_XXX_KEYFRAME
nuclear@0 617 * options (where XXX is a placeholder for the file format for which you
nuclear@0 618 * want to override the global setting).
nuclear@0 619 * Property type: integer.
nuclear@0 620 */
nuclear@0 621 #define AI_CONFIG_IMPORT_GLOBAL_KEYFRAME "IMPORT_GLOBAL_KEYFRAME"
nuclear@0 622
nuclear@0 623 #define AI_CONFIG_IMPORT_MD3_KEYFRAME "IMPORT_MD3_KEYFRAME"
nuclear@0 624 #define AI_CONFIG_IMPORT_MD2_KEYFRAME "IMPORT_MD2_KEYFRAME"
nuclear@0 625 #define AI_CONFIG_IMPORT_MDL_KEYFRAME "IMPORT_MDL_KEYFRAME"
nuclear@0 626 #define AI_CONFIG_IMPORT_MDC_KEYFRAME "IMPORT_MDC_KEYFRAME"
nuclear@0 627 #define AI_CONFIG_IMPORT_SMD_KEYFRAME "IMPORT_SMD_KEYFRAME"
nuclear@0 628 #define AI_CONFIG_IMPORT_UNREAL_KEYFRAME "IMPORT_UNREAL_KEYFRAME"
nuclear@0 629
nuclear@0 630
nuclear@0 631 // ---------------------------------------------------------------------------
nuclear@0 632 /** @brief Configures the AC loader to collect all surfaces which have the
nuclear@0 633 * "Backface cull" flag set in separate meshes.
nuclear@0 634 *
nuclear@0 635 * Property type: bool. Default value: true.
nuclear@0 636 */
nuclear@0 637 #define AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL \
nuclear@0 638 "IMPORT_AC_SEPARATE_BFCULL"
nuclear@0 639
nuclear@0 640 // ---------------------------------------------------------------------------
nuclear@0 641 /** @brief Configures whether the AC loader evaluates subdivision surfaces (
nuclear@0 642 * indicated by the presence of the 'subdiv' attribute in the file). By
nuclear@0 643 * default, Assimp performs the subdivision using the standard
nuclear@0 644 * Catmull-Clark algorithm
nuclear@0 645 *
nuclear@0 646 * * Property type: bool. Default value: true.
nuclear@0 647 */
nuclear@0 648 #define AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION \
nuclear@0 649 "IMPORT_AC_EVAL_SUBDIVISION"
nuclear@0 650
nuclear@0 651 // ---------------------------------------------------------------------------
nuclear@0 652 /** @brief Configures the UNREAL 3D loader to separate faces with different
nuclear@0 653 * surface flags (e.g. two-sided vs. single-sided).
nuclear@0 654 *
nuclear@0 655 * * Property type: bool. Default value: true.
nuclear@0 656 */
nuclear@0 657 #define AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS \
nuclear@0 658 "UNREAL_HANDLE_FLAGS"
nuclear@0 659
nuclear@0 660 // ---------------------------------------------------------------------------
nuclear@0 661 /** @brief Configures the terragen import plugin to compute uv's for
nuclear@0 662 * terrains, if not given. Furthermore a default texture is assigned.
nuclear@0 663 *
nuclear@0 664 * UV coordinates for terrains are so simple to compute that you'll usually
nuclear@0 665 * want to compute them on your own, if you need them. This option is intended
nuclear@0 666 * for model viewers which want to offer an easy way to apply textures to
nuclear@0 667 * terrains.
nuclear@0 668 * * Property type: bool. Default value: false.
nuclear@0 669 */
nuclear@0 670 #define AI_CONFIG_IMPORT_TER_MAKE_UVS \
nuclear@0 671 "IMPORT_TER_MAKE_UVS"
nuclear@0 672
nuclear@0 673 // ---------------------------------------------------------------------------
nuclear@0 674 /** @brief Configures the ASE loader to always reconstruct normal vectors
nuclear@0 675 * basing on the smoothing groups loaded from the file.
nuclear@0 676 *
nuclear@0 677 * Some ASE files have carry invalid normals, other don't.
nuclear@0 678 * * Property type: bool. Default value: true.
nuclear@0 679 */
nuclear@0 680 #define AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS \
nuclear@0 681 "IMPORT_ASE_RECONSTRUCT_NORMALS"
nuclear@0 682
nuclear@0 683 // ---------------------------------------------------------------------------
nuclear@0 684 /** @brief Configures the M3D loader to detect and process multi-part
nuclear@0 685 * Quake player models.
nuclear@0 686 *
nuclear@0 687 * These models usually consist of 3 files, lower.md3, upper.md3 and
nuclear@0 688 * head.md3. If this property is set to true, Assimp will try to load and
nuclear@0 689 * combine all three files if one of them is loaded.
nuclear@0 690 * Property type: bool. Default value: true.
nuclear@0 691 */
nuclear@0 692 #define AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART \
nuclear@0 693 "IMPORT_MD3_HANDLE_MULTIPART"
nuclear@0 694
nuclear@0 695 // ---------------------------------------------------------------------------
nuclear@0 696 /** @brief Tells the MD3 loader which skin files to load.
nuclear@0 697 *
nuclear@0 698 * When loading MD3 files, Assimp checks whether a file
nuclear@0 699 * <md3_file_name>_<skin_name>.skin is existing. These files are used by
nuclear@0 700 * Quake III to be able to assign different skins (e.g. red and blue team)
nuclear@0 701 * to models. 'default', 'red', 'blue' are typical skin names.
nuclear@0 702 * Property type: String. Default value: "default".
nuclear@0 703 */
nuclear@0 704 #define AI_CONFIG_IMPORT_MD3_SKIN_NAME \
nuclear@0 705 "IMPORT_MD3_SKIN_NAME"
nuclear@0 706
nuclear@0 707 // ---------------------------------------------------------------------------
nuclear@0 708 /** @brief Specify the Quake 3 shader file to be used for a particular
nuclear@0 709 * MD3 file. This can also be a search path.
nuclear@0 710 *
nuclear@0 711 * By default Assimp's behaviour is as follows: If a MD3 file
nuclear@0 712 * <tt><any_path>/models/<any_q3_subdir>/<model_name>/<file_name>.md3</tt> is
nuclear@0 713 * loaded, the library tries to locate the corresponding shader file in
nuclear@0 714 * <tt><any_path>/scripts/<model_name>.shader</tt>. This property overrides this
nuclear@0 715 * behaviour. It can either specify a full path to the shader to be loaded
nuclear@0 716 * or alternatively the path (relative or absolute) to the directory where
nuclear@0 717 * the shaders for all MD3s to be loaded reside. Assimp attempts to open
nuclear@0 718 * <tt><dir>/<model_name>.shader</tt> first, <tt><dir>/<file_name>.shader</tt>
nuclear@0 719 * is the fallback file. Note that <dir> should have a terminal (back)slash.
nuclear@0 720 * Property type: String. Default value: n/a.
nuclear@0 721 */
nuclear@0 722 #define AI_CONFIG_IMPORT_MD3_SHADER_SRC \
nuclear@0 723 "IMPORT_MD3_SHADER_SRC"
nuclear@0 724
nuclear@0 725 // ---------------------------------------------------------------------------
nuclear@0 726 /** @brief Configures the LWO loader to load just one layer from the model.
nuclear@0 727 *
nuclear@0 728 * LWO files consist of layers and in some cases it could be useful to load
nuclear@0 729 * only one of them. This property can be either a string - which specifies
nuclear@0 730 * the name of the layer - or an integer - the index of the layer. If the
nuclear@0 731 * property is not set the whole LWO model is loaded. Loading fails if the
nuclear@0 732 * requested layer is not available. The layer index is zero-based and the
nuclear@0 733 * layer name may not be empty.<br>
nuclear@0 734 * Property type: Integer. Default value: all layers are loaded.
nuclear@0 735 */
nuclear@0 736 #define AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY \
nuclear@0 737 "IMPORT_LWO_ONE_LAYER_ONLY"
nuclear@0 738
nuclear@0 739 // ---------------------------------------------------------------------------
nuclear@0 740 /** @brief Configures the MD5 loader to not load the MD5ANIM file for
nuclear@0 741 * a MD5MESH file automatically.
nuclear@0 742 *
nuclear@0 743 * The default strategy is to look for a file with the same name but the
nuclear@0 744 * MD5ANIM extension in the same directory. If it is found, it is loaded
nuclear@0 745 * and combined with the MD5MESH file. This configuration option can be
nuclear@0 746 * used to disable this behaviour.
nuclear@0 747 *
nuclear@0 748 * * Property type: bool. Default value: false.
nuclear@0 749 */
nuclear@0 750 #define AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD \
nuclear@0 751 "IMPORT_MD5_NO_ANIM_AUTOLOAD"
nuclear@0 752
nuclear@0 753 // ---------------------------------------------------------------------------
nuclear@0 754 /** @brief Defines the begin of the time range for which the LWS loader
nuclear@0 755 * evaluates animations and computes aiNodeAnim's.
nuclear@0 756 *
nuclear@0 757 * Assimp provides full conversion of LightWave's envelope system, including
nuclear@0 758 * pre and post conditions. The loader computes linearly subsampled animation
nuclear@0 759 * chanels with the frame rate given in the LWS file. This property defines
nuclear@0 760 * the start time. Note: animation channels are only generated if a node
nuclear@0 761 * has at least one envelope with more tan one key assigned. This property.
nuclear@0 762 * is given in frames, '0' is the first frame. By default, if this property
nuclear@0 763 * is not set, the importer takes the animation start from the input LWS
nuclear@0 764 * file ('FirstFrame' line)<br>
nuclear@0 765 * Property type: Integer. Default value: taken from file.
nuclear@0 766 *
nuclear@0 767 * @see AI_CONFIG_IMPORT_LWS_ANIM_END - end of the imported time range
nuclear@0 768 */
nuclear@0 769 #define AI_CONFIG_IMPORT_LWS_ANIM_START \
nuclear@0 770 "IMPORT_LWS_ANIM_START"
nuclear@0 771 #define AI_CONFIG_IMPORT_LWS_ANIM_END \
nuclear@0 772 "IMPORT_LWS_ANIM_END"
nuclear@0 773
nuclear@0 774 // ---------------------------------------------------------------------------
nuclear@0 775 /** @brief Defines the output frame rate of the IRR loader.
nuclear@0 776 *
nuclear@0 777 * IRR animations are difficult to convert for Assimp and there will
nuclear@0 778 * always be a loss of quality. This setting defines how many keys per second
nuclear@0 779 * are returned by the converter.<br>
nuclear@0 780 * Property type: integer. Default value: 100
nuclear@0 781 */
nuclear@0 782 #define AI_CONFIG_IMPORT_IRR_ANIM_FPS \
nuclear@0 783 "IMPORT_IRR_ANIM_FPS"
nuclear@0 784
nuclear@0 785
nuclear@0 786 // ---------------------------------------------------------------------------
nuclear@0 787 /** @brief Ogre Importer will try to load this Materialfile.
nuclear@0 788 *
nuclear@0 789 * Ogre Meshes contain only the MaterialName, not the MaterialFile. If there
nuclear@0 790 * is no material file with the same name as the material, Ogre Importer will
nuclear@0 791 * try to load this file and search the material in it.
nuclear@0 792 * <br>
nuclear@0 793 * Property type: String. Default value: guessed.
nuclear@0 794 */
nuclear@0 795 #define AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE "IMPORT_OGRE_MATERIAL_FILE"
nuclear@0 796
nuclear@0 797
nuclear@0 798 // ---------------------------------------------------------------------------
nuclear@0 799 /** @brief Ogre Importer detect the texture usage from its filename
nuclear@0 800 *
nuclear@0 801 * Normally, a texture is loaded as a colormap, if no target is specified in the
nuclear@0 802 * materialfile. Is this switch is enabled, texture names ending with _n, _l, _s
nuclear@0 803 * are used as normalmaps, lightmaps or specularmaps.
nuclear@0 804 * <br>
nuclear@0 805 * Property type: Bool. Default value: false.
nuclear@0 806 */
nuclear@0 807 #define AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME "IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME"
nuclear@0 808
nuclear@0 809 /** @brief Specifies whether the IFC loader skips over IfcSpace elements.
nuclear@0 810 *
nuclear@0 811 * IfcSpace elements (and their geometric representations) are used to
nuclear@0 812 * represent, well, free space in a building storey.<br>
nuclear@0 813 * Property type: Bool. Default value: true.
nuclear@0 814 */
nuclear@0 815 #define AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS "IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS"
nuclear@0 816
nuclear@0 817
nuclear@0 818 // ---------------------------------------------------------------------------
nuclear@0 819 /** @brief Specifies whether the IFC loader skips over
nuclear@0 820 * shape representations of type 'Curve2D'.
nuclear@0 821 *
nuclear@0 822 * A lot of files contain both a faceted mesh representation and a outline
nuclear@0 823 * with a presentation type of 'Curve2D'. Currently Assimp doesn't convert those,
nuclear@0 824 * so turning this option off just clutters the log with errors.<br>
nuclear@0 825 * Property type: Bool. Default value: true.
nuclear@0 826 */
nuclear@0 827 #define AI_CONFIG_IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS "IMPORT_IFC_SKIP_CURVE_REPRESENTATIONS"
nuclear@0 828
nuclear@0 829 // ---------------------------------------------------------------------------
nuclear@0 830 /** @brief Specifies whether the IFC loader will use its own, custom triangulation
nuclear@0 831 * algorithm to triangulate wall and floor meshes.
nuclear@0 832 *
nuclear@0 833 * If this property is set to false, walls will be either triangulated by
nuclear@0 834 * #aiProcess_Triangulate or will be passed through as huge polygons with
nuclear@0 835 * faked holes (i.e. holes that are connected with the outer boundary using
nuclear@0 836 * a dummy edge). It is highly recommended to set this property to true
nuclear@0 837 * if you want triangulated data because #aiProcess_Triangulate is known to
nuclear@0 838 * have problems with the kind of polygons that the IFC loader spits out for
nuclear@0 839 * complicated meshes.
nuclear@0 840 * Property type: Bool. Default value: true.
nuclear@0 841 */
nuclear@0 842 #define AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION "IMPORT_IFC_CUSTOM_TRIANGULATION"
nuclear@0 843
nuclear@0 844 #endif // !! AI_CONFIG_H_INC