aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/objects
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-12-21 16:01:22 +0100
committerCrozet Sébastien <developer@crozet.re>2020-12-29 11:31:59 +0100
commit486fbd972f7951edf2d576c7c6bcbd02dcc28011 (patch)
tree00b8eb8cbb0df70b04a52ec57511ab65afc0b7c3 /src_testbed/objects
parent0fb4b4faefc59213b2731b9b3f7fa4bfde8212ba (diff)
downloadrapier-486fbd972f7951edf2d576c7c6bcbd02dcc28011.tar.gz
rapier-486fbd972f7951edf2d576c7c6bcbd02dcc28011.tar.bz2
rapier-486fbd972f7951edf2d576c7c6bcbd02dcc28011.zip
Add example for 3D convex polyhedron.
Diffstat (limited to 'src_testbed/objects')
-rw-r--r--src_testbed/objects/convex.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src_testbed/objects/convex.rs b/src_testbed/objects/convex.rs
index 0347144..9f0983d 100644
--- a/src_testbed/objects/convex.rs
+++ b/src_testbed/objects/convex.rs
@@ -19,13 +19,20 @@ impl Convex {
pub fn new(
body: ColliderHandle,
vertices: Vec<Point<f32>>,
+ #[cfg(feature = "dim3")] indices: Vec<Point<u32>>,
color: Point3<f32>,
window: &mut Window,
) -> Convex {
#[cfg(feature = "dim2")]
let node = window.add_convex_polygon(vertices, Vector::from_element(1.0));
#[cfg(feature = "dim3")]
- let node = unimplemented!();
+ 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);
+ window.add_mesh(Rc::new(RefCell::new(mesh)), na::Vector3::from_element(1.0))
+ };
let mut res = Convex {
color,