diff options
| author | Crozet Sébastien <developer@crozet.re> | 2021-01-20 15:15:03 +0100 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2021-01-20 15:15:33 +0100 |
| commit | e2006599a8fa90090393ff4fed326ee78fd7c0b7 (patch) | |
| tree | d7a016f7197095b5984ab0651ea2650959af421a /src_testbed/objects | |
| parent | 87b56c38b6e98ec6420ef4a3026fb5093c40185a (diff) | |
| download | rapier-e2006599a8fa90090393ff4fed326ee78fd7c0b7.tar.gz rapier-e2006599a8fa90090393ff4fed326ee78fd7c0b7.tar.bz2 rapier-e2006599a8fa90090393ff4fed326ee78fd7c0b7.zip | |
Add 3D convex decomposition example.
Diffstat (limited to 'src_testbed/objects')
| -rw-r--r-- | src_testbed/objects/convex.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src_testbed/objects/convex.rs b/src_testbed/objects/convex.rs index 3f68367..51b1cb4 100644 --- a/src_testbed/objects/convex.rs +++ b/src_testbed/objects/convex.rs @@ -31,8 +31,17 @@ impl Convex { let node = { use std::cell::RefCell; use std::rc::Rc; - let is = indices.into_iter().map(na::convert).collect(); - let mesh = kiss3d::resource::Mesh::new(vertices, is, None, None, false); + let mut mesh_vertices = Vec::new(); + let mut mesh_indices = Vec::new(); + for idx in indices { + let i = mesh_vertices.len() as u16; + mesh_vertices.push(vertices[idx.x as usize]); + mesh_vertices.push(vertices[idx.y as usize]); + mesh_vertices.push(vertices[idx.z as usize]); + mesh_indices.push(Point3::new(i, i + 1, i + 2)); + } + + let mesh = kiss3d::resource::Mesh::new(mesh_vertices, mesh_indices, None, None, false); window.add_mesh(Rc::new(RefCell::new(mesh)), na::Vector3::from_element(1.0)) }; |
