lj_rust/src/transformer/grid.rs

49 lines
1.2 KiB
Rust

use crate::point::Point;
use crate::transformer::Transformers;
use crate::worldstate::WorldState;
use serde::{Deserialize, Serialize};
/// Translate
#[derive(Serialize, Deserialize, Debug, Clone, Copy)]
pub struct Grid {
width: f32,
height: f32,
}
fn square_box(size: f32, color: u32) -> Vec<(f32, f32, u32)> {
vec![
(-size, -size, 0),
(-size, -size, color),
(0.0, -size, color),
(0.0, -size, color),
(size, -size, color),
(size, -size, color),
(size, 0.0, color),
(size, 0.0, color),
(size, size, color),
(size, size, color),
(0.0, size, color),
(0.0, size, color),
(-size, size, color),
(-size, size, color),
(-size, 0.0, color),
(-size, 0.0, color),
(-size, -size, color),
(-size, -size, color),
(-size, -size, 0),
]
}
impl Transformers for Grid {
fn apply(&self, _point_list: &[Point], _ws: &WorldState) -> Vec<Point> {
let mut sq1 = square_box(1000.0, 255 << 8);
let mut line = square_box(2000.0, 255);
line.append(&mut sq1);
let line: Vec<Point> = line.into_iter().map(|tpl| tpl.into()).collect();
line
}
}