mesh_to_sdf 0.1.0

Mesh to signed distance field (SDF) converter
Documentation
use super::Point;

impl Point for [f32; 3] {
    fn new(x: f32, y: f32, z: f32) -> Self {
        [x, y, z]
    }

    fn x(&self) -> f32 {
        self[0]
    }

    fn y(&self) -> f32 {
        self[1]
    }

    fn z(&self) -> f32 {
        self[2]
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_point_aray() {
        let p1 = [1.0, 2.0, 3.0];
        let p2 = [4.0, 5.0, 6.0];

        let p3: [f32; 3] = Point::new(p1.x(), p1.y(), p1.z());
        assert_eq!(p3.x(), 1.0);
        assert_eq!(p3.y(), 2.0);
        assert_eq!(p3.z(), 3.0);

        assert_eq!(p1.add(&p2), [5.0, 7.0, 9.0]);
        assert_eq!(p1.sub(&p2), [-3.0, -3.0, -3.0]);
        assert_eq!(p1.dot(&p2), 32.0);
        assert_eq!(p1.length(), 3.7416575);
        assert_eq!(p1.dist(&p2), 5.196152);
        assert_eq!(p1.fmul(2.0), [2.0, 4.0, 6.0]);
        assert_eq!(p1.comp_div(&p2), [0.25, 0.4, 0.5]);
    }
}