aboutsummaryrefslogtreecommitdiff
path: root/src_testbed
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-01-20 15:15:03 +0100
committerCrozet Sébastien <developer@crozet.re>2021-01-20 15:15:33 +0100
commite2006599a8fa90090393ff4fed326ee78fd7c0b7 (patch)
treed7a016f7197095b5984ab0651ea2650959af421a /src_testbed
parent87b56c38b6e98ec6420ef4a3026fb5093c40185a (diff)
downloadrapier-e2006599a8fa90090393ff4fed326ee78fd7c0b7.tar.gz
rapier-e2006599a8fa90090393ff4fed326ee78fd7c0b7.tar.bz2
rapier-e2006599a8fa90090393ff4fed326ee78fd7c0b7.zip
Add 3D convex decomposition example.
Diffstat (limited to 'src_testbed')
-rw-r--r--src_testbed/objects/convex.rs13
-rw-r--r--src_testbed/physx_backend.rs1
2 files changed, 11 insertions, 3 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))
};
diff --git a/src_testbed/physx_backend.rs b/src_testbed/physx_backend.rs
index 3985816..837fff2 100644
--- a/src_testbed/physx_backend.rs
+++ b/src_testbed/physx_backend.rs
@@ -12,7 +12,6 @@ use physx::foundation::DefaultAllocator;
use physx::prelude::*;
use physx::scene::FrictionType;
use physx::traits::Class;
-use physx::triangle_mesh::TriangleMesh;
use physx_sys::{
PxBitAndByte, PxConvexFlags, PxConvexMeshGeometryFlags, PxHeightFieldSample,
PxMeshGeometryFlags, PxMeshScale_new, PxRigidActor,