49 lines
1.2 KiB
Rust
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
|
|
}
|
|
}
|