diff options
| author | Crozet Sébastien <developer@crozet.re> | 2020-12-08 17:31:49 +0100 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2020-12-29 11:31:00 +0100 |
| commit | 9bf1321f8f1d2e116f44c2461a53f302c4ef4171 (patch) | |
| tree | 8070529f4b48074fd40defb6062d6615dcdb61c5 /src_testbed/objects | |
| parent | fd3b4801b63fd56369ff37bdc2e5189db159e8ff (diff) | |
| download | rapier-9bf1321f8f1d2e116f44c2461a53f302c4ef4171.tar.gz rapier-9bf1321f8f1d2e116f44c2461a53f302c4ef4171.tar.bz2 rapier-9bf1321f8f1d2e116f44c2461a53f302c4ef4171.zip | |
Outsource the contact manifold, SAT, and some shapes.
Diffstat (limited to 'src_testbed/objects')
| -rw-r--r-- | src_testbed/objects/heightfield.rs | 17 | ||||
| -rw-r--r-- | src_testbed/objects/polyline.rs | 2 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src_testbed/objects/heightfield.rs b/src_testbed/objects/heightfield.rs index 0815592..977bcca 100644 --- a/src_testbed/objects/heightfield.rs +++ b/src_testbed/objects/heightfield.rs @@ -1,15 +1,16 @@ #[cfg(feature = "dim3")] use crate::objects::node::{self, GraphicsNode}; +use buckler::shape; +use kiss3d::resource::Mesh; use kiss3d::window::Window; use na::{self, Point3}; -use ncollide::shape; -#[cfg(feature = "dim3")] -use ncollide::transformation::ToTriMesh; use rapier::geometry::{ColliderHandle, ColliderSet}; #[cfg(feature = "dim2")] use rapier::math::Point; #[cfg(feature = "dim3")] use rapier::math::Vector; +use std::cell::RefCell; +use std::rc::Rc; pub struct HeightField { color: Point3<f32>, @@ -25,7 +26,7 @@ impl HeightField { #[cfg(feature = "dim2")] pub fn new( collider: ColliderHandle, - heightfield: &shape::HeightField<f32>, + heightfield: &shape::HeightField, color: Point3<f32>, _: &mut Window, ) -> HeightField { @@ -47,16 +48,18 @@ impl HeightField { #[cfg(feature = "dim3")] pub fn new( collider: ColliderHandle, - heightfield: &shape::HeightField<f32>, + heightfield: &shape::HeightField, color: Point3<f32>, window: &mut Window, ) -> HeightField { - let mesh = heightfield.to_trimesh(()); + let (vertices, indices) = heightfield.to_trimesh(); + let indices = indices.into_iter().map(|i| na::convert(i)).collect(); + let mesh = Mesh::new(vertices, indices, None, None, false); let mut res = HeightField { color, base_color: color, - gfx: window.add_trimesh(mesh, Vector::repeat(1.0)), + gfx: window.add_mesh(Rc::new(RefCell::new(mesh)), Vector::repeat(1.0)), collider: collider, }; diff --git a/src_testbed/objects/polyline.rs b/src_testbed/objects/polyline.rs index 77841ae..efb5e95 100644 --- a/src_testbed/objects/polyline.rs +++ b/src_testbed/objects/polyline.rs @@ -1,6 +1,6 @@ +use buckler2d::shape; use kiss3d::window::Window; use na::{Isometry2, Point2, Point3}; -use ncollide2d::shape; use nphysics2d::object::{ColliderAnchor, DefaultColliderHandle, DefaultColliderSet}; pub struct Polyline { |
