1pub const K4A_VERSION_MAJOR: u32 = 1;
4pub const K4A_VERSION_MINOR: u32 = 4;
5pub const K4A_VERSION_PATCH: u32 = 1;
6pub const K4A_VERSION_PRERELEASE: &'static [u8; 1usize] = b"\0";
7pub const K4A_VERSION_BUILD_METADATA: &'static [u8; 1usize] = b"\0";
8pub const K4A_VERSION_STR: &'static [u8; 6usize] = b"1.4.1\0";
9pub const K4A_DEVICE_DEFAULT: u32 = 0;
10pub const K4A_WAIT_INFINITE: i32 = -1;
11pub type __uint8_t = ::std::os::raw::c_uchar;
12pub type __int32_t = ::std::os::raw::c_int;
13pub type __uint32_t = ::std::os::raw::c_uint;
14pub type __uint64_t = ::std::os::raw::c_ulong;
15#[repr(C)]
16#[derive(Debug, Default, Copy, Clone)]
17pub struct _k4a_device_t {
18 pub _rsvd: usize,
19}
20#[test]
21fn bindgen_test_layout__k4a_device_t() {
22 assert_eq!(
23 ::std::mem::size_of::<_k4a_device_t>(),
24 8usize,
25 concat!("Size of: ", stringify!(_k4a_device_t))
26 );
27 assert_eq!(
28 ::std::mem::align_of::<_k4a_device_t>(),
29 8usize,
30 concat!("Alignment of ", stringify!(_k4a_device_t))
31 );
32 assert_eq!(
33 unsafe { &(*(::std::ptr::null::<_k4a_device_t>()))._rsvd as *const _ as usize },
34 0usize,
35 concat!(
36 "Offset of field: ",
37 stringify!(_k4a_device_t),
38 "::",
39 stringify!(_rsvd)
40 )
41 );
42}
43pub type k4a_device_t = *mut _k4a_device_t;
44#[repr(C)]
45#[derive(Debug, Default, Copy, Clone)]
46pub struct _k4a_capture_t {
47 pub _rsvd: usize,
48}
49#[test]
50fn bindgen_test_layout__k4a_capture_t() {
51 assert_eq!(
52 ::std::mem::size_of::<_k4a_capture_t>(),
53 8usize,
54 concat!("Size of: ", stringify!(_k4a_capture_t))
55 );
56 assert_eq!(
57 ::std::mem::align_of::<_k4a_capture_t>(),
58 8usize,
59 concat!("Alignment of ", stringify!(_k4a_capture_t))
60 );
61 assert_eq!(
62 unsafe { &(*(::std::ptr::null::<_k4a_capture_t>()))._rsvd as *const _ as usize },
63 0usize,
64 concat!(
65 "Offset of field: ",
66 stringify!(_k4a_capture_t),
67 "::",
68 stringify!(_rsvd)
69 )
70 );
71}
72pub type k4a_capture_t = *mut _k4a_capture_t;
73#[repr(C)]
74#[derive(Debug, Default, Copy, Clone)]
75pub struct _k4a_image_t {
76 pub _rsvd: usize,
77}
78#[test]
79fn bindgen_test_layout__k4a_image_t() {
80 assert_eq!(
81 ::std::mem::size_of::<_k4a_image_t>(),
82 8usize,
83 concat!("Size of: ", stringify!(_k4a_image_t))
84 );
85 assert_eq!(
86 ::std::mem::align_of::<_k4a_image_t>(),
87 8usize,
88 concat!("Alignment of ", stringify!(_k4a_image_t))
89 );
90 assert_eq!(
91 unsafe { &(*(::std::ptr::null::<_k4a_image_t>()))._rsvd as *const _ as usize },
92 0usize,
93 concat!(
94 "Offset of field: ",
95 stringify!(_k4a_image_t),
96 "::",
97 stringify!(_rsvd)
98 )
99 );
100}
101pub type k4a_image_t = *mut _k4a_image_t;
102#[repr(C)]
103#[derive(Debug, Default, Copy, Clone)]
104pub struct _k4a_transformation_t {
105 pub _rsvd: usize,
106}
107#[test]
108fn bindgen_test_layout__k4a_transformation_t() {
109 assert_eq!(
110 ::std::mem::size_of::<_k4a_transformation_t>(),
111 8usize,
112 concat!("Size of: ", stringify!(_k4a_transformation_t))
113 );
114 assert_eq!(
115 ::std::mem::align_of::<_k4a_transformation_t>(),
116 8usize,
117 concat!("Alignment of ", stringify!(_k4a_transformation_t))
118 );
119 assert_eq!(
120 unsafe { &(*(::std::ptr::null::<_k4a_transformation_t>()))._rsvd as *const _ as usize },
121 0usize,
122 concat!(
123 "Offset of field: ",
124 stringify!(_k4a_transformation_t),
125 "::",
126 stringify!(_rsvd)
127 )
128 );
129}
130pub type k4a_transformation_t = *mut _k4a_transformation_t;
131#[doc = "< The result was successful"]
132pub const k4a_result_t_K4A_RESULT_SUCCEEDED: k4a_result_t = 0;
133#[doc = "< The result was a failure"]
134pub const k4a_result_t_K4A_RESULT_FAILED: k4a_result_t = 1;
135#[doc = " Result code returned by Azure Kinect APIs."]
136#[doc = ""]
137#[doc = " \\xmlonly"]
138#[doc = " <requirements>"]
139#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
140#[doc = " </requirements>"]
141#[doc = " \\endxmlonly"]
142pub type k4a_result_t = ::std::os::raw::c_uint;
143#[doc = "< The result was successful"]
144pub const k4a_buffer_result_t_K4A_BUFFER_RESULT_SUCCEEDED: k4a_buffer_result_t = 0;
145#[doc = "< The result was a failure"]
146pub const k4a_buffer_result_t_K4A_BUFFER_RESULT_FAILED: k4a_buffer_result_t = 1;
147#[doc = "< The input buffer was too small"]
148pub const k4a_buffer_result_t_K4A_BUFFER_RESULT_TOO_SMALL: k4a_buffer_result_t = 2;
149#[doc = " Result code returned by Azure Kinect APIs."]
150#[doc = ""]
151#[doc = " \\xmlonly"]
152#[doc = " <requirements>"]
153#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
154#[doc = " </requirements>"]
155#[doc = " \\endxmlonly"]
156pub type k4a_buffer_result_t = ::std::os::raw::c_uint;
157#[doc = "< The result was successful"]
158pub const k4a_wait_result_t_K4A_WAIT_RESULT_SUCCEEDED: k4a_wait_result_t = 0;
159#[doc = "< The result was a failure"]
160pub const k4a_wait_result_t_K4A_WAIT_RESULT_FAILED: k4a_wait_result_t = 1;
161#[doc = "< The operation timed out"]
162pub const k4a_wait_result_t_K4A_WAIT_RESULT_TIMEOUT: k4a_wait_result_t = 2;
163#[doc = " Result code returned by Azure Kinect APIs."]
164#[doc = ""]
165#[doc = " \\xmlonly"]
166#[doc = " <requirements>"]
167#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
168#[doc = " </requirements>"]
169#[doc = " \\endxmlonly"]
170pub type k4a_wait_result_t = ::std::os::raw::c_uint;
171#[doc = "< Most severe level of debug messaging."]
172pub const k4a_log_level_t_K4A_LOG_LEVEL_CRITICAL: k4a_log_level_t = 0;
173#[doc = "< 2nd most severe level of debug messaging."]
174pub const k4a_log_level_t_K4A_LOG_LEVEL_ERROR: k4a_log_level_t = 1;
175#[doc = "< 3nd most severe level of debug messaging."]
176pub const k4a_log_level_t_K4A_LOG_LEVEL_WARNING: k4a_log_level_t = 2;
177#[doc = "< 2nd least severe level of debug messaging."]
178pub const k4a_log_level_t_K4A_LOG_LEVEL_INFO: k4a_log_level_t = 3;
179#[doc = "< Least severe level of debug messaging."]
180pub const k4a_log_level_t_K4A_LOG_LEVEL_TRACE: k4a_log_level_t = 4;
181#[doc = "< No logging is performed"]
182pub const k4a_log_level_t_K4A_LOG_LEVEL_OFF: k4a_log_level_t = 5;
183#[doc = " Verbosity levels of debug messaging"]
184#[doc = ""]
185#[doc = " \\xmlonly"]
186#[doc = " <requirements>"]
187#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
188#[doc = " </requirements>"]
189#[doc = " \\endxmlonly"]
190pub type k4a_log_level_t = ::std::os::raw::c_uint;
191#[doc = "< Depth sensor will be turned off with this setting."]
192pub const k4a_depth_mode_t_K4A_DEPTH_MODE_OFF: k4a_depth_mode_t = 0;
193#[doc = "< Depth captured at 320x288. Passive IR is also captured at 320x288."]
194pub const k4a_depth_mode_t_K4A_DEPTH_MODE_NFOV_2X2BINNED: k4a_depth_mode_t = 1;
195#[doc = "< Depth captured at 640x576. Passive IR is also captured at 640x576."]
196pub const k4a_depth_mode_t_K4A_DEPTH_MODE_NFOV_UNBINNED: k4a_depth_mode_t = 2;
197#[doc = "< Depth captured at 512x512. Passive IR is also captured at 512x512."]
198pub const k4a_depth_mode_t_K4A_DEPTH_MODE_WFOV_2X2BINNED: k4a_depth_mode_t = 3;
199#[doc = "< Depth captured at 1024x1024. Passive IR is also captured at 1024x1024."]
200pub const k4a_depth_mode_t_K4A_DEPTH_MODE_WFOV_UNBINNED: k4a_depth_mode_t = 4;
201#[doc = "< Passive IR only, captured at 1024x1024."]
202pub const k4a_depth_mode_t_K4A_DEPTH_MODE_PASSIVE_IR: k4a_depth_mode_t = 5;
203#[doc = " Depth sensor capture modes."]
204#[doc = ""]
205#[doc = " \\remarks"]
206#[doc = " See the hardware specification for additional details on the field of view, and supported frame rates"]
207#[doc = " for each mode."]
208#[doc = ""]
209#[doc = " \\remarks"]
210#[doc = " NFOV and WFOV denote Narrow and Wide Field Of View configurations."]
211#[doc = ""]
212#[doc = " \\remarks"]
213#[doc = " Binned modes reduce the captured camera resolution by combining adjacent sensor pixels into a bin."]
214#[doc = ""]
215#[doc = " \\xmlonly"]
216#[doc = " <requirements>"]
217#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
218#[doc = " </requirements>"]
219#[doc = " \\endxmlonly"]
220pub type k4a_depth_mode_t = ::std::os::raw::c_uint;
221#[doc = "< Color camera will be turned off with this setting"]
222pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_OFF: k4a_color_resolution_t = 0;
223#[doc = "< 1280 * 720 16:9"]
224pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_720P: k4a_color_resolution_t = 1;
225#[doc = "< 1920 * 1080 16:9"]
226pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1080P: k4a_color_resolution_t = 2;
227#[doc = "< 2560 * 1440 16:9"]
228pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1440P: k4a_color_resolution_t = 3;
229#[doc = "< 2048 * 1536 4:3"]
230pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_1536P: k4a_color_resolution_t = 4;
231#[doc = "< 3840 * 2160 16:9"]
232pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_2160P: k4a_color_resolution_t = 5;
233#[doc = "< 4096 * 3072 4:3"]
234pub const k4a_color_resolution_t_K4A_COLOR_RESOLUTION_3072P: k4a_color_resolution_t = 6;
235#[doc = " Color sensor resolutions."]
236#[doc = ""]
237#[doc = " \\xmlonly"]
238#[doc = " <requirements>"]
239#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
240#[doc = " </requirements>"]
241#[doc = " \\endxmlonly"]
242pub type k4a_color_resolution_t = ::std::os::raw::c_uint;
243#[doc = " Color image type MJPG."]
244#[doc = ""]
245#[doc = " \\details"]
246#[doc = " The buffer for each image is encoded as a JPEG and can be decoded by a JPEG decoder."]
247#[doc = ""]
248#[doc = " \\details"]
249#[doc = " Because the image is compressed, the stride parameter for the \\ref k4a_image_t is not applicable."]
250#[doc = ""]
251#[doc = " \\details"]
252#[doc = " Each MJPG encoded image in a stream may be of differing size depending on the compression efficiency."]
253pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_MJPG: k4a_image_format_t = 0;
254#[doc = " Color image type NV12."]
255#[doc = ""]
256#[doc = " \\details"]
257#[doc = " NV12 images separate the luminance and chroma data such that all the luminance is at the"]
258#[doc = " beginning of the buffer, and the chroma lines follow immediately after."]
259#[doc = ""]
260#[doc = " \\details"]
261#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each line"]
262#[doc = " of the image in memory. Chroma has half as many lines of height and half the width in pixels of the luminance."]
263#[doc = " Each chroma line has the same width in bytes as a luminance line."]
264pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_NV12: k4a_image_format_t = 1;
265#[doc = " Color image type YUY2."]
266#[doc = ""]
267#[doc = " \\details"]
268#[doc = " YUY2 stores chroma and luminance data in interleaved pixels."]
269#[doc = ""]
270#[doc = " \\details"]
271#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
272#[doc = " line of the image in memory."]
273pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_YUY2: k4a_image_format_t = 2;
274#[doc = " Color image type BGRA32."]
275#[doc = ""]
276#[doc = " \\details"]
277#[doc = " Each pixel of BGRA32 data is four bytes. The first three bytes represent Blue, Green,"]
278#[doc = " and Red data. The fourth byte is the alpha channel and is unused in the Azure Kinect APIs."]
279#[doc = ""]
280#[doc = " \\details"]
281#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
282#[doc = " line of the image in memory."]
283#[doc = ""]
284#[doc = " \\details"]
285#[doc = " The Azure Kinect device does not natively capture in this format. Requesting images of this format"]
286#[doc = " requires additional computation in the API."]
287#[doc = ""]
288pub const k4a_image_format_t_K4A_IMAGE_FORMAT_COLOR_BGRA32: k4a_image_format_t = 3;
289#[doc = " Depth image type DEPTH16."]
290#[doc = ""]
291#[doc = " \\details"]
292#[doc = " Each pixel of DEPTH16 data is two bytes of little endian unsigned depth data. The unit of the data is in"]
293#[doc = " millimeters from the origin of the camera."]
294#[doc = ""]
295#[doc = " \\details"]
296#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
297#[doc = " line of the image in memory."]
298pub const k4a_image_format_t_K4A_IMAGE_FORMAT_DEPTH16: k4a_image_format_t = 4;
299#[doc = " Image type IR16."]
300#[doc = ""]
301#[doc = " \\details"]
302#[doc = " Each pixel of IR16 data is two bytes of little endian unsigned depth data. The value of the data represents"]
303#[doc = " brightness."]
304#[doc = ""]
305#[doc = " \\details"]
306#[doc = " This format represents infrared light and is captured by the depth camera."]
307#[doc = ""]
308#[doc = " \\details"]
309#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
310#[doc = " line of the image in memory."]
311pub const k4a_image_format_t_K4A_IMAGE_FORMAT_IR16: k4a_image_format_t = 5;
312#[doc = " Single channel image type CUSTOM8."]
313#[doc = ""]
314#[doc = " \\details"]
315#[doc = " Each pixel of CUSTOM8 is a single channel one byte of unsigned data."]
316#[doc = ""]
317#[doc = " \\details"]
318#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
319#[doc = " line of the image in memory."]
320pub const k4a_image_format_t_K4A_IMAGE_FORMAT_CUSTOM8: k4a_image_format_t = 6;
321#[doc = " Single channel image type CUSTOM16."]
322#[doc = ""]
323#[doc = " \\details"]
324#[doc = " Each pixel of CUSTOM16 is a single channel two bytes of little endian unsigned data."]
325#[doc = ""]
326#[doc = " \\details"]
327#[doc = " Stride indicates the length of each line in bytes and should be used to determine the start location of each"]
328#[doc = " line of the image in memory."]
329pub const k4a_image_format_t_K4A_IMAGE_FORMAT_CUSTOM16: k4a_image_format_t = 7;
330#[doc = " Custom image format."]
331#[doc = ""]
332#[doc = " \\details"]
333#[doc = " Used in conjunction with user created images or images packing non-standard data."]
334#[doc = ""]
335#[doc = " \\details"]
336#[doc = " See the originator of the custom formatted image for information on how to interpret the data."]
337pub const k4a_image_format_t_K4A_IMAGE_FORMAT_CUSTOM: k4a_image_format_t = 8;
338#[doc = " Image format type."]
339#[doc = ""]
340#[doc = " \\remarks"]
341#[doc = " The image format indicates how the \\ref k4a_image_t buffer data is interpreted."]
342#[doc = ""]
343#[doc = " \\xmlonly"]
344#[doc = " <requirements>"]
345#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
346#[doc = " </requirements>"]
347#[doc = " \\endxmlonly"]
348pub type k4a_image_format_t = ::std::os::raw::c_uint;
349#[doc = "< Nearest neighbor interpolation"]
350pub const k4a_transformation_interpolation_type_t_K4A_TRANSFORMATION_INTERPOLATION_TYPE_NEAREST:
351 k4a_transformation_interpolation_type_t = 0;
352#[doc = "< Linear interpolation"]
353pub const k4a_transformation_interpolation_type_t_K4A_TRANSFORMATION_INTERPOLATION_TYPE_LINEAR:
354 k4a_transformation_interpolation_type_t = 1;
355#[doc = " Transformation interpolation type."]
356#[doc = ""]
357#[doc = " \\remarks"]
358#[doc = " Interpolation type used with k4a_transformation_depth_image_to_color_camera_custom."]
359#[doc = ""]
360#[doc = " \\xmlonly"]
361#[doc = " <requirements>"]
362#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
363#[doc = " </requirements>"]
364#[doc = " \\endxmlonly"]
365pub type k4a_transformation_interpolation_type_t = ::std::os::raw::c_uint;
366#[doc = "< 5 FPS"]
367pub const k4a_fps_t_K4A_FRAMES_PER_SECOND_5: k4a_fps_t = 0;
368#[doc = "< 15 FPS"]
369pub const k4a_fps_t_K4A_FRAMES_PER_SECOND_15: k4a_fps_t = 1;
370#[doc = "< 30 FPS"]
371pub const k4a_fps_t_K4A_FRAMES_PER_SECOND_30: k4a_fps_t = 2;
372#[doc = " Color and depth sensor frame rate."]
373#[doc = ""]
374#[doc = " \\remarks"]
375#[doc = " This enumeration is used to select the desired frame rate to operate the cameras. The actual"]
376#[doc = " frame rate may vary slightly due to dropped data, synchronization variation between devices,"]
377#[doc = " clock accuracy, or if the camera exposure priority mode causes reduced frame rate."]
378#[doc = " \\xmlonly"]
379#[doc = " <requirements>"]
380#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
381#[doc = " </requirements>"]
382#[doc = " \\endxmlonly"]
383pub type k4a_fps_t = ::std::os::raw::c_uint;
384#[doc = " Exposure time setting."]
385#[doc = ""]
386#[doc = " \\details"]
387#[doc = " May be set to ::K4A_COLOR_CONTROL_MODE_AUTO or ::K4A_COLOR_CONTROL_MODE_MANUAL."]
388#[doc = ""]
389#[doc = " \\details"]
390#[doc = " The Azure Kinect supports a limited number of fixed expsore settings. When setting this, expect the exposure to"]
391#[doc = " be rounded up to the nearest setting. Exceptions are 1) The last value in the table is the upper limit, so a"]
392#[doc = " value larger than this will be overridden to the largest entry in the table. 2) The exposure time cannot be"]
393#[doc = " larger than the equivelent FPS. So expect 100ms exposure time to be reduced to 30ms or 33.33ms when the camera is"]
394#[doc = " started. The most recent copy of the table 'device_exposure_mapping' is in"]
395#[doc = " https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/src/color/color_priv.h"]
396#[doc = ""]
397#[doc = " \\details"]
398#[doc = " Exposure time is measured in microseconds."]
399pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_EXPOSURE_TIME_ABSOLUTE:
400 k4a_color_control_command_t = 0;
401#[doc = " Exposure or Framerate priority setting."]
402#[doc = ""]
403#[doc = " \\details"]
404#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
405#[doc = ""]
406#[doc = " \\details"]
407#[doc = " Value of 0 means framerate priority. Value of 1 means exposure priority."]
408#[doc = ""]
409#[doc = " \\details"]
410#[doc = " Using exposure priority may impact the framerate of both the color and depth cameras."]
411#[doc = ""]
412#[doc = " \\details"]
413#[doc = " Deprecated starting in 1.2.0. Please discontinue usage, firmware does not support this."]
414pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY:
415 k4a_color_control_command_t = 1;
416#[doc = " Brightness setting."]
417#[doc = ""]
418#[doc = " \\details"]
419#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
420#[doc = ""]
421#[doc = " \\details"]
422#[doc = " The valid range is 0 to 255. The default value is 128."]
423pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_BRIGHTNESS: k4a_color_control_command_t = 2;
424#[doc = " Contrast setting."]
425#[doc = ""]
426#[doc = " \\details"]
427#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
428pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_CONTRAST: k4a_color_control_command_t = 3;
429#[doc = " Saturation setting."]
430#[doc = ""]
431#[doc = " \\details"]
432#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
433pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_SATURATION: k4a_color_control_command_t = 4;
434#[doc = " Sharpness setting."]
435#[doc = ""]
436#[doc = " \\details"]
437#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
438pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_SHARPNESS: k4a_color_control_command_t = 5;
439#[doc = " White balance setting."]
440#[doc = ""]
441#[doc = " \\details"]
442#[doc = " May be set to ::K4A_COLOR_CONTROL_MODE_AUTO or ::K4A_COLOR_CONTROL_MODE_MANUAL."]
443#[doc = ""]
444#[doc = " \\details"]
445#[doc = " The unit is degrees Kelvin. The setting must be set to a value evenly divisible by 10 degrees."]
446pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_WHITEBALANCE: k4a_color_control_command_t =
447 6;
448#[doc = " Backlight compensation setting."]
449#[doc = ""]
450#[doc = " \\details"]
451#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
452#[doc = ""]
453#[doc = " \\details"]
454#[doc = " Value of 0 means backlight compensation is disabled. Value of 1 means backlight compensation is enabled."]
455pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_BACKLIGHT_COMPENSATION:
456 k4a_color_control_command_t = 7;
457#[doc = " Gain setting."]
458#[doc = ""]
459#[doc = " \\details"]
460#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
461pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_GAIN: k4a_color_control_command_t = 8;
462#[doc = " Powerline frequency setting."]
463#[doc = ""]
464#[doc = " \\details"]
465#[doc = " May only be set to ::K4A_COLOR_CONTROL_MODE_MANUAL."]
466#[doc = ""]
467#[doc = " \\details"]
468#[doc = " Value of 1 sets the powerline compensation to 50 Hz. Value of 2 sets the powerline compensation to 60 Hz."]
469pub const k4a_color_control_command_t_K4A_COLOR_CONTROL_POWERLINE_FREQUENCY:
470 k4a_color_control_command_t = 9;
471#[doc = " Color sensor control commands"]
472#[doc = ""]
473#[doc = " \\remarks"]
474#[doc = " The current settings can be read with k4a_device_get_color_control(). The settings can be set with"]
475#[doc = " k4a_device_set_color_control()."]
476#[doc = ""]
477#[doc = " \\remarks"]
478#[doc = " Control values set on a device are reset only when the device is power cycled. The device will retain the settings"]
479#[doc = " even if the \\ref k4a_device_t is closed or the application is restarted."]
480#[doc = ""]
481#[doc = " \\see k4a_color_control_mode_t"]
482#[doc = ""]
483#[doc = " \\xmlonly"]
484#[doc = " <requirements>"]
485#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
486#[doc = " </requirements>"]
487#[doc = " \\endxmlonly"]
488pub type k4a_color_control_command_t = ::std::os::raw::c_uint;
489#[doc = "< set the associated k4a_color_control_command_t to auto"]
490pub const k4a_color_control_mode_t_K4A_COLOR_CONTROL_MODE_AUTO: k4a_color_control_mode_t = 0;
491#[doc = "< set the associated k4a_color_control_command_t to manual"]
492pub const k4a_color_control_mode_t_K4A_COLOR_CONTROL_MODE_MANUAL: k4a_color_control_mode_t = 1;
493#[doc = " Color sensor control mode"]
494#[doc = ""]
495#[doc = " \\remarks"]
496#[doc = " The current settings can be read with k4a_device_get_color_control(). The settings can be set with"]
497#[doc = " k4a_device_set_color_control()."]
498#[doc = ""]
499#[doc = " \\see k4a_color_control_command_t"]
500#[doc = ""]
501#[doc = " \\xmlonly"]
502#[doc = " <requirements>"]
503#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
504#[doc = " </requirements>"]
505#[doc = " \\endxmlonly"]
506pub type k4a_color_control_mode_t = ::std::os::raw::c_uint;
507#[doc = "< Neither 'Sync In' or 'Sync Out' connections are used."]
508pub const k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_STANDALONE: k4a_wired_sync_mode_t = 0;
509#[doc = "< The 'Sync Out' jack is enabled and synchronization data it driven out the"]
510#[doc = "connected wire. While in master mode the color camera must be enabled as part of the"]
511#[doc = "multi device sync signalling logic. Even if the color image is not needed, the color"]
512#[doc = "camera must be running."]
513pub const k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_MASTER: k4a_wired_sync_mode_t = 1;
514#[doc = "< The 'Sync In' jack is used for synchronization and 'Sync Out' is driven for the"]
515#[doc = "next device in the chain. 'Sync Out' is a mirror of 'Sync In' for this mode."]
516pub const k4a_wired_sync_mode_t_K4A_WIRED_SYNC_MODE_SUBORDINATE: k4a_wired_sync_mode_t = 2;
517#[doc = " Synchronization mode when connecting two or more devices together."]
518#[doc = ""]
519#[doc = " \\xmlonly"]
520#[doc = " <requirements>"]
521#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
522#[doc = " </requirements>"]
523#[doc = " \\endxmlonly"]
524pub type k4a_wired_sync_mode_t = ::std::os::raw::c_uint;
525#[doc = "< Calibration type is unknown"]
526pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_UNKNOWN: k4a_calibration_type_t = -1;
527#[doc = "< Depth sensor"]
528pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_DEPTH: k4a_calibration_type_t = 0;
529#[doc = "< Color sensor"]
530pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_COLOR: k4a_calibration_type_t = 1;
531#[doc = "< Gyroscope sensor"]
532pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_GYRO: k4a_calibration_type_t = 2;
533#[doc = "< Accelerometer sensor"]
534pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_ACCEL: k4a_calibration_type_t = 3;
535#[doc = "< Number of types excluding unknown type"]
536pub const k4a_calibration_type_t_K4A_CALIBRATION_TYPE_NUM: k4a_calibration_type_t = 4;
537#[doc = " Calibration types."]
538#[doc = ""]
539#[doc = " Specifies a type of calibration."]
540#[doc = ""]
541#[doc = " \\xmlonly"]
542#[doc = " <requirements>"]
543#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
544#[doc = " </requirements>"]
545#[doc = " \\endxmlonly"]
546pub type k4a_calibration_type_t = ::std::os::raw::c_int;
547#[doc = "< Calibration model is unknown"]
548pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_UNKNOWN:
549 k4a_calibration_model_type_t = 0;
550#[doc = "< Deprecated (not supported). Calibration model is Theta (arctan)."]
551pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_THETA:
552 k4a_calibration_model_type_t = 1;
553#[doc = "< Deprecated (not supported). Calibration model is"]
554#[doc = "Polynomial 3K."]
555pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_POLYNOMIAL_3K:
556 k4a_calibration_model_type_t = 2;
557#[doc = "< Deprecated (only supported early internal devices)."]
558#[doc = "Calibration model is Rational 6KT."]
559pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_RATIONAL_6KT:
560 k4a_calibration_model_type_t = 3;
561#[doc = "< Calibration model is Brown Conrady (compatible with"]
562#[doc = " OpenCV)"]
563pub const k4a_calibration_model_type_t_K4A_CALIBRATION_LENS_DISTORTION_MODEL_BROWN_CONRADY:
564 k4a_calibration_model_type_t = 4;
565#[doc = " Calibration model type."]
566#[doc = ""]
567#[doc = " The model used interpret the calibration parameters."]
568#[doc = ""]
569#[doc = " \\remarks"]
570#[doc = " Azure Kinect devices are calibrated with Brown Conrady."]
571#[doc = ""]
572#[doc = " \\xmlonly"]
573#[doc = " <requirements>"]
574#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
575#[doc = " </requirements>"]
576#[doc = " \\endxmlonly"]
577pub type k4a_calibration_model_type_t = ::std::os::raw::c_uint;
578#[doc = "< Production firmware."]
579pub const k4a_firmware_build_t_K4A_FIRMWARE_BUILD_RELEASE: k4a_firmware_build_t = 0;
580#[doc = "< Pre-production firmware."]
581pub const k4a_firmware_build_t_K4A_FIRMWARE_BUILD_DEBUG: k4a_firmware_build_t = 1;
582#[doc = " Firmware build type."]
583#[doc = ""]
584#[doc = " \\xmlonly"]
585#[doc = " <requirements>"]
586#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
587#[doc = " </requirements>"]
588#[doc = " \\endxmlonly"]
589pub type k4a_firmware_build_t = ::std::os::raw::c_uint;
590#[doc = "< Microsoft signed firmware."]
591pub const k4a_firmware_signature_t_K4A_FIRMWARE_SIGNATURE_MSFT: k4a_firmware_signature_t = 0;
592#[doc = "< Test signed firmware."]
593pub const k4a_firmware_signature_t_K4A_FIRMWARE_SIGNATURE_TEST: k4a_firmware_signature_t = 1;
594#[doc = "< Unsigned firmware."]
595pub const k4a_firmware_signature_t_K4A_FIRMWARE_SIGNATURE_UNSIGNED: k4a_firmware_signature_t = 2;
596#[doc = " Firmware signature type."]
597#[doc = ""]
598#[doc = " \\xmlonly"]
599#[doc = " <requirements>"]
600#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
601#[doc = " </requirements>"]
602#[doc = " \\endxmlonly"]
603pub type k4a_firmware_signature_t = ::std::os::raw::c_uint;
604#[doc = " Callback function for debug messages being generated by the Azure Kinect SDK."]
605#[doc = ""]
606#[doc = " \\param context"]
607#[doc = " The context of the callback function. This is the context that was supplied by the caller to \\p"]
608#[doc = " k4a_set_debug_message_handler."]
609#[doc = ""]
610#[doc = " \\param level"]
611#[doc = " The level of the message that has been created."]
612#[doc = ""]
613#[doc = " \\param file"]
614#[doc = " The file name of the source file that generated the message."]
615#[doc = ""]
616#[doc = " \\param line"]
617#[doc = " The line number of the source file that generated the message."]
618#[doc = ""]
619#[doc = " \\param message"]
620#[doc = " The messaged generated by the Azure Kinect SDK."]
621#[doc = ""]
622#[doc = " \\remarks"]
623#[doc = " The callback is called asynchronously when the Azure Kinext SDK generates a message at a \\p level that is equal to"]
624#[doc = " or more critical than the level specified when calling \\ref k4a_set_debug_message_handler() to register the callback."]
625#[doc = ""]
626#[doc = " \\remarks"]
627#[doc = " This callback can occur from any thread and blocks the calling thread. The k4a_logging_message_cb_t function user"]
628#[doc = " must protect it's logging resources from concurrent calls. All care should be made to minimize the amount of time"]
629#[doc = " locks are held."]
630#[doc = ""]
631#[doc = " \\xmlonly"]
632#[doc = " <requirements>"]
633#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
634#[doc = " </requirements>"]
635#[doc = " \\endxmlonly"]
636#[doc = ""]
637pub type k4a_logging_message_cb_t = ::std::option::Option<
638 unsafe extern "C" fn(
639 context: *mut ::std::os::raw::c_void,
640 level: k4a_log_level_t,
641 file: *const ::std::os::raw::c_char,
642 line: ::std::os::raw::c_int,
643 message: *const ::std::os::raw::c_char,
644 ),
645>;
646#[doc = " Callback function for a memory object being destroyed."]
647#[doc = ""]
648#[doc = " \\param buffer"]
649#[doc = " The buffer pointer that was supplied by the caller as \\p buffer_release_cb to \\ref k4a_image_create_from_buffer()."]
650#[doc = ""]
651#[doc = " \\param context"]
652#[doc = " The context for the memory object that needs to be destroyed that was supplied by the caller as \\p"]
653#[doc = " buffer_release_cb_context to \\ref k4a_image_create_from_buffer()."]
654#[doc = ""]
655#[doc = " \\remarks"]
656#[doc = " When all references for the memory object are released, this callback will be invoked as the final destroy for the"]
657#[doc = " given memory."]
658#[doc = ""]
659#[doc = " \\xmlonly"]
660#[doc = " <requirements>"]
661#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
662#[doc = " </requirements>"]
663#[doc = " \\endxmlonly"]
664#[doc = ""]
665pub type k4a_memory_destroy_cb_t = ::std::option::Option<
666 unsafe extern "C" fn(buffer: *mut ::std::os::raw::c_void, context: *mut ::std::os::raw::c_void),
667>;
668#[doc = " Callback function for a memory allocation."]
669#[doc = ""]
670#[doc = " \\param size"]
671#[doc = " Minimum size in bytes needed for the buffer."]
672#[doc = ""]
673#[doc = " \\param context"]
674#[doc = " Output parameter for a context that will be provided in the subsequent call to the \\ref k4a_memory_destroy_cb_t"]
675#[doc = " callback."]
676#[doc = ""]
677#[doc = " \\return"]
678#[doc = " A pointer to the newly allocated memory."]
679#[doc = ""]
680#[doc = " \\remarks"]
681#[doc = " A callback of this type is provided when there is an application defined allocator."]
682#[doc = ""]
683#[doc = " \\xmlonly"]
684#[doc = " <requirements>"]
685#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
686#[doc = " </requirements>"]
687#[doc = " \\endxmlonly"]
688#[doc = ""]
689pub type k4a_memory_allocate_cb_t = ::std::option::Option<
690 unsafe extern "C" fn(
691 size: ::std::os::raw::c_int,
692 context: *mut *mut ::std::os::raw::c_void,
693 ) -> *mut u8,
694>;
695#[doc = " Configuration parameters for an Azure Kinect device."]
696#[doc = ""]
697#[doc = " \\remarks"]
698#[doc = " Used by k4a_device_start_cameras() to specify the configuration of the data capture."]
699#[doc = ""]
700#[doc = " \\xmlonly"]
701#[doc = " <requirements>"]
702#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
703#[doc = " </requirements>"]
704#[doc = " \\endxmlonly"]
705#[repr(C)]
706#[derive(Debug, Copy, Clone)]
707pub struct _k4a_device_configuration_t {
708 #[doc = " Image format to capture with the color camera."]
709 #[doc = ""]
710 #[doc = " The color camera does not natively produce BGRA32 images."]
711 #[doc = " Setting ::K4A_IMAGE_FORMAT_COLOR_BGRA32 for color_format will result in higher CPU utilization."]
712 pub color_format: k4a_image_format_t,
713 #[doc = " Image resolution to capture with the color camera."]
714 pub color_resolution: k4a_color_resolution_t,
715 #[doc = " Capture mode for the depth camera."]
716 pub depth_mode: k4a_depth_mode_t,
717 #[doc = " Desired frame rate for the color and depth camera."]
718 pub camera_fps: k4a_fps_t,
719 #[doc = " Only produce k4a_capture_t objects if they contain synchronized color and depth images."]
720 #[doc = ""]
721 #[doc = " \\details"]
722 #[doc = " This setting controls the behavior in which images are dropped when images are produced faster than they can be"]
723 #[doc = " read, or if there are errors in reading images from the device."]
724 #[doc = ""]
725 #[doc = " \\details"]
726 #[doc = " If set to true, \\ref k4a_capture_t objects will only be produced with both color and depth images."]
727 #[doc = " If set to false, \\ref k4a_capture_t objects may be produced only a single image when the corresponding image is"]
728 #[doc = " dropped."]
729 #[doc = ""]
730 #[doc = " \\details"]
731 #[doc = " Setting this to false ensures that the caller receives all of the images received from the camera, regardless of"]
732 #[doc = " whether the corresponding images expected in the capture are available."]
733 #[doc = ""]
734 #[doc = " \\details"]
735 #[doc = " If either the color or depth camera are disabled, this setting has no effect."]
736 pub synchronized_images_only: bool,
737 #[doc = " Desired delay between the capture of the color image and the capture of the depth image."]
738 #[doc = ""]
739 #[doc = " \\details"]
740 #[doc = " A negative value indicates that the depth image should be captured before the color image."]
741 #[doc = ""]
742 #[doc = " \\details"]
743 #[doc = " Any value between negative and positive one capture period is valid."]
744 pub depth_delay_off_color_usec: i32,
745 #[doc = " The external synchronization mode."]
746 pub wired_sync_mode: k4a_wired_sync_mode_t,
747 #[doc = " The external synchronization timing."]
748 #[doc = ""]
749 #[doc = " If this camera is a subordinate, this sets the capture delay between the color camera capture and the external"]
750 #[doc = " input pulse. A setting of zero indicates that the master and subordinate color images should be aligned."]
751 #[doc = ""]
752 #[doc = " This setting does not effect the 'Sync out' connection."]
753 #[doc = ""]
754 #[doc = " This value must be positive and range from zero to one capture period."]
755 #[doc = ""]
756 #[doc = " If this is not a subordinate, then this value is ignored."]
757 pub subordinate_delay_off_master_usec: u32,
758 #[doc = " Streaming indicator automatically turns on when the color or depth camera's are in use."]
759 #[doc = ""]
760 #[doc = " This setting disables that behavior and keeps the LED in an off state."]
761 pub disable_streaming_indicator: bool,
762}
763#[test]
764fn bindgen_test_layout__k4a_device_configuration_t() {
765 assert_eq!(
766 ::std::mem::size_of::<_k4a_device_configuration_t>(),
767 36usize,
768 concat!("Size of: ", stringify!(_k4a_device_configuration_t))
769 );
770 assert_eq!(
771 ::std::mem::align_of::<_k4a_device_configuration_t>(),
772 4usize,
773 concat!("Alignment of ", stringify!(_k4a_device_configuration_t))
774 );
775 assert_eq!(
776 unsafe {
777 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).color_format as *const _
778 as usize
779 },
780 0usize,
781 concat!(
782 "Offset of field: ",
783 stringify!(_k4a_device_configuration_t),
784 "::",
785 stringify!(color_format)
786 )
787 );
788 assert_eq!(
789 unsafe {
790 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).color_resolution as *const _
791 as usize
792 },
793 4usize,
794 concat!(
795 "Offset of field: ",
796 stringify!(_k4a_device_configuration_t),
797 "::",
798 stringify!(color_resolution)
799 )
800 );
801 assert_eq!(
802 unsafe {
803 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).depth_mode as *const _ as usize
804 },
805 8usize,
806 concat!(
807 "Offset of field: ",
808 stringify!(_k4a_device_configuration_t),
809 "::",
810 stringify!(depth_mode)
811 )
812 );
813 assert_eq!(
814 unsafe {
815 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).camera_fps as *const _ as usize
816 },
817 12usize,
818 concat!(
819 "Offset of field: ",
820 stringify!(_k4a_device_configuration_t),
821 "::",
822 stringify!(camera_fps)
823 )
824 );
825 assert_eq!(
826 unsafe {
827 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).synchronized_images_only
828 as *const _ as usize
829 },
830 16usize,
831 concat!(
832 "Offset of field: ",
833 stringify!(_k4a_device_configuration_t),
834 "::",
835 stringify!(synchronized_images_only)
836 )
837 );
838 assert_eq!(
839 unsafe {
840 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).depth_delay_off_color_usec
841 as *const _ as usize
842 },
843 20usize,
844 concat!(
845 "Offset of field: ",
846 stringify!(_k4a_device_configuration_t),
847 "::",
848 stringify!(depth_delay_off_color_usec)
849 )
850 );
851 assert_eq!(
852 unsafe {
853 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).wired_sync_mode as *const _
854 as usize
855 },
856 24usize,
857 concat!(
858 "Offset of field: ",
859 stringify!(_k4a_device_configuration_t),
860 "::",
861 stringify!(wired_sync_mode)
862 )
863 );
864 assert_eq!(
865 unsafe {
866 &(*(::std::ptr::null::<_k4a_device_configuration_t>()))
867 .subordinate_delay_off_master_usec as *const _ as usize
868 },
869 28usize,
870 concat!(
871 "Offset of field: ",
872 stringify!(_k4a_device_configuration_t),
873 "::",
874 stringify!(subordinate_delay_off_master_usec)
875 )
876 );
877 assert_eq!(
878 unsafe {
879 &(*(::std::ptr::null::<_k4a_device_configuration_t>())).disable_streaming_indicator
880 as *const _ as usize
881 },
882 32usize,
883 concat!(
884 "Offset of field: ",
885 stringify!(_k4a_device_configuration_t),
886 "::",
887 stringify!(disable_streaming_indicator)
888 )
889 );
890}
891impl Default for _k4a_device_configuration_t {
892 fn default() -> Self {
893 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
894 unsafe {
895 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
896 s.assume_init()
897 }
898 }
899}
900#[doc = " Configuration parameters for an Azure Kinect device."]
901#[doc = ""]
902#[doc = " \\remarks"]
903#[doc = " Used by k4a_device_start_cameras() to specify the configuration of the data capture."]
904#[doc = ""]
905#[doc = " \\xmlonly"]
906#[doc = " <requirements>"]
907#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
908#[doc = " </requirements>"]
909#[doc = " \\endxmlonly"]
910pub type k4a_device_configuration_t = _k4a_device_configuration_t;
911#[doc = " Extrinsic calibration data."]
912#[doc = ""]
913#[doc = " \\remarks"]
914#[doc = " Extrinsic calibration defines the physical relationship between two separate devices."]
915#[doc = ""]
916#[doc = " \\relates k4a_calibration_camera_t"]
917#[doc = ""]
918#[doc = " \\xmlonly"]
919#[doc = " <requirements>"]
920#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
921#[doc = " </requirements>"]
922#[doc = " \\endxmlonly"]
923#[repr(C)]
924#[derive(Debug, Default, Copy, Clone)]
925pub struct _k4a_calibration_extrinsics_t {
926 #[doc = "< 3x3 Rotation matrix stored in row major order"]
927 pub rotation: [f32; 9usize],
928 #[doc = "< Translation vector, x,y,z (in millimeters)"]
929 pub translation: [f32; 3usize],
930}
931#[test]
932fn bindgen_test_layout__k4a_calibration_extrinsics_t() {
933 assert_eq!(
934 ::std::mem::size_of::<_k4a_calibration_extrinsics_t>(),
935 48usize,
936 concat!("Size of: ", stringify!(_k4a_calibration_extrinsics_t))
937 );
938 assert_eq!(
939 ::std::mem::align_of::<_k4a_calibration_extrinsics_t>(),
940 4usize,
941 concat!("Alignment of ", stringify!(_k4a_calibration_extrinsics_t))
942 );
943 assert_eq!(
944 unsafe {
945 &(*(::std::ptr::null::<_k4a_calibration_extrinsics_t>())).rotation as *const _ as usize
946 },
947 0usize,
948 concat!(
949 "Offset of field: ",
950 stringify!(_k4a_calibration_extrinsics_t),
951 "::",
952 stringify!(rotation)
953 )
954 );
955 assert_eq!(
956 unsafe {
957 &(*(::std::ptr::null::<_k4a_calibration_extrinsics_t>())).translation as *const _
958 as usize
959 },
960 36usize,
961 concat!(
962 "Offset of field: ",
963 stringify!(_k4a_calibration_extrinsics_t),
964 "::",
965 stringify!(translation)
966 )
967 );
968}
969#[doc = " Extrinsic calibration data."]
970#[doc = ""]
971#[doc = " \\remarks"]
972#[doc = " Extrinsic calibration defines the physical relationship between two separate devices."]
973#[doc = ""]
974#[doc = " \\relates k4a_calibration_camera_t"]
975#[doc = ""]
976#[doc = " \\xmlonly"]
977#[doc = " <requirements>"]
978#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
979#[doc = " </requirements>"]
980#[doc = " \\endxmlonly"]
981pub type k4a_calibration_extrinsics_t = _k4a_calibration_extrinsics_t;
982#[doc = " Camera intrinsic calibration data."]
983#[doc = ""]
984#[doc = " \\remarks"]
985#[doc = " Intrinsic calibration represents the internal optical properties of the camera."]
986#[doc = ""]
987#[doc = " \\remarks"]
988#[doc = " Azure Kinect devices are calibrated with Brown Conrady which is compatible"]
989#[doc = " with OpenCV."]
990#[doc = ""]
991#[doc = " \\relates k4a_calibration_camera_t"]
992#[doc = ""]
993#[doc = " \\xmlonly"]
994#[doc = " <requirements>"]
995#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
996#[doc = " </requirements>"]
997#[doc = " \\endxmlonly"]
998#[repr(C)]
999#[derive(Copy, Clone)]
1000pub union k4a_calibration_intrinsic_parameters_t {
1001 #[doc = "< Individual parameter representation of intrinsic model"]
1002 pub param: k4a_calibration_intrinsic_parameters_t__param,
1003 #[doc = "< Array representation of intrinsic model parameters"]
1004 pub v: [f32; 15usize],
1005}
1006#[doc = " individual parameter or array representation of intrinsic model."]
1007#[repr(C)]
1008#[derive(Debug, Default, Copy, Clone)]
1009pub struct k4a_calibration_intrinsic_parameters_t__param {
1010 #[doc = "< Principal point in image, x"]
1011 pub cx: f32,
1012 #[doc = "< Principal point in image, y"]
1013 pub cy: f32,
1014 #[doc = "< Focal length x"]
1015 pub fx: f32,
1016 #[doc = "< Focal length y"]
1017 pub fy: f32,
1018 #[doc = "< k1 radial distortion coefficient"]
1019 pub k1: f32,
1020 #[doc = "< k2 radial distortion coefficient"]
1021 pub k2: f32,
1022 #[doc = "< k3 radial distortion coefficient"]
1023 pub k3: f32,
1024 #[doc = "< k4 radial distortion coefficient"]
1025 pub k4: f32,
1026 #[doc = "< k5 radial distortion coefficient"]
1027 pub k5: f32,
1028 #[doc = "< k6 radial distortion coefficient"]
1029 pub k6: f32,
1030 #[doc = "< Center of distortion in Z=1 plane, x (only used for Rational6KT)"]
1031 pub codx: f32,
1032 #[doc = "< Center of distortion in Z=1 plane, y (only used for Rational6KT)"]
1033 pub cody: f32,
1034 #[doc = "< Tangential distortion coefficient 2"]
1035 pub p2: f32,
1036 #[doc = "< Tangential distortion coefficient 1"]
1037 pub p1: f32,
1038 #[doc = "< Metric radius"]
1039 pub metric_radius: f32,
1040}
1041#[test]
1042fn bindgen_test_layout_k4a_calibration_intrinsic_parameters_t__param() {
1043 assert_eq!(
1044 ::std::mem::size_of::<k4a_calibration_intrinsic_parameters_t__param>(),
1045 60usize,
1046 concat!(
1047 "Size of: ",
1048 stringify!(k4a_calibration_intrinsic_parameters_t__param)
1049 )
1050 );
1051 assert_eq!(
1052 ::std::mem::align_of::<k4a_calibration_intrinsic_parameters_t__param>(),
1053 4usize,
1054 concat!(
1055 "Alignment of ",
1056 stringify!(k4a_calibration_intrinsic_parameters_t__param)
1057 )
1058 );
1059 assert_eq!(
1060 unsafe {
1061 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).cx as *const _
1062 as usize
1063 },
1064 0usize,
1065 concat!(
1066 "Offset of field: ",
1067 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1068 "::",
1069 stringify!(cx)
1070 )
1071 );
1072 assert_eq!(
1073 unsafe {
1074 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).cy as *const _
1075 as usize
1076 },
1077 4usize,
1078 concat!(
1079 "Offset of field: ",
1080 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1081 "::",
1082 stringify!(cy)
1083 )
1084 );
1085 assert_eq!(
1086 unsafe {
1087 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).fx as *const _
1088 as usize
1089 },
1090 8usize,
1091 concat!(
1092 "Offset of field: ",
1093 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1094 "::",
1095 stringify!(fx)
1096 )
1097 );
1098 assert_eq!(
1099 unsafe {
1100 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).fy as *const _
1101 as usize
1102 },
1103 12usize,
1104 concat!(
1105 "Offset of field: ",
1106 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1107 "::",
1108 stringify!(fy)
1109 )
1110 );
1111 assert_eq!(
1112 unsafe {
1113 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k1 as *const _
1114 as usize
1115 },
1116 16usize,
1117 concat!(
1118 "Offset of field: ",
1119 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1120 "::",
1121 stringify!(k1)
1122 )
1123 );
1124 assert_eq!(
1125 unsafe {
1126 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k2 as *const _
1127 as usize
1128 },
1129 20usize,
1130 concat!(
1131 "Offset of field: ",
1132 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1133 "::",
1134 stringify!(k2)
1135 )
1136 );
1137 assert_eq!(
1138 unsafe {
1139 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k3 as *const _
1140 as usize
1141 },
1142 24usize,
1143 concat!(
1144 "Offset of field: ",
1145 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1146 "::",
1147 stringify!(k3)
1148 )
1149 );
1150 assert_eq!(
1151 unsafe {
1152 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k4 as *const _
1153 as usize
1154 },
1155 28usize,
1156 concat!(
1157 "Offset of field: ",
1158 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1159 "::",
1160 stringify!(k4)
1161 )
1162 );
1163 assert_eq!(
1164 unsafe {
1165 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k5 as *const _
1166 as usize
1167 },
1168 32usize,
1169 concat!(
1170 "Offset of field: ",
1171 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1172 "::",
1173 stringify!(k5)
1174 )
1175 );
1176 assert_eq!(
1177 unsafe {
1178 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).k6 as *const _
1179 as usize
1180 },
1181 36usize,
1182 concat!(
1183 "Offset of field: ",
1184 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1185 "::",
1186 stringify!(k6)
1187 )
1188 );
1189 assert_eq!(
1190 unsafe {
1191 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).codx
1192 as *const _ as usize
1193 },
1194 40usize,
1195 concat!(
1196 "Offset of field: ",
1197 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1198 "::",
1199 stringify!(codx)
1200 )
1201 );
1202 assert_eq!(
1203 unsafe {
1204 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).cody
1205 as *const _ as usize
1206 },
1207 44usize,
1208 concat!(
1209 "Offset of field: ",
1210 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1211 "::",
1212 stringify!(cody)
1213 )
1214 );
1215 assert_eq!(
1216 unsafe {
1217 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).p2 as *const _
1218 as usize
1219 },
1220 48usize,
1221 concat!(
1222 "Offset of field: ",
1223 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1224 "::",
1225 stringify!(p2)
1226 )
1227 );
1228 assert_eq!(
1229 unsafe {
1230 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).p1 as *const _
1231 as usize
1232 },
1233 52usize,
1234 concat!(
1235 "Offset of field: ",
1236 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1237 "::",
1238 stringify!(p1)
1239 )
1240 );
1241 assert_eq!(
1242 unsafe {
1243 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t__param>())).metric_radius
1244 as *const _ as usize
1245 },
1246 56usize,
1247 concat!(
1248 "Offset of field: ",
1249 stringify!(k4a_calibration_intrinsic_parameters_t__param),
1250 "::",
1251 stringify!(metric_radius)
1252 )
1253 );
1254}
1255#[test]
1256fn bindgen_test_layout_k4a_calibration_intrinsic_parameters_t() {
1257 assert_eq!(
1258 ::std::mem::size_of::<k4a_calibration_intrinsic_parameters_t>(),
1259 60usize,
1260 concat!(
1261 "Size of: ",
1262 stringify!(k4a_calibration_intrinsic_parameters_t)
1263 )
1264 );
1265 assert_eq!(
1266 ::std::mem::align_of::<k4a_calibration_intrinsic_parameters_t>(),
1267 4usize,
1268 concat!(
1269 "Alignment of ",
1270 stringify!(k4a_calibration_intrinsic_parameters_t)
1271 )
1272 );
1273 assert_eq!(
1274 unsafe {
1275 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t>())).param as *const _
1276 as usize
1277 },
1278 0usize,
1279 concat!(
1280 "Offset of field: ",
1281 stringify!(k4a_calibration_intrinsic_parameters_t),
1282 "::",
1283 stringify!(param)
1284 )
1285 );
1286 assert_eq!(
1287 unsafe {
1288 &(*(::std::ptr::null::<k4a_calibration_intrinsic_parameters_t>())).v as *const _
1289 as usize
1290 },
1291 0usize,
1292 concat!(
1293 "Offset of field: ",
1294 stringify!(k4a_calibration_intrinsic_parameters_t),
1295 "::",
1296 stringify!(v)
1297 )
1298 );
1299}
1300impl Default for k4a_calibration_intrinsic_parameters_t {
1301 fn default() -> Self {
1302 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1303 unsafe {
1304 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1305 s.assume_init()
1306 }
1307 }
1308}
1309#[doc = " Camera sensor intrinsic calibration data."]
1310#[doc = ""]
1311#[doc = " \\remarks"]
1312#[doc = " Intrinsic calibration represents the internal optical properties of the camera."]
1313#[doc = ""]
1314#[doc = " \\remarks"]
1315#[doc = " Azure Kinect devices are calibrated with Brown Conrady which is compatible"]
1316#[doc = " with OpenCV."]
1317#[doc = ""]
1318#[doc = " \\relates k4a_calibration_camera_t"]
1319#[doc = ""]
1320#[doc = " \\xmlonly"]
1321#[doc = " <requirements>"]
1322#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1323#[doc = " </requirements>"]
1324#[doc = " \\endxmlonly"]
1325#[repr(C)]
1326#[derive(Copy, Clone)]
1327pub struct _k4a_calibration_intrinsics_t {
1328 #[doc = "< Type of calibration model used"]
1329 pub type_: k4a_calibration_model_type_t,
1330 #[doc = "< Number of valid entries in parameters"]
1331 pub parameter_count: ::std::os::raw::c_uint,
1332 #[doc = "< Calibration parameters"]
1333 pub parameters: k4a_calibration_intrinsic_parameters_t,
1334}
1335#[test]
1336fn bindgen_test_layout__k4a_calibration_intrinsics_t() {
1337 assert_eq!(
1338 ::std::mem::size_of::<_k4a_calibration_intrinsics_t>(),
1339 68usize,
1340 concat!("Size of: ", stringify!(_k4a_calibration_intrinsics_t))
1341 );
1342 assert_eq!(
1343 ::std::mem::align_of::<_k4a_calibration_intrinsics_t>(),
1344 4usize,
1345 concat!("Alignment of ", stringify!(_k4a_calibration_intrinsics_t))
1346 );
1347 assert_eq!(
1348 unsafe {
1349 &(*(::std::ptr::null::<_k4a_calibration_intrinsics_t>())).type_ as *const _ as usize
1350 },
1351 0usize,
1352 concat!(
1353 "Offset of field: ",
1354 stringify!(_k4a_calibration_intrinsics_t),
1355 "::",
1356 stringify!(type_)
1357 )
1358 );
1359 assert_eq!(
1360 unsafe {
1361 &(*(::std::ptr::null::<_k4a_calibration_intrinsics_t>())).parameter_count as *const _
1362 as usize
1363 },
1364 4usize,
1365 concat!(
1366 "Offset of field: ",
1367 stringify!(_k4a_calibration_intrinsics_t),
1368 "::",
1369 stringify!(parameter_count)
1370 )
1371 );
1372 assert_eq!(
1373 unsafe {
1374 &(*(::std::ptr::null::<_k4a_calibration_intrinsics_t>())).parameters as *const _
1375 as usize
1376 },
1377 8usize,
1378 concat!(
1379 "Offset of field: ",
1380 stringify!(_k4a_calibration_intrinsics_t),
1381 "::",
1382 stringify!(parameters)
1383 )
1384 );
1385}
1386impl Default for _k4a_calibration_intrinsics_t {
1387 fn default() -> Self {
1388 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1389 unsafe {
1390 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1391 s.assume_init()
1392 }
1393 }
1394}
1395#[doc = " Camera sensor intrinsic calibration data."]
1396#[doc = ""]
1397#[doc = " \\remarks"]
1398#[doc = " Intrinsic calibration represents the internal optical properties of the camera."]
1399#[doc = ""]
1400#[doc = " \\remarks"]
1401#[doc = " Azure Kinect devices are calibrated with Brown Conrady which is compatible"]
1402#[doc = " with OpenCV."]
1403#[doc = ""]
1404#[doc = " \\relates k4a_calibration_camera_t"]
1405#[doc = ""]
1406#[doc = " \\xmlonly"]
1407#[doc = " <requirements>"]
1408#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1409#[doc = " </requirements>"]
1410#[doc = " \\endxmlonly"]
1411pub type k4a_calibration_intrinsics_t = _k4a_calibration_intrinsics_t;
1412#[doc = " Camera calibration contains intrinsic and extrinsic calibration information for a camera."]
1413#[doc = ""]
1414#[doc = " \\relates k4a_calibration_camera_t"]
1415#[doc = ""]
1416#[doc = " \\xmlonly"]
1417#[doc = " <requirements>"]
1418#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1419#[doc = " </requirements>"]
1420#[doc = " \\endxmlonly"]
1421#[repr(C)]
1422#[derive(Copy, Clone)]
1423pub struct _k4a_calibration_camera_t {
1424 #[doc = "< Extrinsic calibration data."]
1425 pub extrinsics: k4a_calibration_extrinsics_t,
1426 #[doc = "< Intrinsic calibration data."]
1427 pub intrinsics: k4a_calibration_intrinsics_t,
1428 #[doc = "< Resolution width of the calibration sensor."]
1429 pub resolution_width: ::std::os::raw::c_int,
1430 #[doc = "< Resolution height of the calibration sensor."]
1431 pub resolution_height: ::std::os::raw::c_int,
1432 #[doc = "< Max FOV of the camera."]
1433 pub metric_radius: f32,
1434}
1435#[test]
1436fn bindgen_test_layout__k4a_calibration_camera_t() {
1437 assert_eq!(
1438 ::std::mem::size_of::<_k4a_calibration_camera_t>(),
1439 128usize,
1440 concat!("Size of: ", stringify!(_k4a_calibration_camera_t))
1441 );
1442 assert_eq!(
1443 ::std::mem::align_of::<_k4a_calibration_camera_t>(),
1444 4usize,
1445 concat!("Alignment of ", stringify!(_k4a_calibration_camera_t))
1446 );
1447 assert_eq!(
1448 unsafe {
1449 &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).extrinsics as *const _ as usize
1450 },
1451 0usize,
1452 concat!(
1453 "Offset of field: ",
1454 stringify!(_k4a_calibration_camera_t),
1455 "::",
1456 stringify!(extrinsics)
1457 )
1458 );
1459 assert_eq!(
1460 unsafe {
1461 &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).intrinsics as *const _ as usize
1462 },
1463 48usize,
1464 concat!(
1465 "Offset of field: ",
1466 stringify!(_k4a_calibration_camera_t),
1467 "::",
1468 stringify!(intrinsics)
1469 )
1470 );
1471 assert_eq!(
1472 unsafe {
1473 &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).resolution_width as *const _
1474 as usize
1475 },
1476 116usize,
1477 concat!(
1478 "Offset of field: ",
1479 stringify!(_k4a_calibration_camera_t),
1480 "::",
1481 stringify!(resolution_width)
1482 )
1483 );
1484 assert_eq!(
1485 unsafe {
1486 &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).resolution_height as *const _
1487 as usize
1488 },
1489 120usize,
1490 concat!(
1491 "Offset of field: ",
1492 stringify!(_k4a_calibration_camera_t),
1493 "::",
1494 stringify!(resolution_height)
1495 )
1496 );
1497 assert_eq!(
1498 unsafe {
1499 &(*(::std::ptr::null::<_k4a_calibration_camera_t>())).metric_radius as *const _ as usize
1500 },
1501 124usize,
1502 concat!(
1503 "Offset of field: ",
1504 stringify!(_k4a_calibration_camera_t),
1505 "::",
1506 stringify!(metric_radius)
1507 )
1508 );
1509}
1510impl Default for _k4a_calibration_camera_t {
1511 fn default() -> Self {
1512 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1513 unsafe {
1514 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1515 s.assume_init()
1516 }
1517 }
1518}
1519#[doc = " Camera calibration contains intrinsic and extrinsic calibration information for a camera."]
1520#[doc = ""]
1521#[doc = " \\relates k4a_calibration_camera_t"]
1522#[doc = ""]
1523#[doc = " \\xmlonly"]
1524#[doc = " <requirements>"]
1525#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1526#[doc = " </requirements>"]
1527#[doc = " \\endxmlonly"]
1528pub type k4a_calibration_camera_t = _k4a_calibration_camera_t;
1529#[doc = " Calibration type representing device calibration."]
1530#[doc = ""]
1531#[doc = " \\xmlonly"]
1532#[doc = " <requirements>"]
1533#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1534#[doc = " </requirements>"]
1535#[doc = " \\endxmlonly"]
1536#[repr(C)]
1537#[derive(Copy, Clone)]
1538pub struct _k4a_calibration_t {
1539 #[doc = "< Depth camera calibration."]
1540 pub depth_camera_calibration: k4a_calibration_camera_t,
1541 #[doc = "< Color camera calibration."]
1542 pub color_camera_calibration: k4a_calibration_camera_t,
1543 #[doc = " Extrinsic transformation parameters."]
1544 #[doc = ""]
1545 #[doc = " The extrinsic parameters allow 3D coordinate conversions between depth camera, color camera, the IMU's gyroscope"]
1546 #[doc = " and accelerometer. To transform from a source to a target 3D coordinate system, use the parameters stored"]
1547 #[doc = " under extrinsics[source][target]."]
1548 pub extrinsics: [[k4a_calibration_extrinsics_t; 4usize]; 4usize],
1549 #[doc = "< Depth camera mode for which calibration was obtained."]
1550 pub depth_mode: k4a_depth_mode_t,
1551 #[doc = "< Color camera resolution for which calibration was obtained."]
1552 pub color_resolution: k4a_color_resolution_t,
1553}
1554#[test]
1555fn bindgen_test_layout__k4a_calibration_t() {
1556 assert_eq!(
1557 ::std::mem::size_of::<_k4a_calibration_t>(),
1558 1032usize,
1559 concat!("Size of: ", stringify!(_k4a_calibration_t))
1560 );
1561 assert_eq!(
1562 ::std::mem::align_of::<_k4a_calibration_t>(),
1563 4usize,
1564 concat!("Alignment of ", stringify!(_k4a_calibration_t))
1565 );
1566 assert_eq!(
1567 unsafe {
1568 &(*(::std::ptr::null::<_k4a_calibration_t>())).depth_camera_calibration as *const _
1569 as usize
1570 },
1571 0usize,
1572 concat!(
1573 "Offset of field: ",
1574 stringify!(_k4a_calibration_t),
1575 "::",
1576 stringify!(depth_camera_calibration)
1577 )
1578 );
1579 assert_eq!(
1580 unsafe {
1581 &(*(::std::ptr::null::<_k4a_calibration_t>())).color_camera_calibration as *const _
1582 as usize
1583 },
1584 128usize,
1585 concat!(
1586 "Offset of field: ",
1587 stringify!(_k4a_calibration_t),
1588 "::",
1589 stringify!(color_camera_calibration)
1590 )
1591 );
1592 assert_eq!(
1593 unsafe { &(*(::std::ptr::null::<_k4a_calibration_t>())).extrinsics as *const _ as usize },
1594 256usize,
1595 concat!(
1596 "Offset of field: ",
1597 stringify!(_k4a_calibration_t),
1598 "::",
1599 stringify!(extrinsics)
1600 )
1601 );
1602 assert_eq!(
1603 unsafe { &(*(::std::ptr::null::<_k4a_calibration_t>())).depth_mode as *const _ as usize },
1604 1024usize,
1605 concat!(
1606 "Offset of field: ",
1607 stringify!(_k4a_calibration_t),
1608 "::",
1609 stringify!(depth_mode)
1610 )
1611 );
1612 assert_eq!(
1613 unsafe {
1614 &(*(::std::ptr::null::<_k4a_calibration_t>())).color_resolution as *const _ as usize
1615 },
1616 1028usize,
1617 concat!(
1618 "Offset of field: ",
1619 stringify!(_k4a_calibration_t),
1620 "::",
1621 stringify!(color_resolution)
1622 )
1623 );
1624}
1625impl Default for _k4a_calibration_t {
1626 fn default() -> Self {
1627 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1628 unsafe {
1629 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1630 s.assume_init()
1631 }
1632 }
1633}
1634#[doc = " Calibration type representing device calibration."]
1635#[doc = ""]
1636#[doc = " \\xmlonly"]
1637#[doc = " <requirements>"]
1638#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1639#[doc = " </requirements>"]
1640#[doc = " \\endxmlonly"]
1641pub type k4a_calibration_t = _k4a_calibration_t;
1642#[doc = " Version information."]
1643#[doc = ""]
1644#[doc = " \\xmlonly"]
1645#[doc = " <requirements>"]
1646#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1647#[doc = " </requirements>"]
1648#[doc = " \\endxmlonly"]
1649#[repr(C)]
1650#[derive(Debug, Default, Copy, Clone)]
1651pub struct _k4a_version_t {
1652 #[doc = "< Major version; represents a breaking change."]
1653 pub major: u32,
1654 #[doc = "< Minor version; represents additional features, no regression from lower versions with same"]
1655 #[doc = "major version."]
1656 pub minor: u32,
1657 #[doc = "< Reserved."]
1658 pub iteration: u32,
1659}
1660#[test]
1661fn bindgen_test_layout__k4a_version_t() {
1662 assert_eq!(
1663 ::std::mem::size_of::<_k4a_version_t>(),
1664 12usize,
1665 concat!("Size of: ", stringify!(_k4a_version_t))
1666 );
1667 assert_eq!(
1668 ::std::mem::align_of::<_k4a_version_t>(),
1669 4usize,
1670 concat!("Alignment of ", stringify!(_k4a_version_t))
1671 );
1672 assert_eq!(
1673 unsafe { &(*(::std::ptr::null::<_k4a_version_t>())).major as *const _ as usize },
1674 0usize,
1675 concat!(
1676 "Offset of field: ",
1677 stringify!(_k4a_version_t),
1678 "::",
1679 stringify!(major)
1680 )
1681 );
1682 assert_eq!(
1683 unsafe { &(*(::std::ptr::null::<_k4a_version_t>())).minor as *const _ as usize },
1684 4usize,
1685 concat!(
1686 "Offset of field: ",
1687 stringify!(_k4a_version_t),
1688 "::",
1689 stringify!(minor)
1690 )
1691 );
1692 assert_eq!(
1693 unsafe { &(*(::std::ptr::null::<_k4a_version_t>())).iteration as *const _ as usize },
1694 8usize,
1695 concat!(
1696 "Offset of field: ",
1697 stringify!(_k4a_version_t),
1698 "::",
1699 stringify!(iteration)
1700 )
1701 );
1702}
1703#[doc = " Version information."]
1704#[doc = ""]
1705#[doc = " \\xmlonly"]
1706#[doc = " <requirements>"]
1707#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1708#[doc = " </requirements>"]
1709#[doc = " \\endxmlonly"]
1710pub type k4a_version_t = _k4a_version_t;
1711#[doc = " Structure to define hardware version."]
1712#[doc = ""]
1713#[doc = " \\xmlonly"]
1714#[doc = " <requirements>"]
1715#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1716#[doc = " </requirements>"]
1717#[doc = " \\endxmlonly"]
1718#[repr(C)]
1719#[derive(Debug, Copy, Clone)]
1720pub struct _k4a_hardware_version_t {
1721 #[doc = "< Color camera firmware version."]
1722 pub rgb: k4a_version_t,
1723 #[doc = "< Depth camera firmware version."]
1724 pub depth: k4a_version_t,
1725 #[doc = "< Audio device firmware version."]
1726 pub audio: k4a_version_t,
1727 #[doc = "< Depth sensor firmware version."]
1728 pub depth_sensor: k4a_version_t,
1729 #[doc = "< Build type reported by the firmware."]
1730 pub firmware_build: k4a_firmware_build_t,
1731 #[doc = "< Signature type of the firmware."]
1732 pub firmware_signature: k4a_firmware_signature_t,
1733}
1734#[test]
1735fn bindgen_test_layout__k4a_hardware_version_t() {
1736 assert_eq!(
1737 ::std::mem::size_of::<_k4a_hardware_version_t>(),
1738 56usize,
1739 concat!("Size of: ", stringify!(_k4a_hardware_version_t))
1740 );
1741 assert_eq!(
1742 ::std::mem::align_of::<_k4a_hardware_version_t>(),
1743 4usize,
1744 concat!("Alignment of ", stringify!(_k4a_hardware_version_t))
1745 );
1746 assert_eq!(
1747 unsafe { &(*(::std::ptr::null::<_k4a_hardware_version_t>())).rgb as *const _ as usize },
1748 0usize,
1749 concat!(
1750 "Offset of field: ",
1751 stringify!(_k4a_hardware_version_t),
1752 "::",
1753 stringify!(rgb)
1754 )
1755 );
1756 assert_eq!(
1757 unsafe { &(*(::std::ptr::null::<_k4a_hardware_version_t>())).depth as *const _ as usize },
1758 12usize,
1759 concat!(
1760 "Offset of field: ",
1761 stringify!(_k4a_hardware_version_t),
1762 "::",
1763 stringify!(depth)
1764 )
1765 );
1766 assert_eq!(
1767 unsafe { &(*(::std::ptr::null::<_k4a_hardware_version_t>())).audio as *const _ as usize },
1768 24usize,
1769 concat!(
1770 "Offset of field: ",
1771 stringify!(_k4a_hardware_version_t),
1772 "::",
1773 stringify!(audio)
1774 )
1775 );
1776 assert_eq!(
1777 unsafe {
1778 &(*(::std::ptr::null::<_k4a_hardware_version_t>())).depth_sensor as *const _ as usize
1779 },
1780 36usize,
1781 concat!(
1782 "Offset of field: ",
1783 stringify!(_k4a_hardware_version_t),
1784 "::",
1785 stringify!(depth_sensor)
1786 )
1787 );
1788 assert_eq!(
1789 unsafe {
1790 &(*(::std::ptr::null::<_k4a_hardware_version_t>())).firmware_build as *const _ as usize
1791 },
1792 48usize,
1793 concat!(
1794 "Offset of field: ",
1795 stringify!(_k4a_hardware_version_t),
1796 "::",
1797 stringify!(firmware_build)
1798 )
1799 );
1800 assert_eq!(
1801 unsafe {
1802 &(*(::std::ptr::null::<_k4a_hardware_version_t>())).firmware_signature as *const _
1803 as usize
1804 },
1805 52usize,
1806 concat!(
1807 "Offset of field: ",
1808 stringify!(_k4a_hardware_version_t),
1809 "::",
1810 stringify!(firmware_signature)
1811 )
1812 );
1813}
1814impl Default for _k4a_hardware_version_t {
1815 fn default() -> Self {
1816 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1817 unsafe {
1818 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1819 s.assume_init()
1820 }
1821 }
1822}
1823#[doc = " Structure to define hardware version."]
1824#[doc = ""]
1825#[doc = " \\xmlonly"]
1826#[doc = " <requirements>"]
1827#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1828#[doc = " </requirements>"]
1829#[doc = " \\endxmlonly"]
1830pub type k4a_hardware_version_t = _k4a_hardware_version_t;
1831#[doc = " Two dimensional floating point vector."]
1832#[doc = ""]
1833#[doc = " \\xmlonly"]
1834#[doc = " <requirements>"]
1835#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1836#[doc = " </requirements>"]
1837#[doc = " \\endxmlonly"]
1838#[repr(C)]
1839#[derive(Copy, Clone)]
1840pub union k4a_float2_t {
1841 #[doc = "< X, Y representation of a vector"]
1842 pub xy: k4a_float2_t__xy,
1843 #[doc = "< Array representation of a vector"]
1844 pub v: [f32; 2usize],
1845}
1846#[doc = " XY or array representation of vector"]
1847#[repr(C)]
1848#[derive(Debug, Default, Copy, Clone)]
1849pub struct k4a_float2_t__xy {
1850 #[doc = "< X component of a vector"]
1851 pub x: f32,
1852 #[doc = "< Y component of a vector"]
1853 pub y: f32,
1854}
1855#[test]
1856fn bindgen_test_layout_k4a_float2_t__xy() {
1857 assert_eq!(
1858 ::std::mem::size_of::<k4a_float2_t__xy>(),
1859 8usize,
1860 concat!("Size of: ", stringify!(k4a_float2_t__xy))
1861 );
1862 assert_eq!(
1863 ::std::mem::align_of::<k4a_float2_t__xy>(),
1864 4usize,
1865 concat!("Alignment of ", stringify!(k4a_float2_t__xy))
1866 );
1867 assert_eq!(
1868 unsafe { &(*(::std::ptr::null::<k4a_float2_t__xy>())).x as *const _ as usize },
1869 0usize,
1870 concat!(
1871 "Offset of field: ",
1872 stringify!(k4a_float2_t__xy),
1873 "::",
1874 stringify!(x)
1875 )
1876 );
1877 assert_eq!(
1878 unsafe { &(*(::std::ptr::null::<k4a_float2_t__xy>())).y as *const _ as usize },
1879 4usize,
1880 concat!(
1881 "Offset of field: ",
1882 stringify!(k4a_float2_t__xy),
1883 "::",
1884 stringify!(y)
1885 )
1886 );
1887}
1888#[test]
1889fn bindgen_test_layout_k4a_float2_t() {
1890 assert_eq!(
1891 ::std::mem::size_of::<k4a_float2_t>(),
1892 8usize,
1893 concat!("Size of: ", stringify!(k4a_float2_t))
1894 );
1895 assert_eq!(
1896 ::std::mem::align_of::<k4a_float2_t>(),
1897 4usize,
1898 concat!("Alignment of ", stringify!(k4a_float2_t))
1899 );
1900 assert_eq!(
1901 unsafe { &(*(::std::ptr::null::<k4a_float2_t>())).xy as *const _ as usize },
1902 0usize,
1903 concat!(
1904 "Offset of field: ",
1905 stringify!(k4a_float2_t),
1906 "::",
1907 stringify!(xy)
1908 )
1909 );
1910 assert_eq!(
1911 unsafe { &(*(::std::ptr::null::<k4a_float2_t>())).v as *const _ as usize },
1912 0usize,
1913 concat!(
1914 "Offset of field: ",
1915 stringify!(k4a_float2_t),
1916 "::",
1917 stringify!(v)
1918 )
1919 );
1920}
1921impl Default for k4a_float2_t {
1922 fn default() -> Self {
1923 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1924 unsafe {
1925 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1926 s.assume_init()
1927 }
1928 }
1929}
1930#[doc = " Three dimensional floating point vector."]
1931#[doc = ""]
1932#[doc = " \\xmlonly"]
1933#[doc = " <requirements>"]
1934#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
1935#[doc = " </requirements>"]
1936#[doc = " \\endxmlonly"]
1937#[repr(C)]
1938#[derive(Copy, Clone)]
1939pub union k4a_float3_t {
1940 #[doc = "< X, Y, Z representation of a vector."]
1941 pub xyz: k4a_float3_t__xyz,
1942 #[doc = "< Array representation of a vector."]
1943 pub v: [f32; 3usize],
1944}
1945#[doc = " XYZ or array representation of vector."]
1946#[repr(C)]
1947#[derive(Debug, Default, Copy, Clone)]
1948pub struct k4a_float3_t__xyz {
1949 #[doc = "< X component of a vector."]
1950 pub x: f32,
1951 #[doc = "< Y component of a vector."]
1952 pub y: f32,
1953 #[doc = "< Z component of a vector."]
1954 pub z: f32,
1955}
1956#[test]
1957fn bindgen_test_layout_k4a_float3_t__xyz() {
1958 assert_eq!(
1959 ::std::mem::size_of::<k4a_float3_t__xyz>(),
1960 12usize,
1961 concat!("Size of: ", stringify!(k4a_float3_t__xyz))
1962 );
1963 assert_eq!(
1964 ::std::mem::align_of::<k4a_float3_t__xyz>(),
1965 4usize,
1966 concat!("Alignment of ", stringify!(k4a_float3_t__xyz))
1967 );
1968 assert_eq!(
1969 unsafe { &(*(::std::ptr::null::<k4a_float3_t__xyz>())).x as *const _ as usize },
1970 0usize,
1971 concat!(
1972 "Offset of field: ",
1973 stringify!(k4a_float3_t__xyz),
1974 "::",
1975 stringify!(x)
1976 )
1977 );
1978 assert_eq!(
1979 unsafe { &(*(::std::ptr::null::<k4a_float3_t__xyz>())).y as *const _ as usize },
1980 4usize,
1981 concat!(
1982 "Offset of field: ",
1983 stringify!(k4a_float3_t__xyz),
1984 "::",
1985 stringify!(y)
1986 )
1987 );
1988 assert_eq!(
1989 unsafe { &(*(::std::ptr::null::<k4a_float3_t__xyz>())).z as *const _ as usize },
1990 8usize,
1991 concat!(
1992 "Offset of field: ",
1993 stringify!(k4a_float3_t__xyz),
1994 "::",
1995 stringify!(z)
1996 )
1997 );
1998}
1999#[test]
2000fn bindgen_test_layout_k4a_float3_t() {
2001 assert_eq!(
2002 ::std::mem::size_of::<k4a_float3_t>(),
2003 12usize,
2004 concat!("Size of: ", stringify!(k4a_float3_t))
2005 );
2006 assert_eq!(
2007 ::std::mem::align_of::<k4a_float3_t>(),
2008 4usize,
2009 concat!("Alignment of ", stringify!(k4a_float3_t))
2010 );
2011 assert_eq!(
2012 unsafe { &(*(::std::ptr::null::<k4a_float3_t>())).xyz as *const _ as usize },
2013 0usize,
2014 concat!(
2015 "Offset of field: ",
2016 stringify!(k4a_float3_t),
2017 "::",
2018 stringify!(xyz)
2019 )
2020 );
2021 assert_eq!(
2022 unsafe { &(*(::std::ptr::null::<k4a_float3_t>())).v as *const _ as usize },
2023 0usize,
2024 concat!(
2025 "Offset of field: ",
2026 stringify!(k4a_float3_t),
2027 "::",
2028 stringify!(v)
2029 )
2030 );
2031}
2032impl Default for k4a_float3_t {
2033 fn default() -> Self {
2034 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2035 unsafe {
2036 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2037 s.assume_init()
2038 }
2039 }
2040}
2041#[doc = " IMU sample."]
2042#[doc = ""]
2043#[doc = " \\xmlonly"]
2044#[doc = " <requirements>"]
2045#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
2046#[doc = " </requirements>"]
2047#[doc = " \\endxmlonly"]
2048#[repr(C)]
2049#[derive(Copy, Clone)]
2050pub struct _k4a_imu_sample_t {
2051 #[doc = "< Temperature reading of this sample (Celsius)."]
2052 pub temperature: f32,
2053 #[doc = "< Accelerometer sample in meters per second squared."]
2054 pub acc_sample: k4a_float3_t,
2055 #[doc = "< Timestamp of the accelerometer in microseconds."]
2056 pub acc_timestamp_usec: u64,
2057 #[doc = "< Gyro sample in radians per second."]
2058 pub gyro_sample: k4a_float3_t,
2059 #[doc = "< Timestamp of the gyroscope in microseconds"]
2060 pub gyro_timestamp_usec: u64,
2061}
2062#[test]
2063fn bindgen_test_layout__k4a_imu_sample_t() {
2064 assert_eq!(
2065 ::std::mem::size_of::<_k4a_imu_sample_t>(),
2066 48usize,
2067 concat!("Size of: ", stringify!(_k4a_imu_sample_t))
2068 );
2069 assert_eq!(
2070 ::std::mem::align_of::<_k4a_imu_sample_t>(),
2071 8usize,
2072 concat!("Alignment of ", stringify!(_k4a_imu_sample_t))
2073 );
2074 assert_eq!(
2075 unsafe { &(*(::std::ptr::null::<_k4a_imu_sample_t>())).temperature as *const _ as usize },
2076 0usize,
2077 concat!(
2078 "Offset of field: ",
2079 stringify!(_k4a_imu_sample_t),
2080 "::",
2081 stringify!(temperature)
2082 )
2083 );
2084 assert_eq!(
2085 unsafe { &(*(::std::ptr::null::<_k4a_imu_sample_t>())).acc_sample as *const _ as usize },
2086 4usize,
2087 concat!(
2088 "Offset of field: ",
2089 stringify!(_k4a_imu_sample_t),
2090 "::",
2091 stringify!(acc_sample)
2092 )
2093 );
2094 assert_eq!(
2095 unsafe {
2096 &(*(::std::ptr::null::<_k4a_imu_sample_t>())).acc_timestamp_usec as *const _ as usize
2097 },
2098 16usize,
2099 concat!(
2100 "Offset of field: ",
2101 stringify!(_k4a_imu_sample_t),
2102 "::",
2103 stringify!(acc_timestamp_usec)
2104 )
2105 );
2106 assert_eq!(
2107 unsafe { &(*(::std::ptr::null::<_k4a_imu_sample_t>())).gyro_sample as *const _ as usize },
2108 24usize,
2109 concat!(
2110 "Offset of field: ",
2111 stringify!(_k4a_imu_sample_t),
2112 "::",
2113 stringify!(gyro_sample)
2114 )
2115 );
2116 assert_eq!(
2117 unsafe {
2118 &(*(::std::ptr::null::<_k4a_imu_sample_t>())).gyro_timestamp_usec as *const _ as usize
2119 },
2120 40usize,
2121 concat!(
2122 "Offset of field: ",
2123 stringify!(_k4a_imu_sample_t),
2124 "::",
2125 stringify!(gyro_timestamp_usec)
2126 )
2127 );
2128}
2129impl Default for _k4a_imu_sample_t {
2130 fn default() -> Self {
2131 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2132 unsafe {
2133 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2134 s.assume_init()
2135 }
2136 }
2137}
2138#[doc = " IMU sample."]
2139#[doc = ""]
2140#[doc = " \\xmlonly"]
2141#[doc = " <requirements>"]
2142#[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
2143#[doc = " </requirements>"]
2144#[doc = " \\endxmlonly"]
2145pub type k4a_imu_sample_t = _k4a_imu_sample_t;
2146extern "C" {
2147 #[doc = " Initial configuration setting for disabling all sensors."]
2148 #[doc = ""]
2149 #[doc = " \\remarks"]
2150 #[doc = " Use this setting to initialize a \\ref k4a_device_configuration_t to a disabled state."]
2151 #[doc = ""]
2152 #[doc = " \\xmlonly"]
2153 #[doc = " <requirements>"]
2154 #[doc = " <requirement name=\"Header\">k4atypes.h (include k4a/k4a.h)</requirement>"]
2155 #[doc = " </requirements>"]
2156 #[doc = " \\endxmlonly"]
2157 pub static K4A_DEVICE_CONFIG_INIT_DISABLE_ALL: k4a_device_configuration_t;
2158}
2159pub struct Funcs {
2160 pub k4a_device_get_installed_count: unsafe extern "C" fn() -> u32,
2161 pub k4a_set_debug_message_handler: unsafe extern "C" fn(
2162 message_cb: k4a_logging_message_cb_t,
2163 message_cb_context: *mut ::std::os::raw::c_void,
2164 min_level: k4a_log_level_t,
2165 ) -> k4a_result_t,
2166 pub k4a_set_allocator: unsafe extern "C" fn(
2167 allocate: k4a_memory_allocate_cb_t,
2168 free: k4a_memory_destroy_cb_t,
2169 ) -> k4a_result_t,
2170 pub k4a_device_open:
2171 unsafe extern "C" fn(index: u32, device_handle: *mut k4a_device_t) -> k4a_result_t,
2172 pub k4a_device_close: unsafe extern "C" fn(device_handle: k4a_device_t),
2173 pub k4a_device_get_capture: unsafe extern "C" fn(
2174 device_handle: k4a_device_t,
2175 capture_handle: *mut k4a_capture_t,
2176 timeout_in_ms: i32,
2177 ) -> k4a_wait_result_t,
2178 pub k4a_device_get_imu_sample: unsafe extern "C" fn(
2179 device_handle: k4a_device_t,
2180 imu_sample: *mut k4a_imu_sample_t,
2181 timeout_in_ms: i32,
2182 ) -> k4a_wait_result_t,
2183 pub k4a_capture_create:
2184 unsafe extern "C" fn(capture_handle: *mut k4a_capture_t) -> k4a_result_t,
2185 pub k4a_capture_release: unsafe extern "C" fn(capture_handle: k4a_capture_t),
2186 pub k4a_capture_reference: unsafe extern "C" fn(capture_handle: k4a_capture_t),
2187 pub k4a_capture_get_color_image:
2188 unsafe extern "C" fn(capture_handle: k4a_capture_t) -> k4a_image_t,
2189 pub k4a_capture_get_depth_image:
2190 unsafe extern "C" fn(capture_handle: k4a_capture_t) -> k4a_image_t,
2191 pub k4a_capture_get_ir_image:
2192 unsafe extern "C" fn(capture_handle: k4a_capture_t) -> k4a_image_t,
2193 pub k4a_capture_set_color_image:
2194 unsafe extern "C" fn(capture_handle: k4a_capture_t, image_handle: k4a_image_t),
2195 pub k4a_capture_set_depth_image:
2196 unsafe extern "C" fn(capture_handle: k4a_capture_t, image_handle: k4a_image_t),
2197 pub k4a_capture_set_ir_image:
2198 unsafe extern "C" fn(capture_handle: k4a_capture_t, image_handle: k4a_image_t),
2199 pub k4a_capture_set_temperature_c:
2200 unsafe extern "C" fn(capture_handle: k4a_capture_t, temperature_c: f32),
2201 pub k4a_capture_get_temperature_c: unsafe extern "C" fn(capture_handle: k4a_capture_t) -> f32,
2202 pub k4a_image_create: unsafe extern "C" fn(
2203 format: k4a_image_format_t,
2204 width_pixels: ::std::os::raw::c_int,
2205 height_pixels: ::std::os::raw::c_int,
2206 stride_bytes: ::std::os::raw::c_int,
2207 image_handle: *mut k4a_image_t,
2208 ) -> k4a_result_t,
2209 pub k4a_image_create_from_buffer: unsafe extern "C" fn(
2210 format: k4a_image_format_t,
2211 width_pixels: ::std::os::raw::c_int,
2212 height_pixels: ::std::os::raw::c_int,
2213 stride_bytes: ::std::os::raw::c_int,
2214 buffer: *mut u8,
2215 buffer_size: usize,
2216 buffer_release_cb: k4a_memory_destroy_cb_t,
2217 buffer_release_cb_context: *mut ::std::os::raw::c_void,
2218 image_handle: *mut k4a_image_t,
2219 ) -> k4a_result_t,
2220 pub k4a_image_get_buffer: unsafe extern "C" fn(image_handle: k4a_image_t) -> *mut u8,
2221 pub k4a_image_get_size: unsafe extern "C" fn(image_handle: k4a_image_t) -> usize,
2222 pub k4a_image_get_format: unsafe extern "C" fn(image_handle: k4a_image_t) -> k4a_image_format_t,
2223 pub k4a_image_get_width_pixels:
2224 unsafe extern "C" fn(image_handle: k4a_image_t) -> ::std::os::raw::c_int,
2225 pub k4a_image_get_height_pixels:
2226 unsafe extern "C" fn(image_handle: k4a_image_t) -> ::std::os::raw::c_int,
2227 pub k4a_image_get_stride_bytes:
2228 unsafe extern "C" fn(image_handle: k4a_image_t) -> ::std::os::raw::c_int,
2229 pub k4a_image_get_timestamp_usec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2230 pub k4a_image_get_device_timestamp_usec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2231 pub k4a_image_get_system_timestamp_nsec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2232 pub k4a_image_get_exposure_usec: unsafe extern "C" fn(image_handle: k4a_image_t) -> u64,
2233 pub k4a_image_get_white_balance: unsafe extern "C" fn(image_handle: k4a_image_t) -> u32,
2234 pub k4a_image_get_iso_speed: unsafe extern "C" fn(image_handle: k4a_image_t) -> u32,
2235 pub k4a_image_set_device_timestamp_usec:
2236 unsafe extern "C" fn(image_handle: k4a_image_t, timestamp_usec: u64),
2237 pub k4a_image_set_timestamp_usec:
2238 unsafe extern "C" fn(image_handle: k4a_image_t, timestamp_usec: u64),
2239 pub k4a_image_set_system_timestamp_nsec:
2240 unsafe extern "C" fn(image_handle: k4a_image_t, timestamp_nsec: u64),
2241 pub k4a_image_set_exposure_usec:
2242 unsafe extern "C" fn(image_handle: k4a_image_t, exposure_usec: u64),
2243 pub k4a_image_set_exposure_time_usec:
2244 unsafe extern "C" fn(image_handle: k4a_image_t, exposure_usec: u64),
2245 pub k4a_image_set_white_balance:
2246 unsafe extern "C" fn(image_handle: k4a_image_t, white_balance: u32),
2247 pub k4a_image_set_iso_speed: unsafe extern "C" fn(image_handle: k4a_image_t, iso_speed: u32),
2248 pub k4a_image_reference: unsafe extern "C" fn(image_handle: k4a_image_t),
2249 pub k4a_image_release: unsafe extern "C" fn(image_handle: k4a_image_t),
2250 pub k4a_device_start_cameras: unsafe extern "C" fn(
2251 device_handle: k4a_device_t,
2252 config: *const k4a_device_configuration_t,
2253 ) -> k4a_result_t,
2254 pub k4a_device_stop_cameras: unsafe extern "C" fn(device_handle: k4a_device_t),
2255 pub k4a_device_start_imu: unsafe extern "C" fn(device_handle: k4a_device_t) -> k4a_result_t,
2256 pub k4a_device_stop_imu: unsafe extern "C" fn(device_handle: k4a_device_t),
2257 pub k4a_device_get_serialnum: unsafe extern "C" fn(
2258 device_handle: k4a_device_t,
2259 serial_number: *mut ::std::os::raw::c_char,
2260 serial_number_size: *mut usize,
2261 ) -> k4a_buffer_result_t,
2262 pub k4a_device_get_version: unsafe extern "C" fn(
2263 device_handle: k4a_device_t,
2264 version: *mut k4a_hardware_version_t,
2265 ) -> k4a_result_t,
2266 pub k4a_device_get_color_control_capabilities: unsafe extern "C" fn(
2267 device_handle: k4a_device_t,
2268 command: k4a_color_control_command_t,
2269 supports_auto: *mut bool,
2270 min_value: *mut i32,
2271 max_value: *mut i32,
2272 step_value: *mut i32,
2273 default_value: *mut i32,
2274 default_mode: *mut k4a_color_control_mode_t,
2275 ) -> k4a_result_t,
2276 pub k4a_device_get_color_control: unsafe extern "C" fn(
2277 device_handle: k4a_device_t,
2278 command: k4a_color_control_command_t,
2279 mode: *mut k4a_color_control_mode_t,
2280 value: *mut i32,
2281 ) -> k4a_result_t,
2282 pub k4a_device_set_color_control: unsafe extern "C" fn(
2283 device_handle: k4a_device_t,
2284 command: k4a_color_control_command_t,
2285 mode: k4a_color_control_mode_t,
2286 value: i32,
2287 ) -> k4a_result_t,
2288 pub k4a_device_get_raw_calibration: unsafe extern "C" fn(
2289 device_handle: k4a_device_t,
2290 data: *mut u8,
2291 data_size: *mut usize,
2292 ) -> k4a_buffer_result_t,
2293 pub k4a_device_get_calibration: unsafe extern "C" fn(
2294 device_handle: k4a_device_t,
2295 depth_mode: k4a_depth_mode_t,
2296 color_resolution: k4a_color_resolution_t,
2297 calibration: *mut k4a_calibration_t,
2298 ) -> k4a_result_t,
2299 pub k4a_device_get_sync_jack: unsafe extern "C" fn(
2300 device_handle: k4a_device_t,
2301 sync_in_jack_connected: *mut bool,
2302 sync_out_jack_connected: *mut bool,
2303 ) -> k4a_result_t,
2304 pub k4a_calibration_get_from_raw: unsafe extern "C" fn(
2305 raw_calibration: *mut ::std::os::raw::c_char,
2306 raw_calibration_size: usize,
2307 depth_mode: k4a_depth_mode_t,
2308 color_resolution: k4a_color_resolution_t,
2309 calibration: *mut k4a_calibration_t,
2310 ) -> k4a_result_t,
2311 pub k4a_calibration_3d_to_3d: unsafe extern "C" fn(
2312 calibration: *const k4a_calibration_t,
2313 source_point3d_mm: *const k4a_float3_t,
2314 source_camera: k4a_calibration_type_t,
2315 target_camera: k4a_calibration_type_t,
2316 target_point3d_mm: *mut k4a_float3_t,
2317 ) -> k4a_result_t,
2318 pub k4a_calibration_2d_to_3d: unsafe extern "C" fn(
2319 calibration: *const k4a_calibration_t,
2320 source_point2d: *const k4a_float2_t,
2321 source_depth_mm: f32,
2322 source_camera: k4a_calibration_type_t,
2323 target_camera: k4a_calibration_type_t,
2324 target_point3d_mm: *mut k4a_float3_t,
2325 valid: *mut ::std::os::raw::c_int,
2326 ) -> k4a_result_t,
2327 pub k4a_calibration_3d_to_2d: unsafe extern "C" fn(
2328 calibration: *const k4a_calibration_t,
2329 source_point3d_mm: *const k4a_float3_t,
2330 source_camera: k4a_calibration_type_t,
2331 target_camera: k4a_calibration_type_t,
2332 target_point2d: *mut k4a_float2_t,
2333 valid: *mut ::std::os::raw::c_int,
2334 ) -> k4a_result_t,
2335 pub k4a_calibration_2d_to_2d: unsafe extern "C" fn(
2336 calibration: *const k4a_calibration_t,
2337 source_point2d: *const k4a_float2_t,
2338 source_depth_mm: f32,
2339 source_camera: k4a_calibration_type_t,
2340 target_camera: k4a_calibration_type_t,
2341 target_point2d: *mut k4a_float2_t,
2342 valid: *mut ::std::os::raw::c_int,
2343 ) -> k4a_result_t,
2344 pub k4a_calibration_color_2d_to_depth_2d: unsafe extern "C" fn(
2345 calibration: *const k4a_calibration_t,
2346 source_point2d: *const k4a_float2_t,
2347 depth_image: k4a_image_t,
2348 target_point2d: *mut k4a_float2_t,
2349 valid: *mut ::std::os::raw::c_int,
2350 ) -> k4a_result_t,
2351 pub k4a_transformation_create:
2352 unsafe extern "C" fn(calibration: *const k4a_calibration_t) -> k4a_transformation_t,
2353 pub k4a_transformation_destroy:
2354 unsafe extern "C" fn(transformation_handle: k4a_transformation_t),
2355 pub k4a_transformation_depth_image_to_color_camera: unsafe extern "C" fn(
2356 transformation_handle: k4a_transformation_t,
2357 depth_image: k4a_image_t,
2358 transformed_depth_image: k4a_image_t,
2359 ) -> k4a_result_t,
2360 pub k4a_transformation_depth_image_to_color_camera_custom: unsafe extern "C" fn(
2361 transformation_handle: k4a_transformation_t,
2362 depth_image: k4a_image_t,
2363 custom_image: k4a_image_t,
2364 transformed_depth_image: k4a_image_t,
2365 transformed_custom_image: k4a_image_t,
2366 interpolation_type: k4a_transformation_interpolation_type_t,
2367 invalid_custom_value: u32,
2368 )
2369 -> k4a_result_t,
2370 pub k4a_transformation_color_image_to_depth_camera: unsafe extern "C" fn(
2371 transformation_handle: k4a_transformation_t,
2372 depth_image: k4a_image_t,
2373 color_image: k4a_image_t,
2374 transformed_color_image: k4a_image_t,
2375 ) -> k4a_result_t,
2376 pub k4a_transformation_depth_image_to_point_cloud: unsafe extern "C" fn(
2377 transformation_handle: k4a_transformation_t,
2378 depth_image: k4a_image_t,
2379 camera: k4a_calibration_type_t,
2380 xyz_image: k4a_image_t,
2381 ) -> k4a_result_t,
2382}