vrshoot
diff libs/assimp/assimp/cimport.h @ 0:b2f14e535253
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 01 Feb 2014 19:58:19 +0200 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/libs/assimp/assimp/cimport.h Sat Feb 01 19:58:19 2014 +0200 1.3 @@ -0,0 +1,495 @@ 1.4 +/* 1.5 +--------------------------------------------------------------------------- 1.6 +Open Asset Import Library (assimp) 1.7 +--------------------------------------------------------------------------- 1.8 + 1.9 +Copyright (c) 2006-2012, assimp team 1.10 + 1.11 +All rights reserved. 1.12 + 1.13 +Redistribution and use of this software in source and binary forms, 1.14 +with or without modification, are permitted provided that the following 1.15 +conditions are met: 1.16 + 1.17 +* Redistributions of source code must retain the above 1.18 + copyright notice, this list of conditions and the 1.19 + following disclaimer. 1.20 + 1.21 +* Redistributions in binary form must reproduce the above 1.22 + copyright notice, this list of conditions and the 1.23 + following disclaimer in the documentation and/or other 1.24 + materials provided with the distribution. 1.25 + 1.26 +* Neither the name of the assimp team, nor the names of its 1.27 + contributors may be used to endorse or promote products 1.28 + derived from this software without specific prior 1.29 + written permission of the assimp team. 1.30 + 1.31 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1.32 +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1.33 +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1.34 +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1.35 +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.36 +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.37 +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1.38 +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1.39 +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.40 +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.41 +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.42 +--------------------------------------------------------------------------- 1.43 +*/ 1.44 + 1.45 +/** @file assimp.h 1.46 + * @brief Defines the C-API to the Open Asset Import Library. 1.47 + */ 1.48 +#ifndef AI_ASSIMP_H_INC 1.49 +#define AI_ASSIMP_H_INC 1.50 +#include "types.h" 1.51 + 1.52 +#ifdef __cplusplus 1.53 +extern "C" { 1.54 +#endif 1.55 + 1.56 +struct aiScene; // aiScene.h 1.57 +struct aiFileIO; // aiFileIO.h 1.58 +typedef void (*aiLogStreamCallback)(const char* /* message */, char* /* user */); 1.59 + 1.60 +// -------------------------------------------------------------------------------- 1.61 +/** C-API: Represents a log stream. A log stream receives all log messages and 1.62 + * streams them _somewhere_. 1.63 + * @see aiGetPredefinedLogStream 1.64 + * @see aiAttachLogStream 1.65 + * @see aiDetachLogStream */ 1.66 +// -------------------------------------------------------------------------------- 1.67 +struct aiLogStream 1.68 +{ 1.69 + /** callback to be called */ 1.70 + aiLogStreamCallback callback; 1.71 + 1.72 + /** user data to be passed to the callback */ 1.73 + char* user; 1.74 +}; 1.75 + 1.76 + 1.77 +// -------------------------------------------------------------------------------- 1.78 +/** C-API: Represents an opaque set of settings to be used during importing. 1.79 + * @see aiCreatePropertyStore 1.80 + * @see aiReleasePropertyStore 1.81 + * @see aiImportFileExWithProperties 1.82 + * @see aiSetPropertyInteger 1.83 + * @see aiSetPropertyFloat 1.84 + * @see aiSetPropertyString 1.85 + */ 1.86 +// -------------------------------------------------------------------------------- 1.87 +struct aiPropertyStore { char sentinel; }; 1.88 + 1.89 +/** Our own C boolean type */ 1.90 +typedef int aiBool; 1.91 + 1.92 +#define AI_FALSE 0 1.93 +#define AI_TRUE 1 1.94 + 1.95 +// -------------------------------------------------------------------------------- 1.96 +/** Reads the given file and returns its content. 1.97 + * 1.98 + * If the call succeeds, the imported data is returned in an aiScene structure. 1.99 + * The data is intended to be read-only, it stays property of the ASSIMP 1.100 + * library and will be stable until aiReleaseImport() is called. After you're 1.101 + * done with it, call aiReleaseImport() to free the resources associated with 1.102 + * this file. If the import fails, NULL is returned instead. Call 1.103 + * aiGetErrorString() to retrieve a human-readable error text. 1.104 + * @param pFile Path and filename of the file to be imported, 1.105 + * expected to be a null-terminated c-string. NULL is not a valid value. 1.106 + * @param pFlags Optional post processing steps to be executed after 1.107 + * a successful import. Provide a bitwise combination of the 1.108 + * #aiPostProcessSteps flags. 1.109 + * @return Pointer to the imported data or NULL if the import failed. 1.110 + */ 1.111 +ASSIMP_API const C_STRUCT aiScene* aiImportFile( 1.112 + const char* pFile, 1.113 + unsigned int pFlags); 1.114 + 1.115 +// -------------------------------------------------------------------------------- 1.116 +/** Reads the given file using user-defined I/O functions and returns 1.117 + * its content. 1.118 + * 1.119 + * If the call succeeds, the imported data is returned in an aiScene structure. 1.120 + * The data is intended to be read-only, it stays property of the ASSIMP 1.121 + * library and will be stable until aiReleaseImport() is called. After you're 1.122 + * done with it, call aiReleaseImport() to free the resources associated with 1.123 + * this file. If the import fails, NULL is returned instead. Call 1.124 + * aiGetErrorString() to retrieve a human-readable error text. 1.125 + * @param pFile Path and filename of the file to be imported, 1.126 + * expected to be a null-terminated c-string. NULL is not a valid value. 1.127 + * @param pFlags Optional post processing steps to be executed after 1.128 + * a successful import. Provide a bitwise combination of the 1.129 + * #aiPostProcessSteps flags. 1.130 + * @param pFS aiFileIO structure. Will be used to open the model file itself 1.131 + * and any other files the loader needs to open. Pass NULL to use the default 1.132 + * implementation. 1.133 + * @return Pointer to the imported data or NULL if the import failed. 1.134 + * @note Include <aiFileIO.h> for the definition of #aiFileIO. 1.135 + */ 1.136 +ASSIMP_API const C_STRUCT aiScene* aiImportFileEx( 1.137 + const char* pFile, 1.138 + unsigned int pFlags, 1.139 + C_STRUCT aiFileIO* pFS); 1.140 + 1.141 +// -------------------------------------------------------------------------------- 1.142 +/** Same as #aiImportFileEx, but adds an extra parameter containing importer settings. 1.143 + * 1.144 + * @param pProps #aiPropertyStore instance containing import settings. 1.145 + * @see aiImportFileEx 1.146 + */ 1.147 +ASSIMP_API const C_STRUCT aiScene* aiImportFileExWithProperties( 1.148 + const char* pFile, 1.149 + unsigned int pFlags, 1.150 + C_STRUCT aiFileIO* pFS, 1.151 + const C_STRUCT aiPropertyStore* pProps); 1.152 + 1.153 +// -------------------------------------------------------------------------------- 1.154 +/** Reads the given file from a given memory buffer, 1.155 + * 1.156 + * If the call succeeds, the contents of the file are returned as a pointer to an 1.157 + * aiScene object. The returned data is intended to be read-only, the importer keeps 1.158 + * ownership of the data and will destroy it upon destruction. If the import fails, 1.159 + * NULL is returned. 1.160 + * A human-readable error description can be retrieved by calling aiGetErrorString(). 1.161 + * @param pBuffer Pointer to the file data 1.162 + * @param pLength Length of pBuffer, in bytes 1.163 + * @param pFlags Optional post processing steps to be executed after 1.164 + * a successful import. Provide a bitwise combination of the 1.165 + * #aiPostProcessSteps flags. If you wish to inspect the imported 1.166 + * scene first in order to fine-tune your post-processing setup, 1.167 + * consider to use #aiApplyPostProcessing(). 1.168 + * @param pHint An additional hint to the library. If this is a non empty string, 1.169 + * the library looks for a loader to support the file extension specified by pHint 1.170 + * and passes the file to the first matching loader. If this loader is unable to 1.171 + * completely the request, the library continues and tries to determine the file 1.172 + * format on its own, a task that may or may not be successful. 1.173 + * Check the return value, and you'll know ... 1.174 + * @return A pointer to the imported data, NULL if the import failed. 1.175 + * 1.176 + * @note This is a straightforward way to decode models from memory 1.177 + * buffers, but it doesn't handle model formats that spread their 1.178 + * data across multiple files or even directories. Examples include 1.179 + * OBJ or MD3, which outsource parts of their material info into 1.180 + * external scripts. If you need full functionality, provide 1.181 + * a custom IOSystem to make Assimp find these files and use 1.182 + * the regular aiImportFileEx()/aiImportFileExWithProperties() API. 1.183 + */ 1.184 +ASSIMP_API const C_STRUCT aiScene* aiImportFileFromMemory( 1.185 + const char* pBuffer, 1.186 + unsigned int pLength, 1.187 + unsigned int pFlags, 1.188 + const char* pHint); 1.189 + 1.190 +// -------------------------------------------------------------------------------- 1.191 +/** Same as #aiImportFileFromMemory, but adds an extra parameter containing importer settings. 1.192 + * 1.193 + * @param pProps #aiPropertyStore instance containing import settings. 1.194 + * @see aiImportFileFromMemory 1.195 + */ 1.196 +ASSIMP_API const C_STRUCT aiScene* aiImportFileFromMemoryWithProperties( 1.197 + const char* pBuffer, 1.198 + unsigned int pLength, 1.199 + unsigned int pFlags, 1.200 + const char* pHint, 1.201 + const C_STRUCT aiPropertyStore* pProps); 1.202 + 1.203 +// -------------------------------------------------------------------------------- 1.204 +/** Apply post-processing to an already-imported scene. 1.205 + * 1.206 + * This is strictly equivalent to calling #aiImportFile()/#aiImportFileEx with the 1.207 + * same flags. However, you can use this separate function to inspect the imported 1.208 + * scene first to fine-tune your post-processing setup. 1.209 + * @param pScene Scene to work on. 1.210 + * @param pFlags Provide a bitwise combination of the #aiPostProcessSteps flags. 1.211 + * @return A pointer to the post-processed data. Post processing is done in-place, 1.212 + * meaning this is still the same #aiScene which you passed for pScene. However, 1.213 + * _if_ post-processing failed, the scene could now be NULL. That's quite a rare 1.214 + * case, post processing steps are not really designed to 'fail'. To be exact, 1.215 + * the #aiProcess_ValidateDS flag is currently the only post processing step 1.216 + * which can actually cause the scene to be reset to NULL. 1.217 + */ 1.218 +ASSIMP_API const C_STRUCT aiScene* aiApplyPostProcessing( 1.219 + const C_STRUCT aiScene* pScene, 1.220 + unsigned int pFlags); 1.221 + 1.222 +// -------------------------------------------------------------------------------- 1.223 +/** Get one of the predefine log streams. This is the quick'n'easy solution to 1.224 + * access Assimp's log system. Attaching a log stream can slightly reduce Assimp's 1.225 + * overall import performance. 1.226 + * 1.227 + * Usage is rather simple (this will stream the log to a file, named log.txt, and 1.228 + * the stdout stream of the process: 1.229 + * @code 1.230 + * struct aiLogStream c; 1.231 + * c = aiGetPredefinedLogStream(aiDefaultLogStream_FILE,"log.txt"); 1.232 + * aiAttachLogStream(&c); 1.233 + * c = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL); 1.234 + * aiAttachLogStream(&c); 1.235 + * @endcode 1.236 + * 1.237 + * @param pStreams One of the #aiDefaultLogStream enumerated values. 1.238 + * @param file Solely for the #aiDefaultLogStream_FILE flag: specifies the file to write to. 1.239 + * Pass NULL for all other flags. 1.240 + * @return The log stream. callback is set to NULL if something went wrong. 1.241 + */ 1.242 +ASSIMP_API C_STRUCT aiLogStream aiGetPredefinedLogStream( 1.243 + C_ENUM aiDefaultLogStream pStreams, 1.244 + const char* file); 1.245 + 1.246 +// -------------------------------------------------------------------------------- 1.247 +/** Attach a custom log stream to the libraries' logging system. 1.248 + * 1.249 + * Attaching a log stream can slightly reduce Assimp's overall import 1.250 + * performance. Multiple log-streams can be attached. 1.251 + * @param stream Describes the new log stream. 1.252 + * @note To ensure proepr destruction of the logging system, you need to manually 1.253 + * call aiDetachLogStream() on every single log stream you attach. 1.254 + * Alternatively (for the lazy folks) #aiDetachAllLogStreams is provided. 1.255 + */ 1.256 +ASSIMP_API void aiAttachLogStream( 1.257 + const C_STRUCT aiLogStream* stream); 1.258 + 1.259 +// -------------------------------------------------------------------------------- 1.260 +/** Enable verbose logging. Verbose logging includes debug-related stuff and 1.261 + * detailed import statistics. This can have severe impact on import performance 1.262 + * and memory consumption. However, it might be useful to find out why a file 1.263 + * didn't read correctly. 1.264 + * @param d AI_TRUE or AI_FALSE, your decision. 1.265 + */ 1.266 +ASSIMP_API void aiEnableVerboseLogging(aiBool d); 1.267 + 1.268 +// -------------------------------------------------------------------------------- 1.269 +/** Detach a custom log stream from the libraries' logging system. 1.270 + * 1.271 + * This is the counterpart of #aiAttachPredefinedLogStream. If you attached a stream, 1.272 + * don't forget to detach it again. 1.273 + * @param stream The log stream to be detached. 1.274 + * @return AI_SUCCESS if the log stream has been detached successfully. 1.275 + * @see aiDetachAllLogStreams 1.276 + */ 1.277 +ASSIMP_API C_ENUM aiReturn aiDetachLogStream( 1.278 + const C_STRUCT aiLogStream* stream); 1.279 + 1.280 +// -------------------------------------------------------------------------------- 1.281 +/** Detach all active log streams from the libraries' logging system. 1.282 + * This ensures that the logging system is terminated properly and all 1.283 + * resources allocated by it are actually freed. If you attached a stream, 1.284 + * don't forget to detach it again. 1.285 + * @see aiAttachLogStream 1.286 + * @see aiDetachLogStream 1.287 + */ 1.288 +ASSIMP_API void aiDetachAllLogStreams(void); 1.289 + 1.290 +// -------------------------------------------------------------------------------- 1.291 +/** Releases all resources associated with the given import process. 1.292 + * 1.293 + * Call this function after you're done with the imported data. 1.294 + * @param pScene The imported data to release. NULL is a valid value. 1.295 + */ 1.296 +ASSIMP_API void aiReleaseImport( 1.297 + const C_STRUCT aiScene* pScene); 1.298 + 1.299 +// -------------------------------------------------------------------------------- 1.300 +/** Returns the error text of the last failed import process. 1.301 + * 1.302 + * @return A textual description of the error that occurred at the last 1.303 + * import process. NULL if there was no error. There can't be an error if you 1.304 + * got a non-NULL #aiScene from #aiImportFile/#aiImportFileEx/#aiApplyPostProcessing. 1.305 + */ 1.306 +ASSIMP_API const char* aiGetErrorString(); 1.307 + 1.308 +// -------------------------------------------------------------------------------- 1.309 +/** Returns whether a given file extension is supported by ASSIMP 1.310 + * 1.311 + * @param szExtension Extension for which the function queries support for. 1.312 + * Must include a leading dot '.'. Example: ".3ds", ".md3" 1.313 + * @return AI_TRUE if the file extension is supported. 1.314 + */ 1.315 +ASSIMP_API aiBool aiIsExtensionSupported( 1.316 + const char* szExtension); 1.317 + 1.318 +// -------------------------------------------------------------------------------- 1.319 +/** Get a list of all file extensions supported by ASSIMP. 1.320 + * 1.321 + * If a file extension is contained in the list this does, of course, not 1.322 + * mean that ASSIMP is able to load all files with this extension. 1.323 + * @param szOut String to receive the extension list. 1.324 + * Format of the list: "*.3ds;*.obj;*.dae". NULL is not a valid parameter. 1.325 + */ 1.326 +ASSIMP_API void aiGetExtensionList( 1.327 + C_STRUCT aiString* szOut); 1.328 + 1.329 +// -------------------------------------------------------------------------------- 1.330 +/** Get the approximated storage required by an imported asset 1.331 + * @param pIn Input asset. 1.332 + * @param in Data structure to be filled. 1.333 + */ 1.334 +ASSIMP_API void aiGetMemoryRequirements( 1.335 + const C_STRUCT aiScene* pIn, 1.336 + C_STRUCT aiMemoryInfo* in); 1.337 + 1.338 + 1.339 + 1.340 +// -------------------------------------------------------------------------------- 1.341 +/** Create an empty property store. Property stores are used to collect import 1.342 + * settings. 1.343 + * @return New property store. Property stores need to be manually destroyed using 1.344 + * the #aiReleasePropertyStore API function. 1.345 + */ 1.346 +ASSIMP_API C_STRUCT aiPropertyStore* aiCreatePropertyStore(void); 1.347 + 1.348 +// -------------------------------------------------------------------------------- 1.349 +/** Delete a property store. 1.350 + * @param p Property store to be deleted. 1.351 + */ 1.352 +ASSIMP_API void aiReleasePropertyStore(C_STRUCT aiPropertyStore* p); 1.353 + 1.354 +// -------------------------------------------------------------------------------- 1.355 +/** Set an integer property. 1.356 + * 1.357 + * This is the C-version of #Assimp::Importer::SetPropertyInteger(). In the C 1.358 + * interface, properties are always shared by all imports. It is not possible to 1.359 + * specify them per import. 1.360 + * 1.361 + * @param szName Name of the configuration property to be set. All supported 1.362 + * public properties are defined in the config.h header file (#AI_CONFIG_XXX). 1.363 + * @param value New value for the property 1.364 + */ 1.365 +ASSIMP_API void aiSetImportPropertyInteger( 1.366 + C_STRUCT aiPropertyStore* store, 1.367 + const char* szName, 1.368 + int value); 1.369 + 1.370 +// -------------------------------------------------------------------------------- 1.371 +/** Set a floating-point property. 1.372 + * 1.373 + * This is the C-version of #Assimp::Importer::SetPropertyFloat(). In the C 1.374 + * interface, properties are always shared by all imports. It is not possible to 1.375 + * specify them per import. 1.376 + * 1.377 + * @param szName Name of the configuration property to be set. All supported 1.378 + * public properties are defined in the config.h header file (#AI_CONFIG_XXX). 1.379 + * @param value New value for the property 1.380 + */ 1.381 +ASSIMP_API void aiSetImportPropertyFloat( 1.382 + C_STRUCT aiPropertyStore* store, 1.383 + const char* szName, 1.384 + float value); 1.385 + 1.386 +// -------------------------------------------------------------------------------- 1.387 +/** Set a string property. 1.388 + * 1.389 + * This is the C-version of #Assimp::Importer::SetPropertyString(). In the C 1.390 + * interface, properties are always shared by all imports. It is not possible to 1.391 + * specify them per import. 1.392 + * 1.393 + * @param property store to modify. Use #aiCreatePropertyStore to obtain a store. 1.394 + * @param szName Name of the configuration property to be set. All supported 1.395 + * public properties are defined in the config.h header file (#AI_CONFIG_XXX). 1.396 + * @param value New value for the property 1.397 + */ 1.398 +ASSIMP_API void aiSetImportPropertyString( 1.399 + C_STRUCT aiPropertyStore* store, 1.400 + const char* szName, 1.401 + const C_STRUCT aiString* st); 1.402 + 1.403 +// -------------------------------------------------------------------------------- 1.404 +/** Construct a quaternion from a 3x3 rotation matrix. 1.405 + * @param quat Receives the output quaternion. 1.406 + * @param mat Matrix to 'quaternionize'. 1.407 + * @see aiQuaternion(const aiMatrix3x3& pRotMatrix) 1.408 + */ 1.409 +ASSIMP_API void aiCreateQuaternionFromMatrix( 1.410 + C_STRUCT aiQuaternion* quat, 1.411 + const C_STRUCT aiMatrix3x3* mat); 1.412 + 1.413 +// -------------------------------------------------------------------------------- 1.414 +/** Decompose a transformation matrix into its rotational, translational and 1.415 + * scaling components. 1.416 + * 1.417 + * @param mat Matrix to decompose 1.418 + * @param scaling Receives the scaling component 1.419 + * @param rotation Receives the rotational component 1.420 + * @param position Receives the translational component. 1.421 + * @see aiMatrix4x4::Decompose (aiVector3D&, aiQuaternion&, aiVector3D&) const; 1.422 + */ 1.423 +ASSIMP_API void aiDecomposeMatrix( 1.424 + const C_STRUCT aiMatrix4x4* mat, 1.425 + C_STRUCT aiVector3D* scaling, 1.426 + C_STRUCT aiQuaternion* rotation, 1.427 + C_STRUCT aiVector3D* position); 1.428 + 1.429 +// -------------------------------------------------------------------------------- 1.430 +/** Transpose a 4x4 matrix. 1.431 + * @param mat Pointer to the matrix to be transposed 1.432 + */ 1.433 +ASSIMP_API void aiTransposeMatrix4( 1.434 + C_STRUCT aiMatrix4x4* mat); 1.435 + 1.436 +// -------------------------------------------------------------------------------- 1.437 +/** Transpose a 3x3 matrix. 1.438 + * @param mat Pointer to the matrix to be transposed 1.439 + */ 1.440 +ASSIMP_API void aiTransposeMatrix3( 1.441 + C_STRUCT aiMatrix3x3* mat); 1.442 + 1.443 +// -------------------------------------------------------------------------------- 1.444 +/** Transform a vector by a 3x3 matrix 1.445 + * @param vec Vector to be transformed. 1.446 + * @param mat Matrix to transform the vector with. 1.447 + */ 1.448 +ASSIMP_API void aiTransformVecByMatrix3( 1.449 + C_STRUCT aiVector3D* vec, 1.450 + const C_STRUCT aiMatrix3x3* mat); 1.451 + 1.452 +// -------------------------------------------------------------------------------- 1.453 +/** Transform a vector by a 4x4 matrix 1.454 + * @param vec Vector to be transformed. 1.455 + * @param mat Matrix to transform the vector with. 1.456 + */ 1.457 +ASSIMP_API void aiTransformVecByMatrix4( 1.458 + C_STRUCT aiVector3D* vec, 1.459 + const C_STRUCT aiMatrix4x4* mat); 1.460 + 1.461 +// -------------------------------------------------------------------------------- 1.462 +/** Multiply two 4x4 matrices. 1.463 + * @param dst First factor, receives result. 1.464 + * @param src Matrix to be multiplied with 'dst'. 1.465 + */ 1.466 +ASSIMP_API void aiMultiplyMatrix4( 1.467 + C_STRUCT aiMatrix4x4* dst, 1.468 + const C_STRUCT aiMatrix4x4* src); 1.469 + 1.470 +// -------------------------------------------------------------------------------- 1.471 +/** Multiply two 3x3 matrices. 1.472 + * @param dst First factor, receives result. 1.473 + * @param src Matrix to be multiplied with 'dst'. 1.474 + */ 1.475 +ASSIMP_API void aiMultiplyMatrix3( 1.476 + C_STRUCT aiMatrix3x3* dst, 1.477 + const C_STRUCT aiMatrix3x3* src); 1.478 + 1.479 +// -------------------------------------------------------------------------------- 1.480 +/** Get a 3x3 identity matrix. 1.481 + * @param mat Matrix to receive its personal identity 1.482 + */ 1.483 +ASSIMP_API void aiIdentityMatrix3( 1.484 + C_STRUCT aiMatrix3x3* mat); 1.485 + 1.486 +// -------------------------------------------------------------------------------- 1.487 +/** Get a 4x4 identity matrix. 1.488 + * @param mat Matrix to receive its personal identity 1.489 + */ 1.490 +ASSIMP_API void aiIdentityMatrix4( 1.491 + C_STRUCT aiMatrix4x4* mat); 1.492 + 1.493 + 1.494 +#ifdef __cplusplus 1.495 +} 1.496 +#endif 1.497 + 1.498 +#endif // AI_ASSIMP_H_INC