shade 0.0.5

Another graphics library
Documentation
use super::*;

pub fn icosahedron(g: &mut Graphics) -> VertexIndexedMesh {
	let origin = Vec3f::ZERO;
	let bounds = Bounds3f(-Vec3f::ONE, Vec3f::ONE);
	let vertices = g.vertex_buffer(&VERTICES, BufferUsage::Static);
	let vertices_len = VERTICES.len() as u32;
	let indices = g.index_buffer(&INDICES, vertices_len as u8, BufferUsage::Static);
	let indices_len = INDICES.len() as u32;
	VertexIndexedMesh { origin, bounds, vertices, vertices_len, indices, indices_len }
}

pub fn icosahedron_flat(g: &mut Graphics) -> VertexMesh {
	let origin = Vec3f::ZERO;
	let bounds = Bounds3f(-Vec3f::ONE, Vec3f::ONE);
	let vertices = g.vertex_buffer(&FLAT_VERTICES, BufferUsage::Static);
	let vertices_len = FLAT_VERTICES.len() as u32;
	VertexMesh { origin, bounds, vertices, vertices_len }
}

// Unit-radius icosahedron centered at origin.
// Generated by the ignored test in src/d3/icosahedron/tests.rs.

dataview::embed!(VERTICES: [TexturedVertexN] = "icosahedron/vertices.bin");
dataview::embed!(INDICES: [u8] = "icosahedron/indices.bin");
dataview::embed!(FLAT_VERTICES: [TexturedVertexN] = "icosahedron/flat_vertices.bin");

#[cfg(test)]
mod tests;