use super::*;
pub const fn lines3d_vertex_index_counts() -> (u32, u32) {
(8, 24)
}
impl Lines3d {
pub fn cube (index_offset : u32) -> Self {
let vertex = |x, y, z| vertex::Vert3dInstanced { inst_position: [x, y, z] };
let vertices = vec![
vertex (-1.0, -1.0, -1.0),
vertex (-1.0, 1.0, -1.0),
vertex ( 1.0, 1.0, -1.0),
vertex ( 1.0, -1.0, -1.0),
vertex (-1.0, -1.0, 1.0),
vertex (-1.0, 1.0, 1.0),
vertex ( 1.0, 1.0, 1.0),
vertex ( 1.0, -1.0, 1.0)
];
let indices = [
0, 1,
1, 2,
2, 3,
3, 0,
4, 5,
5, 6,
6, 7,
7, 4,
0, 4,
1, 5,
2, 6,
3, 7
].map (|i| i + index_offset).into_iter().collect::<Vec<_>>();
if cfg!(debug_assertions) {
let (num_vertices, num_indices) = lines3d_vertex_index_counts();
debug_assert_eq!(vertices.len(), num_vertices as usize);
debug_assert_eq!(indices.len(), num_indices as usize);
}
Lines3d { vertices, indices }
}
}