use num_derive::{FromPrimitive, ToPrimitive};
use realsense_sys as sys;
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Rs2DistortionModel {
None = sys::rs2_distortion_RS2_DISTORTION_NONE as i32,
BrownConrady = sys::rs2_distortion_RS2_DISTORTION_BROWN_CONRADY as i32,
BrownConradyModified = sys::rs2_distortion_RS2_DISTORTION_MODIFIED_BROWN_CONRADY as i32,
BrownConradyInverse = sys::rs2_distortion_RS2_DISTORTION_INVERSE_BROWN_CONRADY as i32,
FThetaFisheye = sys::rs2_distortion_RS2_DISTORTION_FTHETA as i32,
KannalaBrandt = sys::rs2_distortion_RS2_DISTORTION_KANNALA_BRANDT4 as i32,
}
#[cfg(test)]
mod tests {
use super::*;
use num_traits::FromPrimitive;
#[test]
fn all_variants_exist() {
for i in 0..sys::rs2_distortion_RS2_DISTORTION_COUNT as i32 {
assert!(
Rs2DistortionModel::from_i32(i).is_some(),
"DistortionModel variant for ordinal {} does not exist.",
i,
);
}
}
}