feat: migrate to glam whenever relevant + migrate testbed to kiss3d instead of bevy + release v0.32.0 (#909)
* feat: migrate to glam whenever relevant + migrate testbed to kiss3d instead of bevy * chore: update changelog * Fix warnings and tests * Release v0.32.0
This commit is contained in:
@@ -7,8 +7,8 @@ default-run = "all_examples3-f64"
|
||||
|
||||
[features]
|
||||
parallel = ["rapier3d-f64/parallel", "rapier_testbed3d-f64/parallel"]
|
||||
simd-stable = ["rapier3d-f64/simd-stable"]
|
||||
simd-nightly = ["rapier3d-f64/simd-nightly"]
|
||||
#simd-stable = ["rapier3d-f64/simd-stable"]
|
||||
#simd-nightly = ["rapier3d-f64/simd-nightly"]
|
||||
enhanced-determinism = ["rapier3d-f64/enhanced-determinism"]
|
||||
|
||||
[dependencies]
|
||||
@@ -18,6 +18,7 @@ wasm-bindgen = "0.2"
|
||||
obj-rs = { version = "0.7", default-features = false }
|
||||
bincode = "1"
|
||||
serde = "1"
|
||||
kiss3d = { version = "0.40.0", features = ["egui", "parry", "serde"] }
|
||||
|
||||
[dependencies.rapier_testbed3d-f64]
|
||||
path = "../crates/rapier_testbed3d-f64"
|
||||
|
||||
@@ -5,26 +5,22 @@ use wasm_bindgen::prelude::*;
|
||||
extern crate rapier3d_f64 as rapier3d;
|
||||
extern crate rapier_testbed3d_f64 as rapier_testbed3d;
|
||||
|
||||
use rapier_testbed3d::{Testbed, TestbedApp};
|
||||
use std::cmp::Ordering;
|
||||
use rapier_testbed3d::{Example, TestbedApp};
|
||||
|
||||
mod debug_serialized3;
|
||||
mod trimesh3_f64;
|
||||
|
||||
#[cfg_attr(target_arch = "wasm32", wasm_bindgen(start))]
|
||||
pub fn main() {
|
||||
let mut builders: Vec<(_, fn(&mut Testbed))> = vec![
|
||||
("Trimesh", trimesh3_f64::init_world),
|
||||
("(Debug) serialized", debug_serialized3::init_world),
|
||||
#[kiss3d::main]
|
||||
pub async fn main() {
|
||||
let builders: Vec<_> = vec![
|
||||
Example::new("Demos f64", "Trimesh", trimesh3_f64::init_world),
|
||||
Example::new(
|
||||
"Demos f64",
|
||||
"(Debug) serialized",
|
||||
debug_serialized3::init_world,
|
||||
),
|
||||
];
|
||||
|
||||
// Lexicographic sort, with stress tests moved at the end of the list.
|
||||
builders.sort_by(|a, b| match (a.0.starts_with('('), b.0.starts_with('(')) {
|
||||
(true, true) | (false, false) => a.0.cmp(b.0),
|
||||
(true, false) => Ordering::Greater,
|
||||
(false, true) => Ordering::Less,
|
||||
});
|
||||
|
||||
let testbed = TestbedApp::from_builders(builders);
|
||||
testbed.run()
|
||||
testbed.run().await
|
||||
}
|
||||
|
||||
@@ -34,6 +34,6 @@ pub fn init_world(testbed: &mut Testbed) {
|
||||
testbed.harness_mut().physics.narrow_phase = state.narrow_phase;
|
||||
testbed.harness_mut().physics.ccd_solver = state.ccd_solver;
|
||||
|
||||
testbed.set_graphics_shift(vector![-541.0, -6377257.0, -61.0]);
|
||||
testbed.look_at(point![10.0, 10.0, 10.0], point![0.0, 0.0, 0.0]);
|
||||
testbed.set_graphics_shift([-541.0, -6377257.0, -61.0].into());
|
||||
testbed.look_at([10.0, 10.0, 10.0].into(), [0.0, 0.0, 0.0].into());
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use rapier_testbed3d::Testbed;
|
||||
use rapier3d::glamx::{DVec3, Vec3};
|
||||
use rapier3d::na::ComplexField;
|
||||
use rapier3d::prelude::*;
|
||||
|
||||
@@ -14,10 +15,10 @@ pub fn init_world(testbed: &mut Testbed) {
|
||||
/*
|
||||
* Ground
|
||||
*/
|
||||
let ground_size = vector![200.0, 1.0, 200.0];
|
||||
let ground_size = DVec3::new(200.0, 1.0, 200.0);
|
||||
let nsubdivs = 20;
|
||||
|
||||
let heights = DMatrix::from_fn(nsubdivs + 1, nsubdivs + 1, |i, j| {
|
||||
let heights = Array2::from_fn(nsubdivs + 1, nsubdivs + 1, |i, j| {
|
||||
if i == 0 || i == nsubdivs || j == 0 || j == nsubdivs {
|
||||
10.0
|
||||
} else {
|
||||
@@ -60,7 +61,7 @@ pub fn init_world(testbed: &mut Testbed) {
|
||||
let z = k as f64 * shift - centerz;
|
||||
|
||||
// Build the rigid body.
|
||||
let rigid_body = RigidBodyBuilder::dynamic().translation(vector![x, y, z]);
|
||||
let rigid_body = RigidBodyBuilder::dynamic().translation(DVec3::new(x, y, z));
|
||||
let handle = bodies.insert(rigid_body);
|
||||
|
||||
if j % 2 == 0 {
|
||||
@@ -78,5 +79,5 @@ pub fn init_world(testbed: &mut Testbed) {
|
||||
* Set up the testbed.
|
||||
*/
|
||||
testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
|
||||
testbed.look_at(point![100.0, 100.0, 100.0], Point::origin());
|
||||
testbed.look_at(Vec3::new(100.0, 100.0, 100.0), Vec3::ZERO);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user