nd_vector 0.1.0

[WIP] Lengthen! Shrink! Iterate! Scale! Twist and turn to your imagination along any dimension on a vector!
Documentation
use bevy::math::{Vec3, IVec3, Vec2, IVec2};

use crate::usage_types::coordinates::Coordinate;

impl From<Coordinate> for Vec3 {
    fn from(value: Coordinate) -> Self {
        let mut vec = [0.0; 3];
        for (i, float) in vec.iter_mut().enumerate() {
            *float = value.index(i) as f32;
        }
        Vec3::from(vec)
    }
}

impl From<Coordinate> for IVec3 {
    fn from(value: Coordinate) -> Self {
        let mut vec = [0; 3];
        for (i, float) in vec.iter_mut().enumerate() {
            *float = value.index(i) as i32;
        }
        IVec3::from(vec)
    }
}

impl From<Coordinate> for Vec2 {
    fn from(value: Coordinate) -> Self {
        let mut vec = [0.0; 2];
        for (i, float) in vec.iter_mut().enumerate() {
            *float = value.index(i) as f32;
        }
        Vec2::from(vec)
    }
}


impl From<Coordinate> for IVec2 {
    fn from(value: Coordinate) -> Self {
        let mut vec = [0; 2];
        for (i, float) in vec.iter_mut().enumerate() {
            *float = value.index(i) as i32;
        }
        IVec2::from(vec)
    }
}

impl From<IVec2> for Coordinate {
    fn from(value: IVec2) -> Self {
        Self::new(vec![value.x as isize, value.y as isize])
    }
}


impl From<IVec3> for Coordinate {
    fn from(value: IVec3) -> Self {
        Self::new(vec![value.x as isize, value.y as isize, value.z as isize])
    }
}