use std::{fs::File, io::Write};
use rmesh::{write_rmesh, ComplexMesh, Header, RMeshError, Vertex, ROOM_SCALE};
fn main() -> Result<(), RMeshError> {
let mut args = std::env::args();
let _ = args.next();
let min_x = -1.0 / ROOM_SCALE;
let min_y = -1.0 / ROOM_SCALE;
let min_z = -1.0 / ROOM_SCALE;
let max_x = 1.0 / ROOM_SCALE;
let max_y = 1.0 / ROOM_SCALE;
let max_z = 1.0 / ROOM_SCALE;
let vertices = vec![
Vertex {
position: [min_x, min_y, max_z],
..Default::default()
},
Vertex {
position: [max_x, min_y, max_z],
..Default::default()
},
Vertex {
position: [max_x, max_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, max_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, max_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, max_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, min_y, min_z],
..Default::default()
},
Vertex {
position: [min_x, min_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, min_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, max_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, max_y, max_z],
..Default::default()
},
Vertex {
position: [max_x, min_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, min_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, max_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, max_y, min_z],
..Default::default()
},
Vertex {
position: [min_x, min_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, max_y, min_z],
..Default::default()
},
Vertex {
position: [min_x, max_y, min_z],
..Default::default()
},
Vertex {
position: [min_x, max_y, max_z],
..Default::default()
},
Vertex {
position: [max_x, max_y, max_z],
..Default::default()
},
Vertex {
position: [max_x, min_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, min_y, max_z],
..Default::default()
},
Vertex {
position: [min_x, min_y, min_z],
..Default::default()
},
Vertex {
position: [max_x, min_y, min_z],
..Default::default()
},
];
let header = Header {
meshes: vec![ComplexMesh {
vertices,
triangles: vec![
[0, 1, 2],
[2, 3, 0], [4, 5, 6],
[6, 7, 4], [8, 9, 10],
[10, 11, 8], [12, 13, 14],
[14, 15, 12], [16, 17, 18],
[18, 19, 16], [20, 21, 22],
[22, 23, 20], ],
..Default::default()
}],
..Default::default()
};
let rmesh = write_rmesh(&header)?;
let mut file = File::create(args.next().expect("No output location provided")).unwrap();
file.write_all(&rmesh).unwrap();
Ok(())
}