Skip to main content

Crate asset_importer_sys

Crate asset_importer_sys 

Source
Expand description

Low-level FFI bindings for the Assimp 3D asset import library

This crate provides raw, unsafe bindings to the Assimp C API. For safe, idiomatic Rust bindings, use the asset-importer crate instead.

Re-exports§

pub use aiImporterDesc as ImporterDesc;
pub use aiScene as Scene;
pub use aiImportFile as import_file;
pub use aiReleaseImport as release_import;

Structs§

aiAABB
An axis-aligned bounding box.
aiAnimMesh
@brief An AnimMesh is an attachment to an #aiMesh stores per-vertex animations for a particular frame.
aiAnimation
An animation consists of key-frame data for a number of nodes. For each node affected by the animation a separate series of data is given.
aiBone
@brief A single bone of a mesh.
aiBuffer
@brief Type to store a in-memory data buffer.
aiCamera
Helper structure to describe a virtual camera.
aiColor3D
Represents a color in Red-Green-Blue space.
aiColor4D
aiExportDataBlob
Describes a blob of exported scene data. Use #aiExportSceneToBlob() to create a blob containing an exported scene. The memory referred by this structure is owned by Assimp. to free its resources. Don’t try to free the memory on your side - it will crash for most build configurations due to conflicting heaps.
aiExportFormatDesc
@brief Describes an file format which Assimp can export to.
aiFace
@brief A single face in a mesh, referring to multiple vertices.
aiFile
@brief C-API: File callbacks
aiFileIO
@brief C-API: File system callbacks
aiImporterDesc
Meta information about a particular importer. Importers need to fill this structure, but they can freely decide how talkative they are. A common use case for loader meta info is a user interface in which the user can choose between various import/export file formats. Building such an UI by hand means a lot of maintenance as importers/exporters are added to Assimp, so it might be useful to have a common mechanism to query some rough importer characteristics.
aiLight
Helper structure to describe a light source.
aiLogStream
C-API: Represents a log stream. A log stream receives all log messages and streams them somewhere. @see aiGetPredefinedLogStream @see aiAttachLogStream @see aiDetachLogStream
aiMaterial
aiMaterialProperty
@brief Data structure for a single material property
aiMatrix3x3
aiMatrix4x4
aiMemoryInfo
Stores the memory requirements for different components (e.g. meshes, materials, animations) of an import. All sizes are in bytes. @see Importer::GetMemoryRequirements()
aiMesh
@brief A mesh represents a geometry or model with a single material.
aiMeshAnim
Describes vertex-based animations for a single mesh or a group of meshes. Meshes carry the animation data for each frame in their aiMesh::mAnimMeshes array. The purpose of aiMeshAnim is to define keyframes linking each mesh attachment to a particular point in time.
aiMeshKey
Binds a anim-mesh to a specific point in time.
aiMeshMorphAnim
Describes a morphing animation of a given mesh.
aiMeshMorphKey
Binds a morph anim mesh to a specific point in time.
aiMetadata
Container for holding metadata.
aiMetadataEntry
Metadata entry
aiNode
A node in the imported hierarchy.
aiNodeAnim
Describes the animation of a single node. The name specifies the bone/node which is affected by this animation channel. The keyframes are given in three separate series of values, one each for position, rotation and scaling. The transformation matrix computed from these values replaces the node’s original transformation matrix at a specific time. This means all keys are absolute and not relative to the bone default pose. The order in which the transformations are applied is
aiPlane
Represents a plane in a three-dimensional, euclidean space
aiPropertyStore
C-API: Represents an opaque set of settings to be used during importing. @see aiCreatePropertyStore @see aiReleasePropertyStore @see aiImportFileExWithProperties @see aiSetPropertyInteger @see aiSetPropertyFloat @see aiSetPropertyString @see aiSetPropertyMatrix
aiQuatKey
A time-value pair specifying a rotation for the given time. Rotations are expressed with quaternions.
aiQuaternion
aiRay
Represents a ray
aiRustProperty
aiScene
The root structure of the imported data.
aiSkeleton
@brief A skeleton represents the bone hierarchy of an animation.
aiSkeletonBone
@brief A skeleton bone represents a single bone is a skeleton structure.
aiString
@brief Represents an UTF-8 string, zero byte terminated.
aiTexel
@brief Helper structure to represent a texel in a ARGB8888 format
aiTexture
Helper structure to describe an embedded texture
aiUVTransform
@brief Defines how an UV channel is transformed.
aiVector2D
aiVector3D
aiVectorKey
A time-value pair specifying a certain 3D vector for the given time.
aiVertexWeight
@brief A single influence of a bone on a vertex.

Enums§

aiAnimBehaviour
Defines how an animation channel behaves outside the defined time range. This corresponds to aiNodeAnim::mPreState and aiNodeAnim::mPostState.
aiAnimInterpolation
aiBlendMode
@brief Defines alpha-blend flags.
aiComponent
@brief Enumerates components of the aiScene and aiMesh data structures that can be excluded from the import using the #aiProcess_RemoveComponent step.
aiDefaultLogStream
@brief Enumerates predefined log streaming destinations. Logging to these streams can be enabled with a single call to #LogStream::createDefaultStream.
aiImporterFlags
Mixed set of flags for #aiImporterDesc, indicating some features common to many importers
aiLightSourceType
Enumerates all supported types of light sources.
aiMetadataType
Enum used to distinguish data types
aiMorphingMethod
@brief Enumerates the methods of mesh morphing supported by Assimp.
aiOrigin
Seek origins (for the virtual file system API). Much cooler than using SEEK_SET, SEEK_CUR or SEEK_END.
aiPostProcessSteps
@enum aiPostProcessSteps @brief Defines the flags for all possible post processing steps.
aiPrimitiveType
@brief Enumerates the types of geometric primitives supported by Assimp.
aiPropertyTypeInfo
@brief A very primitive RTTI system for the contents of material properties.
aiReturn
Standard return type for some library functions. Rarely used, and if, mostly in the C API.
aiRustPropertyKind
aiShadingMode
@brief Defines all shading models supported by the library
aiTextureFlags
@brief Defines some mixed flags for a particular texture.
aiTextureMapMode
@brief Defines how UV coordinates outside the [0…1] range are handled.
aiTextureMapping
@brief Defines how the mapping coords for a texture are generated.
aiTextureOp
@brief Defines how the Nth texture of a specific type is combined with the result of all previous layers.
aiTextureType
@brief Defines the purpose of a texture

Constants§

AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT
AI_CONFIG_APP_SCALE_KEY
AI_CONFIG_CHECK_IDENTITY_MATRIX_EPSILON
AI_CONFIG_CHECK_IDENTITY_MATRIX_EPSILON_DEFAULT
AI_CONFIG_EXPORT_BLOB_NAME
AI_CONFIG_EXPORT_FBX_TRANSPARENCY_FACTOR_REFER_TO_OPACITY
AI_CONFIG_EXPORT_GLTF_UNLIMITED_SKINNING_BONES_PER_VERTEX
AI_CONFIG_EXPORT_POINT_CLOUDS
AI_CONFIG_EXPORT_XFILE_64BIT
AI_CONFIG_FAVOUR_SPEED
AI_CONFIG_FBX_CONVERT_TO_M
AI_CONFIG_FBX_USE_SKELETON_BONE_CONTAINER
AI_CONFIG_GLOBAL_SCALE_FACTOR_DEFAULT
AI_CONFIG_GLOBAL_SCALE_FACTOR_KEY
AI_CONFIG_GLOB_MEASURE_TIME
AI_CONFIG_IMPORT_AC_EVAL_SUBDIVISION
AI_CONFIG_IMPORT_AC_SEPARATE_BFCULL
AI_CONFIG_IMPORT_ASE_RECONSTRUCT_NORMALS
AI_CONFIG_IMPORT_COLLADA_IGNORE_UNIT_SIZE
AI_CONFIG_IMPORT_COLLADA_IGNORE_UP_DIRECTION
AI_CONFIG_IMPORT_COLLADA_USE_COLLADA_NAMES
AI_CONFIG_IMPORT_FBX_EMBEDDED_TEXTURES_LEGACY_NAMING
AI_CONFIG_IMPORT_FBX_IGNORE_UP_DIRECTION
AI_CONFIG_IMPORT_FBX_OPTIMIZE_EMPTY_ANIMATION_CURVES
AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS
AI_CONFIG_IMPORT_FBX_READ_ALL_GEOMETRY_LAYERS
AI_CONFIG_IMPORT_FBX_READ_ALL_MATERIALS
AI_CONFIG_IMPORT_FBX_READ_ANIMATIONS
AI_CONFIG_IMPORT_FBX_READ_CAMERAS
AI_CONFIG_IMPORT_FBX_READ_LIGHTS
AI_CONFIG_IMPORT_FBX_READ_MATERIALS
AI_CONFIG_IMPORT_FBX_READ_TEXTURES
AI_CONFIG_IMPORT_FBX_READ_WEIGHTS
AI_CONFIG_IMPORT_FBX_STRICT_MODE
AI_CONFIG_IMPORT_GLOBAL_KEYFRAME
AI_CONFIG_IMPORT_IFC_CUSTOM_TRIANGULATION
AI_CONFIG_IMPORT_IFC_CYLINDRICAL_TESSELLATION
AI_CONFIG_IMPORT_IFC_SKIP_SPACE_REPRESENTATIONS
AI_CONFIG_IMPORT_IFC_SMOOTHING_ANGLE
AI_CONFIG_IMPORT_IRR_ANIM_FPS
AI_CONFIG_IMPORT_LWO_ONE_LAYER_ONLY
AI_CONFIG_IMPORT_LWS_ANIM_END
AI_CONFIG_IMPORT_LWS_ANIM_START
AI_CONFIG_IMPORT_MD2_KEYFRAME
AI_CONFIG_IMPORT_MD3_HANDLE_MULTIPART
AI_CONFIG_IMPORT_MD3_KEYFRAME
AI_CONFIG_IMPORT_MD3_LOAD_SHADERS
AI_CONFIG_IMPORT_MD3_SHADER_SRC
AI_CONFIG_IMPORT_MD3_SKIN_NAME
AI_CONFIG_IMPORT_MD5_NO_ANIM_AUTOLOAD
AI_CONFIG_IMPORT_MDC_KEYFRAME
AI_CONFIG_IMPORT_MDL_COLORMAP
AI_CONFIG_IMPORT_MDL_HL1_READ_ANIMATIONS
AI_CONFIG_IMPORT_MDL_HL1_READ_ANIMATION_EVENTS
AI_CONFIG_IMPORT_MDL_HL1_READ_ATTACHMENTS
AI_CONFIG_IMPORT_MDL_HL1_READ_BLEND_CONTROLLERS
AI_CONFIG_IMPORT_MDL_HL1_READ_BONE_CONTROLLERS
AI_CONFIG_IMPORT_MDL_HL1_READ_HITBOXES
AI_CONFIG_IMPORT_MDL_HL1_READ_MISC_GLOBAL_INFO
AI_CONFIG_IMPORT_MDL_HL1_READ_SEQUENCE_TRANSITIONS
AI_CONFIG_IMPORT_MDL_HL1_TRANSFORM_COORD_SYSTEM
AI_CONFIG_IMPORT_MDL_KEYFRAME
AI_CONFIG_IMPORT_NO_SKELETON_MESHES
AI_CONFIG_IMPORT_OGRE_MATERIAL_FILE
AI_CONFIG_IMPORT_OGRE_TEXTURETYPE_FROM_FILENAME
AI_CONFIG_IMPORT_REMOVE_EMPTY_BONES
AI_CONFIG_IMPORT_SCHEMA_DOCUMENT_PROVIDER
AI_CONFIG_IMPORT_SMD_KEYFRAME
AI_CONFIG_IMPORT_SMD_LOAD_ANIMATION_LIST
AI_CONFIG_IMPORT_TER_MAKE_UVS
AI_CONFIG_IMPORT_UNREAL_HANDLE_FLAGS
AI_CONFIG_IMPORT_UNREAL_KEYFRAME
AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE
AI_CONFIG_PP_CT_TEXTURE_CHANNEL_INDEX
AI_CONFIG_PP_DB_ALL_OR_NONE
AI_CONFIG_PP_DB_THRESHOLD
AI_CONFIG_PP_FD_CHECKAREA
AI_CONFIG_PP_FD_REMOVE
AI_CONFIG_PP_FID_ANIM_ACCURACY
AI_CONFIG_PP_FID_IGNORE_TEXTURECOORDS
AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE
AI_CONFIG_PP_ICL_PTCACHE_SIZE
AI_CONFIG_PP_LBW_MAX_WEIGHTS
AI_CONFIG_PP_OG_EXCLUDE_LIST
AI_CONFIG_PP_PTV_ADD_ROOT_TRANSFORMATION
AI_CONFIG_PP_PTV_KEEP_HIERARCHY
AI_CONFIG_PP_PTV_NORMALIZE
AI_CONFIG_PP_PTV_ROOT_TRANSFORMATION
AI_CONFIG_PP_RRM_EXCLUDE_LIST
AI_CONFIG_PP_RVC_FLAGS
AI_CONFIG_PP_SBBC_MAX_BONES
AI_CONFIG_PP_SBP_REMOVE
AI_CONFIG_PP_SLM_TRIANGLE_LIMIT
AI_CONFIG_PP_SLM_VERTEX_LIMIT
AI_CONFIG_PP_TUV_EVALUATE
AI_CONFIG_USE_GLTF_PBR_SPECULAR_GLOSSINESS
AI_DEBONE_THRESHOLD
AI_DEFAULT_MATERIAL_NAME
AI_EMBEDDED_TEXNAME_PREFIX
AI_FALSE
AI_IMPORT_IFC_DEFAULT_CYLINDRICAL_TESSELLATION
AI_IMPORT_IFC_DEFAULT_SMOOTHING_ANGLE
AI_LMW_MAX_WEIGHTS
AI_MATH_HALF_PI
AI_MATH_HALF_PI_F
AI_MATH_PI
AI_MATH_PI_F
AI_MATH_TWO_PI
AI_MATH_TWO_PI_F
AI_MAXLEN
AI_MAX_BONE_WEIGHTS
AI_MAX_FACES
AI_MAX_FACE_INDICES
AI_MAX_NUMBER_OF_COLOR_SETS
AI_MAX_NUMBER_OF_TEXTURECOORDS
AI_MAX_VERTICES
AI_SBBC_DEFAULT_MAX_BONES
AI_SCENE_FLAGS_ALLOW_SHARED
AI_SCENE_FLAGS_INCOMPLETE
AI_SCENE_FLAGS_NON_VERBOSE_FORMAT
AI_SCENE_FLAGS_TERRAIN
AI_SCENE_FLAGS_VALIDATED
AI_SCENE_FLAGS_VALIDATION_WARNING
AI_SLM_DEFAULT_MAX_TRIANGLES
AI_SLM_DEFAULT_MAX_VERTICES
AI_TRUE
AI_UVTRAFO_ALL
AI_UVTRAFO_ROTATION
AI_UVTRAFO_SCALING
AI_UVTRAFO_TRANSLATION
CRATE_VERSION
Version information for this crate

Functions§

aiApplyPostProcessing
Apply post-processing to an already-imported scene.
aiAttachLogStream
Attach a custom log stream to the libraries’ logging system.
aiCopyScene
Create a modifiable copy of a scene. This is useful to import files via Assimp, change their topology and export them again. Since the scene returned by the various importer functions is const, a modifiable copy is needed. @param pIn Valid scene to be copied @param pOut Receives a modifiable copy of the scene. Use aiFreeScene() to delete it again.
aiCreatePropertyStore
Create an empty property store. Property stores are used to collect import settings. @return New property store. Property stores need to be manually destroyed using the #aiReleasePropertyStore API function.
aiCreateQuaternionFromMatrix
Construct a quaternion from a 3x3 rotation matrix. @param quat Receives the output quaternion. @param mat Matrix to ‘quaternionize’. @see aiQuaternion(const aiMatrix3x3& pRotMatrix)
aiDecomposeMatrix
Decompose a transformation matrix into its rotational, translational and scaling components.
aiDetachAllLogStreams
Detach all active log streams from the libraries’ logging system. This ensures that the logging system is terminated properly and all resources allocated by it are actually freed. If you attached a stream, don’t forget to detach it again. @see aiAttachLogStream @see aiDetachLogStream
aiDetachLogStream
Detach a custom log stream from the libraries’ logging system.
aiEnableVerboseLogging
Enable verbose logging. Verbose logging includes debug-related stuff and detailed import statistics. This can have severe impact on import performance and memory consumption. However, it might be useful to find out why a file didn’t read correctly. @param d AI_TRUE or AI_FALSE, your decision.
aiExportScene
Exports the given scene to a chosen file format and writes the result file(s) to disk. @param pScene The scene to export. Stays in possession of the caller, is not changed by the function. The scene is expected to conform to Assimp’s Importer output format as specified in the @link data Data Structures Page @endlink. In short, this means the model data should use a right-handed coordinate systems, face winding should be counter-clockwise and the UV coordinate origin is assumed to be in the upper left. If your input data uses different conventions, have a look at the last parameter. @param pFormatId ID string to specify to which format you want to export to. Use aiGetExportFormatCount() / aiGetExportFormatDescription() to learn which export formats are available. @param pFileName Output file to write @param pPreprocessing Accepts any choice of the #aiPostProcessSteps enumerated flags, but in reality only a subset of them makes sense here. Specifying ‘preprocessing’ flags is useful if the input scene does not conform to Assimp’s default conventions as specified in the @link data Data Structures Page @endlink. In short, this means the geometry data should use a right-handed coordinate systems, face winding should be counter-clockwise and the UV coordinate origin is assumed to be in the upper left. The #aiProcess_MakeLeftHanded, #aiProcess_FlipUVs and #aiProcess_FlipWindingOrder flags are used in the import side to allow users to have those defaults automatically adapted to their conventions. Specifying those flags for exporting has the opposite effect, respectively. Some other of the #aiPostProcessSteps enumerated values may be useful as well, but you’ll need to try out what their effect on the exported file is. Many formats impose their own restrictions on the structure of the geometry stored therein, so some preprocessing may have little or no effect at all, or may be redundant as exporters would apply them anyhow. A good example is triangulation - whilst you can enforce it by specifying the #aiProcess_Triangulate flag, most export formats support only triangulate data so they would run the step anyway.
aiExportSceneEx
Exports the given scene to a chosen file format using custom IO logic supplied by you. @param pScene The scene to export. Stays in possession of the caller, is not changed by the function. @param pFormatId ID string to specify to which format you want to export to. Use aiGetExportFormatCount() / aiGetExportFormatDescription() to learn which export formats are available. @param pFileName Output file to write @param pIO custom IO implementation to be used. Use this if you use your own storage methods. If none is supplied, a default implementation using standard file IO is used. Note that #aiExportSceneToBlob is provided as convenience function to export to memory buffers. @param pPreprocessing Please see the documentation for #aiExportScene @return a status code indicating the result of the export @note Include <aiFileIO.h> for the definition of #aiFileIO. @note Use aiCopyScene() to get a modifiable copy of a previously imported scene.
aiExportSceneExWithPropertiesRust
aiExportSceneToBlob
Exports the given scene to a chosen file format. Returns the exported data as a binary blob which you can write into a file or something. When you’re done with the data, use #aiReleaseExportBlob() to free the resources associated with the export. @param pScene The scene to export. Stays in possession of the caller, is not changed by the function. @param pFormatId ID string to specify to which format you want to export to. Use #aiGetExportFormatCount() / #aiGetExportFormatDescription() to learn which export formats are available. @param pPreprocessing Please see the documentation for #aiExportScene @return the exported data or NULL in case of error
aiExportSceneToBlobWithPropertiesRust
aiFreeScene
Frees a scene copy created using aiCopyScene()
aiGetBranchName
@brief Returns the branch-name of the Assimp runtime. @return The current branch name.
aiGetCompileFlags
@brief Returns assimp’s compile flags @return Any bitwise combination of the ASSIMP_CFLAGS_xxx constants.
aiGetEmbeddedTexture
Returns an embedded texture, or nullptr. @param pIn Input asset. @param filename Texture path extracted from aiGetMaterialString.
aiGetErrorString
Returns the error text of the last failed import process.
aiGetExportFormatCount
Returns the number of export file formats available in the current Assimp build. Use aiGetExportFormatDescription() to retrieve infos of a specific export format.
aiGetExportFormatDescription
Returns a description of the nth export file format. Use #aiGetExportFormatCount() to learn how many export formats are supported. The description must be released by calling aiReleaseExportFormatDescription afterwards. @param pIndex Index of the export format to retrieve information for. Valid range is 0 to #aiGetExportFormatCount() @return A description of that specific export format. NULL if pIndex is out of range.
aiGetExtensionList
Get a list of all file extensions supported by ASSIMP.
aiGetImportFormatCount
Returns the number of import file formats available in the current Assimp build. Use aiGetImportFormatDescription() to retrieve infos of a specific import format.
aiGetImportFormatDescription
Returns a description of the nth import file format. Use #aiGetImportFormatCount() to learn how many import formats are supported. @param pIndex Index of the import format to retrieve information for. Valid range is 0 to #aiGetImportFormatCount() @return A description of that specific import format. NULL if pIndex is out of range.
aiGetImporterDesc
\brief Returns the Importer description for a given extension.
aiGetLastErrorStringRust
aiGetLegalString
@brief Returns a string with legal copyright and licensing information about Assimp. The string may include multiple lines. @return Pointer to static string.
aiGetMaterialColor
@brief Retrieve a color value from the material property table
aiGetMaterialFloatArray
@brief Retrieve an array of float values with a specific key from the material
aiGetMaterialIntegerArray
@brief Retrieve an array of integer values with a specific key from a material
aiGetMaterialProperty
@brief Retrieve a material property with a specific key from the material
aiGetMaterialString
@brief Retrieve a string from the material property table
aiGetMaterialTexture
aiGetMaterialTextureCount
Get the number of textures for a particular texture type. @param[in] pMat Pointer to the input material. May not be NULL @param type Texture type to check for @return Number of textures for this type. @note A texture can be easily queried using #aiGetMaterialTexture()
aiGetMaterialUVTransform
@brief Retrieve a aiUVTransform value from the material property table
aiGetMemoryRequirements
Get the approximated storage required by an imported asset @param pIn Input asset. @param in Data structure to be filled.
aiGetPredefinedLogStream
Get one of the predefine log streams. This is the quick’n’easy solution to access Assimp’s log system. Attaching a log stream can slightly reduce Assimp’s overall import performance.
aiGetVersionMajor
@brief Returns the current major version number of Assimp. @return Major version of the Assimp runtime the application was linked/built against
aiGetVersionMinor
@brief Returns the current minor version number of Assimp. @return Minor version of the Assimp runtime the application was linked/built against
aiGetVersionPatch
@brief Returns the current patch version number of Assimp. @return Patch version of the Assimp runtime the application was linked/built against
aiGetVersionRevision
@brief Returns the repository revision of the Assimp runtime. @return SVN Repository revision number of the Assimp runtime the application was linked/built against.
aiIdentityMatrix3
Get a 3x3 identity matrix. @param mat Matrix to receive its personal identity
aiIdentityMatrix4
Get a 4x4 identity matrix. @param mat Matrix to receive its personal identity
aiImportFile
Reads the given file and returns its content.
aiImportFileEx
Reads the given file using user-defined I/O functions and returns its content.
aiImportFileExWithProgressRust
aiImportFileExWithProperties
Same as #aiImportFileEx, but adds an extra parameter containing importer settings.
aiImportFileFromMemory
Reads the given file from a given memory buffer,
aiImportFileFromMemoryWithProgressRust
aiImportFileFromMemoryWithProperties
Same as #aiImportFileFromMemory, but adds an extra parameter containing importer settings.
aiIsExtensionSupported
Returns whether a given file extension is supported by ASSIMP
aiMatrix3AreEqual
Check if 3x3 matrices are equal. @param a First matrix to compare @param b Second matrix to compare @return 1 if the matrices are equal @return 0 if the matrices are not equal
aiMatrix3AreEqualEpsilon
Check if 3x3 matrices are equal. @param a First matrix to compare @param b Second matrix to compare @param epsilon Epsilon @return 1 if the matrices are equal @return 0 if the matrices are not equal
aiMatrix3Determinant
Get the determinant of a 3x3 matrix. @param mat Matrix to get the determinant from
aiMatrix3FromMatrix4
Construct a 3x3 matrix from a 4x4 matrix. @param dst Receives the output matrix @param mat The 4x4 matrix to use
aiMatrix3FromQuaternion
Construct a 3x3 matrix from a quaternion. @param mat Receives the output matrix @param q The quaternion matrix to use
aiMatrix3FromRotationAroundAxis
Returns a 3x3 rotation matrix for a rotation around an arbitrary axis. @param mat Receives the output matrix @param axis Rotation axis, should be a normalized vector @param angle Rotation angle, in radians
aiMatrix3FromTo
Create a 3x3 matrix that rotates one vector to another vector. @param mat Receives the output matrix @param from Vector to rotate from @param to Vector to rotate to
aiMatrix3Inverse
Invert a 3x3 matrix. @param mat Matrix to invert
aiMatrix3RotationZ
Get a 3x3 rotation matrix around the Z axis. @param mat Receives the output matrix @param angle Rotation angle, in radians
aiMatrix3Translation
Get a 3x3 translation matrix. @param mat Receives the output matrix @param translation The translation vector
aiMatrix4Add
Add 4x4 matrices. @param dst First addend, receives result. @param src Matrix to be added to ‘dst’.
aiMatrix4AreEqual
Check if 4x4 matrices are equal. @param a First matrix to compare @param b Second matrix to compare @return 1 if the matrices are equal @return 0 if the matrices are not equal
aiMatrix4AreEqualEpsilon
Check if 4x4 matrices are equal. @param a First matrix to compare @param b Second matrix to compare @param epsilon Epsilon @return 1 if the matrices are equal @return 0 if the matrices are not equal
aiMatrix4DecomposeIntoScalingAxisAnglePosition
Decompose a transformation matrix into its scaling, rotational split into an axis and rotational angle, and it’s translational components.
aiMatrix4DecomposeIntoScalingEulerAnglesPosition
Decompose a transformation matrix into its scaling, rotational as euler angles, and translational components.
aiMatrix4DecomposeNoScaling
Decompose a transformation matrix into its rotational and translational components.
aiMatrix4Determinant
Get the determinant of a 4x4 matrix. @param mat Matrix to get the determinant from @return The determinant of the matrix
aiMatrix4FromEulerAngles
Creates a 4x4 matrix from a set of euler angles. @param mat Receives the output matrix @param x Rotation angle for the x-axis, in radians @param y Rotation angle for the y-axis, in radians @param z Rotation angle for the z-axis, in radians
aiMatrix4FromMatrix3
Construct a 4x4 matrix from a 3x3 matrix. @param dst Receives the output matrix @param mat The 3x3 matrix to use
aiMatrix4FromRotationAroundAxis
Returns a 4x4 rotation matrix for a rotation around an arbitrary axis. @param mat Receives the output matrix @param axis Rotation axis, should be a normalized vector @param angle Rotation angle, in radians
aiMatrix4FromScalingQuaternionPosition
Construct a 4x4 matrix from scaling, rotation and position. @param mat Receives the output matrix. @param scaling The scaling for the x,y,z axes @param rotation The rotation as a hamilton quaternion @param position The position for the x,y,z axes
aiMatrix4FromTo
Create a 4x4 matrix that rotates one vector to another vector. @param mat Receives the output matrix @param from Vector to rotate from @param to Vector to rotate to
aiMatrix4Inverse
Invert a 4x4 matrix. @param result Matrix to invert
aiMatrix4IsIdentity
Returns true of the matrix is the identity matrix. @param mat Matrix to get the determinant from @return 1 if \p mat is an identity matrix. @return 0 if \p mat is not an identity matrix.
aiMatrix4RotationX
Get a 4x4 rotation matrix around the X axis. @param mat Receives the output matrix @param angle Rotation angle, in radians
aiMatrix4RotationY
Get a 4x4 rotation matrix around the Y axis. @param mat Receives the output matrix @param angle Rotation angle, in radians
aiMatrix4RotationZ
Get a 4x4 rotation matrix around the Z axis. @param mat Receives the output matrix @param angle Rotation angle, in radians
aiMatrix4Scaling
Get a 4x4 scaling matrix. @param mat Receives the output matrix @param scaling The scaling vector
aiMatrix4Translation
Get a 4x4 translation matrix. @param mat Receives the output matrix @param translation The translation vector
aiMultiplyMatrix3
Multiply two 3x3 matrices. @param dst First factor, receives result. @param src Matrix to be multiplied with ‘dst’.
aiMultiplyMatrix4
Multiply two 4x4 matrices. @param dst First factor, receives result. @param src Matrix to be multiplied with ‘dst’.
aiQuaternionAreEqual
Check if quaternions are equal. @param a First quaternion to compare @param b Second quaternion to compare @return 1 if the quaternions are equal @return 0 if the quaternions are not equal
aiQuaternionAreEqualEpsilon
Check if quaternions are equal using epsilon. @param a First quaternion to compare @param b Second quaternion to compare @param epsilon Epsilon @return 1 if the quaternions are equal @return 0 if the quaternions are not equal
aiQuaternionConjugate
Compute quaternion conjugate. @param q Quaternion to compute conjugate, receives the output quaternion
aiQuaternionFromAxisAngle
Create a Quaternion from an axis angle pair. @param q Receives the output quaternion @param axis The orientation axis @param angle The rotation angle, in radians
aiQuaternionFromEulerAngles
Create a Quaternion from euler angles. @param q Receives the output quaternion @param x Rotation angle for the x-axis, in radians @param y Rotation angle for the y-axis, in radians @param z Rotation angle for the z-axis, in radians
aiQuaternionFromNormalizedQuaternion
Create a Quaternion from a normalized quaternion stored in a 3D vector. @param q Receives the output quaternion @param normalized The vector that stores the quaternion
aiQuaternionInterpolate
Performs a spherical interpolation between two quaternions. @param dst Receives the quaternion resulting from the interpolation. @param start Quaternion when factor == 0 @param end Quaternion when factor == 1 @param factor Interpolation factor between 0 and 1
aiQuaternionMultiply
Multiply quaternions. @param dst First quaternion, receives the output quaternion @param q Second quaternion
aiQuaternionNormalize
Normalize a quaternion. @param q Quaternion to normalize
aiReleaseExportBlob
Releases the memory associated with the given exported data. Use this function to free a data blob returned by aiExportScene(). @param pData the data blob returned by #aiExportSceneToBlob
aiReleaseExportFormatDescription
Release a description of the nth export file format. Must be returned by aiGetExportFormatDescription @param desc Pointer to the description
aiReleaseImport
Releases all resources associated with the given import process.
aiReleasePropertyStore
Delete a property store. @param p Property store to be deleted.
aiSetImportPropertyFloat
Set a floating-point property.
aiSetImportPropertyInteger
Set an integer property.
aiSetImportPropertyMatrix
Set a matrix property.
aiSetImportPropertyString
Set a string property.
aiTextureTypeToString
@brief Get a string for a given aiTextureType
aiTransformVecByMatrix3
Transform a vector by a 3x3 matrix @param vec Vector to be transformed. @param mat Matrix to transform the vector with.
aiTransformVecByMatrix4
Transform a vector by a 4x4 matrix @param vec Vector to be transformed. @param mat Matrix to transform the vector with.
aiTransposeMatrix3
Transpose a 3x3 matrix. @param mat Pointer to the matrix to be transposed
aiTransposeMatrix4
Transpose a 4x4 matrix. @param mat Pointer to the matrix to be transposed
aiVector2Add
Add 2D vectors. @param dst First addend, receives result. @param src Vector to be added to ‘dst’.
aiVector2AreEqual
Check if 2D vectors are equal. @param a First vector to compare @param b Second vector to compare @return 1 if the vectors are equal @return 0 if the vectors are not equal
aiVector2AreEqualEpsilon
Check if 2D vectors are equal using epsilon. @param a First vector to compare @param b Second vector to compare @param epsilon Epsilon @return 1 if the vectors are equal @return 0 if the vectors are not equal
aiVector2DivideByScalar
Divide a 2D vector by a scalar. @param dst Vector to be divided by \p s @param s Scalar divisor
aiVector2DivideByVector
Divide each component of a 2D vector by the components of another vector. @param dst Vector as the dividend @param v Vector as the divisor
aiVector2DotProduct
Get the dot product of 2D vectors. @param a First vector @param b Second vector @return The dot product of vectors
aiVector2Length
Get the length of a 2D vector. @return v Vector to evaluate
aiVector2Negate
Negate a 2D vector. @param dst Vector to be negated
aiVector2Normalize
Normalize a 2D vector. @param v Vector to normalize
aiVector2Scale
Multiply a 2D vector by a scalar. @param dst Vector to be scaled by \p s @param s Scale factor
aiVector2SquareLength
Get the squared length of a 2D vector. @return v Vector to evaluate
aiVector2Subtract
Subtract 2D vectors. @param dst Minuend, receives result. @param src Vector to be subtracted from ‘dst’.
aiVector2SymMul
Multiply each component of a 2D vector with the components of another vector. @param dst First vector, receives result @param other Second vector
aiVector3Add
Add 3D vectors. @param dst First addend, receives result. @param src Vector to be added to ‘dst’.
aiVector3AreEqual
Check if 3D vectors are equal. @param a First vector to compare @param b Second vector to compare @return 1 if the vectors are equal @return 0 if the vectors are not equal
aiVector3AreEqualEpsilon
Check if 3D vectors are equal using epsilon. @param a First vector to compare @param b Second vector to compare @param epsilon Epsilon @return 1 if the vectors are equal @return 0 if the vectors are not equal
aiVector3CrossProduct
Get cross product of 3D vectors. @param dst Vector to receive the result. @param a First vector @param b Second vector @return The dot product of vectors
aiVector3DivideByScalar
Divide a 3D vector by a scalar. @param dst Vector to be divided by \p s @param s Scalar divisor
aiVector3DivideByVector
Divide each component of a 3D vector by the components of another vector. @param dst Vector as the dividend @param v Vector as the divisor
aiVector3DotProduct
Get the dot product of 3D vectors. @param a First vector @param b Second vector @return The dot product of vectors
aiVector3Length
Get the length of a 3D vector. @return v Vector to evaluate
aiVector3LessThan
Check if vector \p a is less than vector \p b. @param a First vector to compare @param b Second vector to compare @param epsilon Epsilon @return 1 if \p a is less than \p b @return 0 if \p a is equal or greater than \p b
aiVector3Negate
Negate a 3D vector. @param dst Vector to be negated
aiVector3Normalize
Normalize a 3D vector. @param v Vector to normalize
aiVector3NormalizeSafe
Check for division by zero and normalize a 3D vector. @param v Vector to normalize
aiVector3RotateByQuaternion
Rotate a 3D vector by a quaternion. @param v The vector to rotate by \p q @param q Quaternion to use to rotate \p v
aiVector3Scale
Multiply a 3D vector by a scalar. @param dst Vector to be scaled by \p s @param s Scale factor
aiVector3SquareLength
Get the squared length of a 3D vector. @return v Vector to evaluate
aiVector3Subtract
Subtract 3D vectors. @param dst Minuend, receives result. @param src Vector to be subtracted from ‘dst’.
aiVector3SymMul
Multiply each component of a 3D vector with the components of another vector. @param dst First vector, receives result @param other Second vector

Type Aliases§

aiBool
Our own C boolean type
aiFileCloseProc
aiFileFlushProc
aiFileOpenProc
aiFileReadProc
aiFileSeek
aiFileTellProc
aiFileWriteProc
aiLogStreamCallback
aiRustProgressCallback
aiUserData
ai_int
ai_int32
ai_real
ai_uint
ai_uint32