f3l_core 0.3.0

3D Point Cloud Library
Documentation
use std::ops::Index;

use num_traits::NumCast;

/// Cast generic array to float array
pub trait F3lCast<T: NumCast>: Index<usize, Output = T> {
    #[inline]
    fn cast_f32<const D: usize>(&self) -> [f32; D] {
        let mut out = [0f32; D];
        (0..D).for_each(|i| out[i] = self[i].to_f32().unwrap());
        out
    }
    #[inline]
    fn cast_f64<const D: usize>(&self) -> [f64; D] {
        let mut out = [0f64; D];
        (0..D).for_each(|i| out[i] = self[i].to_f64().unwrap());
        out
    }
}

impl<T: NumCast, const D: usize> F3lCast<T> for [T; D] {}