#pragma once
#include <stdbool.h>
#include <assimp/cimport.h>
#include <assimp/scene.h>
#include <assimp/postprocess.h>
#include <assimp/types.h>
#include <assimp/matrix4x4.h>
#include <assimp/cexport.h>
#include <assimp/cfileio.h>
#include <assimp/material.h>
#include <assimp/anim.h>
#include <assimp/mesh.h>
#include <assimp/light.h>
#include <assimp/camera.h>
#include <assimp/texture.h>
#include <assimp/metadata.h>
#include <assimp/version.h>
typedef enum aiRustPropertyKind {
aiRustPropertyKind_Integer = 0,
aiRustPropertyKind_Float = 1,
aiRustPropertyKind_String = 2,
aiRustPropertyKind_Matrix4x4 = 3,
aiRustPropertyKind_Boolean = 4
} aiRustPropertyKind;
typedef struct aiRustProperty {
const char* name; aiRustPropertyKind kind; int int_value; float float_value;
const char* string_value; void* matrix_value; } aiRustProperty;
typedef bool (*aiRustProgressCallback)(float percentage, const char* message, void* user);
#ifdef __cplusplus
extern "C" {
#endif
const struct aiScene* aiImportFileExWithProgressRust(
const char* path,
unsigned int flags,
const struct aiFileIO* file_io, const struct aiRustProperty* props,
size_t props_count,
aiRustProgressCallback progress_cb, void* progress_user );
const struct aiScene* aiImportFileFromMemoryWithProgressRust(
const char* data,
unsigned int length,
unsigned int flags,
const char* hint, const struct aiRustProperty* props,
size_t props_count,
aiRustProgressCallback progress_cb, void* progress_user );
enum aiReturn aiExportSceneExWithPropertiesRust(
const struct aiScene* scene,
const char* format_id,
const char* path,
const struct aiFileIO* file_io, unsigned int preprocessing,
const struct aiRustProperty* props,
size_t props_count
);
const struct aiExportDataBlob* aiExportSceneToBlobWithPropertiesRust(
const struct aiScene* scene,
const char* format_id,
unsigned int preprocessing,
const struct aiRustProperty* props,
size_t props_count
);
const char* aiGetLastErrorStringRust(void);
#ifdef __cplusplus
}
#endif