#[cxx::bridge(namespace = "nuitrack_bridge::depth_sensor")]
pub mod ffi {
#[namespace = "nuitrack_bridge::vector3"]
unsafe extern "C++" {
type Vector3 = crate::nuitrack_bridge::types::vector3::ffi::Vector3;
}
#[namespace = "tdv::nuitrack"]
unsafe extern "C++" {
type DepthSensor;
type DepthFrame = crate::nuitrack_bridge::types::depth_frame::ffi::DepthFrame;
}
#[namespace = "nuitrack_bridge::output_mode"]
unsafe extern "C++" {
type OutputMode = crate::nuitrack_bridge::types::output_mode::ffi::OutputMode;
}
unsafe extern "C++" {
include!("nuitrack_bridge/modules/depth_sensor.h");
pub type c_void;
#[cxx_name = "createDepthSensor"]
pub fn create_depth_sensor() -> Result<SharedPtr<DepthSensor>>;
#[cxx_name = "connectOnNewFrameForAsync"]
pub unsafe fn connect_on_depth_frame_async(
sensor: &SharedPtr<DepthSensor>,
depth_frame_sender: *mut c_void, ) -> Result<u64>;
#[cxx_name = "disconnectOnNewFrame"]
pub fn disconnect_on_depth_frame(
sensor: &SharedPtr<DepthSensor>,
handler_id: u64,
) -> Result<()>;
#[cxx_name = "getDepthFrame"]
pub fn depth_frame(sensor: &SharedPtr<DepthSensor>) -> Result<SharedPtr<DepthFrame>>;
#[cxx_name = "getOutputMode"]
pub fn output_mode(sensor: &SharedPtr<DepthSensor>) -> Result<OutputMode>;
#[cxx_name = "isMirror"]
pub fn is_mirror(sensor: &SharedPtr<DepthSensor>) -> Result<bool>;
#[cxx_name = "setMirror"]
pub fn set_mirror(sensor: &SharedPtr<DepthSensor>, mirror: bool) -> Result<()>;
#[cxx_name = "convertProjToRealCoords"]
pub fn convert_proj_to_real_coords(sensor: &SharedPtr<DepthSensor>, p: &Vector3) -> Result<Vector3>;
#[cxx_name = "convertRealToProjCoords"]
pub fn convert_real_to_proj_coords(sensor: &SharedPtr<DepthSensor>, p: &Vector3) -> Result<Vector3>;
#[cxx_name = "getSensorTimestamp"]
pub fn timestamp(sensor: &SharedPtr<DepthSensor>) -> Result<u64>;
#[cxx_name = "canUpdate"]
pub fn can_update(sensor: &SharedPtr<DepthSensor>) -> Result<bool>;
}
}
unsafe impl Send for ffi::DepthSensor {}
unsafe impl Sync for ffi::DepthSensor {}