Skip to content

Commit 7d9d035

Browse files
committed
Depth scale
It turns out that this is basically just 1000, but I wasn't sure. Topic: depth-scale
1 parent d28b0aa commit 7d9d035

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/frame.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,16 @@ pub struct DepthFrame {
6969
}
7070
impl_video_frame!(DepthFrame);
7171

72+
impl DepthFrame {
73+
/// Get the scale (pixel value * scale = distance in millimeters) of the depth frame
74+
pub fn depth_scale(&self) -> f32 {
75+
// Unwrap is safe here because internal pointer is guaranteed to be valid and a depth frame
76+
// SDK only returns error for this function if pointer is NULL or not a depth frame
77+
// Ref: https://github.com/orbbec/OrbbecSDK_v2/blob/815ae047cc977a1f7edd2b97b69ff6cd29f510b3/src/impl/Frame.cpp#L198
78+
self.inner.get_depth_scale().unwrap()
79+
}
80+
}
81+
7282
/// Point Cloud frame
7383
pub struct PointCloudFrame {
7484
inner: OBFrame,

src/sys/frame.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,16 @@ impl OBFrame {
150150

151151
Ok(scale)
152152
}
153+
154+
/// Get the depth frame scale.
155+
/// Only valid for depth frames.
156+
pub fn get_depth_scale(&self) -> Result<f32, OBError> {
157+
let mut err_ptr = std::ptr::null_mut();
158+
159+
let scale = unsafe { orb::ob_depth_frame_get_value_scale(self.inner, &mut err_ptr) };
160+
161+
OBError::consume(err_ptr)?;
162+
163+
Ok(scale)
164+
}
153165
}

0 commit comments

Comments
 (0)