assimp_sys/
cimport.rs
1use std::os::raw::{c_char, c_float, c_int, c_uint, c_void};
2
3use cfileio::*;
4use importerdesc::*;
5use postprocess::*;
6use scene::*;
7use types::*;
8
9pub type AiLogStreamCallback = Option<unsafe extern "system" fn(*const c_char, *mut c_char)>;
10
11#[repr(C)]
12pub struct AiLogStream {
13 pub callback: AiLogStreamCallback,
14 pub user: *mut c_void,
15}
16
17#[repr(C)]
18#[derive(Clone, Copy, Debug)]
19pub struct AiPropertyStore {
20 pub sentinel: c_char,
21}
22
23pub type AiBool = c_int;
24pub const AI_FALSE: AiBool = 0;
25pub const AI_TRUE: AiBool = 1;
26
27extern {
28 pub fn aiImportFile(
29 file: *const c_char,
30 flags: AiPostProcessSteps) -> *const AiScene;
31
32 pub fn aiImportFileEx(
33 file: *const c_char,
34 flags: AiPostProcessSteps,
35 fs: *mut AiFileIO) -> *const AiScene;
36
37 pub fn aiImportFileExWithProperties(
38 file: *const c_char,
39 flags: AiPostProcessSteps,
40 fs: *mut AiFileIO,
41 props: *const AiPropertyStore) -> *const AiScene;
42
43 pub fn aiImportFileFromMemory(
44 buffer: *const c_char,
45 length: c_uint,
46 flags: AiPostProcessSteps,
47 hint: *const c_char) -> *const AiScene;
48
49 pub fn aiImportFileFromMemoryWithProperties(
50 buffer: *const c_char,
51 length: c_uint,
52 flags: AiPostProcessSteps,
53 hint: *const c_char,
54 props: *const AiPropertyStore) -> *const AiScene;
55
56 pub fn aiApplyPostProcessing(
57 scene: *const AiScene,
58 flags: AiPostProcessSteps) -> *const AiScene;
59
60 pub fn aiGetPredefinedLogStream(
61 stream: AiDefaultLogStream,
62 file: *const c_char) -> AiLogStream;
63
64 pub fn aiAttachLogStream(
65 stream: *const AiLogStream);
66
67 pub fn aiEnableVerboseLogging(
68 enable: AiBool);
69
70 pub fn aiDetachLogStream(
71 stream: *const AiLogStream) -> AiReturn;
72
73 pub fn aiDetachAllLogStreams();
74
75 pub fn aiReleaseImport(
76 scene: *const AiScene);
77
78 pub fn aiGetErrorString() -> *const c_char;
79
80 pub fn aiIsExtensionSupported(
81 extension: *const c_char) -> AiBool;
82
83 pub fn aiGetExtensionList(
84 out: *mut AiString);
85
86 pub fn aiGetMemoryRequirements(
87 scene: *const AiScene,
88 info: *mut AiMemoryInfo);
89
90 pub fn aiCreatePropertyStore() -> *mut AiPropertyStore;
91
92 pub fn aiReleasePropertyStore(
93 store: *mut AiPropertyStore);
94
95 pub fn aiSetImportPropertyInteger(
96 store: *mut AiPropertyStore,
97 name: *const c_char,
98 value: c_int);
99
100 pub fn aiSetImportPropertyFloat(
101 store: *mut AiPropertyStore,
102 name: *const c_char,
103 value: c_float);
104
105 pub fn aiSetImportPropertyString(
106 store: *mut AiPropertyStore,
107 name: *const c_char,
108 value: *const AiString);
109
110 pub fn aiSetImportPropertyMatrix(
111 store: *mut AiPropertyStore,
112 name: *const c_char,
113 value: *const AiMatrix4x4);
114
115 pub fn aiCreateQuaternionFromMatrix(
116 quaternion: *mut AiQuaternion,
117 matrix: *const AiMatrix3x3);
118
119 pub fn aiDecomposeMatrix(
120 matrix: *const AiMatrix4x4,
121 scaling: *mut AiVector3D,
122 rotation: *mut AiQuaternion,
123 position: *mut AiVector3D);
124
125 pub fn aiTransposeMatrix4(
126 matrix: *mut AiMatrix4x4);
127
128 pub fn aiTransposeMatrix3(
129 matrix: *mut AiMatrix3x3);
130
131 pub fn aiTransformVecByMatrix3(
132 vector: *mut AiVector3D,
133 matrix: *const AiMatrix3x3);
134
135 pub fn aiTransformVecByMatrix4(
136 vector: *mut AiVector3D,
137 matrix: *const AiMatrix4x4);
138
139 pub fn aiMultiplyMatrix4(
140 dst: *mut AiMatrix4x4,
141 src: *const AiMatrix4x4);
142
143 pub fn aiMultiplyMatrix3(
144 dst: *mut AiMatrix3x3,
145 src: *const AiMatrix3x3);
146
147 pub fn aiIdentityMatrix3(
148 matrix: *mut AiMatrix3x3);
149
150 pub fn aiIdentityMatrix4(
151 matrix: *mut AiMatrix4x4);
152
153 pub fn aiGetImportFormatCount() -> usize;
154
155 pub fn aiGetImportFormatDescription(
156 index: usize) -> *const AiImporterDesc;
157}