use crate::point::Color; use nalgebra::base::Matrix3; use crate::errors::{LJError,LJResult}; #[derive(Debug, Default)] pub struct EDH { pub matrix: Matrix3 } impl EDH { pub fn new(vec: Vec>) -> LJResult { if vec.len() != 3 || vec[0].len() != 3 || vec[1].len() != 3 || vec[2].len() != 3 { return Err(Box::new(LJError::BadEDH)); } // // [FIX] Not sure of the order, if is it's vec[x][y] or vec[y][x] ... // /* let matrix = Matrix3::new(vec[0][0], vec[0][1], vec[0][2], vec[1][0], vec[1][1], vec[1][2], vec[2][0], vec[2][1], vec[2][2]); */ // this is the matrix already transposed. let matrix = Matrix3::new(vec[0][0], vec[1][0], vec[2][0], vec[0][1], vec[1][1], vec[2][1], vec[0][2], vec[1][2], vec[2][2]); Ok(EDH { matrix }) } } #[derive(Debug, Default)] pub struct WorldState { pub edh: EDH, pub resampler: Vec, pub client_key: u8, pub intensity: u8, pub kpps: u32, pub color: Color } impl WorldState { }