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