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 |