aboutsummaryrefslogtreecommitdiff
path: root/benchmarks2d
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-01-02 18:05:50 +0100
committerGitHub <noreply@github.com>2022-01-02 18:05:50 +0100
commit1308db89948bc62fb865b32f832f19268f23dd23 (patch)
treeb3d8b0cbb6d2e75aa8fc7686e9cb8801527a31b8 /benchmarks2d
parent8e7da5ad45d180b0d3fa2bde37f8f3771b153b70 (diff)
parent9f9d3293605fa84555c08bec5efe68a71cd18432 (diff)
downloadrapier-1308db89948bc62fb865b32f832f19268f23dd23.tar.gz
rapier-1308db89948bc62fb865b32f832f19268f23dd23.tar.bz2
rapier-1308db89948bc62fb865b32f832f19268f23dd23.zip
Merge pull request #267 from dimforge/multibody
Implement multibody joints, and new velocity-based constraints solver
Diffstat (limited to 'benchmarks2d')
-rw-r--r--benchmarks2d/Cargo.toml6
-rw-r--r--benchmarks2d/balls2.rs6
-rw-r--r--benchmarks2d/boxes2.rs5
-rw-r--r--benchmarks2d/capsules2.rs5
-rw-r--r--benchmarks2d/convex_polygons2.rs5
-rw-r--r--benchmarks2d/heightfield2.rs5
-rw-r--r--benchmarks2d/joint_ball2.rs13
-rw-r--r--benchmarks2d/joint_fixed2.rs21
-rw-r--r--benchmarks2d/joint_prismatic2.rs15
-rw-r--r--benchmarks2d/pyramid2.rs5
10 files changed, 45 insertions, 41 deletions
diff --git a/benchmarks2d/Cargo.toml b/benchmarks2d/Cargo.toml
index c7c775d..bbab4d9 100644
--- a/benchmarks2d/Cargo.toml
+++ b/benchmarks2d/Cargo.toml
@@ -2,7 +2,7 @@
name = "rapier-benchmarks-2d"
version = "0.1.0"
authors = [ "Sébastien Crozet <developer@crozet.re>" ]
-edition = "2018"
+edition = "2021"
[features]
parallel = [ "rapier2d/parallel", "rapier_testbed2d/parallel" ]
@@ -16,10 +16,10 @@ rand = "0.8"
Inflector = "0.11"
[dependencies.rapier_testbed2d]
-path = "../build/rapier_testbed2d"
+path = "../crates/rapier_testbed2d"
[dependencies.rapier2d]
-path = "../build/rapier2d"
+path = "../crates/rapier2d"
[[bin]]
name = "all_benchmarks2"
diff --git a/benchmarks2d/balls2.rs b/benchmarks2d/balls2.rs
index ec55f24..168acaf 100644
--- a/benchmarks2d/balls2.rs
+++ b/benchmarks2d/balls2.rs
@@ -7,7 +7,9 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let joints = JointSet::new();
+ let impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
+
/*
* Ground
*/
@@ -58,6 +60,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![0.0, 2.5], 5.0);
}
diff --git a/benchmarks2d/boxes2.rs b/benchmarks2d/boxes2.rs
index 2e4c5e4..c3d7445 100644
--- a/benchmarks2d/boxes2.rs
+++ b/benchmarks2d/boxes2.rs
@@ -7,7 +7,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let joints = JointSet::new();
+ let impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Ground
@@ -63,6 +64,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![0.0, 50.0], 10.0);
}
diff --git a/benchmarks2d/capsules2.rs b/benchmarks2d/capsules2.rs
index e75afe4..3bfa6ab 100644
--- a/benchmarks2d/capsules2.rs
+++ b/benchmarks2d/capsules2.rs
@@ -7,7 +7,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let joints = JointSet::new();
+ let impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Ground
@@ -65,6 +66,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![0.0, 50.0], 10.0);
}
diff --git a/benchmarks2d/convex_polygons2.rs b/benchmarks2d/convex_polygons2.rs
index 6c9792e..6678460 100644
--- a/benchmarks2d/convex_polygons2.rs
+++ b/benchmarks2d/convex_polygons2.rs
@@ -9,7 +9,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let joints = JointSet::new();
+ let impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Ground
@@ -76,6 +77,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![0.0, 50.0], 10.0);
}
diff --git a/benchmarks2d/heightfield2.rs b/benchmarks2d/heightfield2.rs
index 3178e60..04c56da 100644
--- a/benchmarks2d/heightfield2.rs
+++ b/benchmarks2d/heightfield2.rs
@@ -8,7 +8,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let joints = JointSet::new();
+ let impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Ground
@@ -63,6 +64,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![0.0, 50.0], 10.0);
}
diff --git a/benchmarks2d/joint_ball2.rs b/benchmarks2d/joint_ball2.rs
index 114fe85..e856556 100644
--- a/benchmarks2d/joint_ball2.rs
+++ b/benchmarks2d/joint_ball2.rs
@@ -7,7 +7,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let mut joints = JointSet::new();
+ let mut impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Create the balls
@@ -41,16 +42,16 @@ pub fn init_world(testbed: &mut Testbed) {
// Vertical joint.
if i > 0 {
let parent_handle = *body_handles.last().unwrap();
- let joint = BallJoint::new(Point::origin(), point![0.0, shift]);
- joints.insert(parent_handle, child_handle, joint);
+ let joint = RevoluteJoint::new().local_anchor2(point![0.0, shift]);
+ impulse_joints.insert(parent_handle, child_handle, joint);
}
// Horizontal joint.
if k > 0 {
let parent_index = body_handles.len() - numi;
let parent_handle = body_handles[parent_index];
- let joint = BallJoint::new(Point::origin(), point![-shift, 0.0]);
- joints.insert(parent_handle, child_handle, joint);
+ let joint = RevoluteJoint::new().local_anchor2(point![-shift, 0.0]);
+ impulse_joints.insert(parent_handle, child_handle, joint);
}
body_handles.push(child_handle);
@@ -60,6 +61,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![numk as f32 * rad, numi as f32 * -rad], 5.0);
}
diff --git a/benchmarks2d/joint_fixed2.rs b/benchmarks2d/joint_fixed2.rs
index 8d6e8dc..690b8cb 100644
--- a/benchmarks2d/joint_fixed2.rs
+++ b/benchmarks2d/joint_fixed2.rs
@@ -7,7 +7,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let mut joints = JointSet::new();
+ let mut impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Create the balls
@@ -46,22 +47,18 @@ pub fn init_world(testbed: &mut Testbed) {
// Vertical joint.
if i > 0 {
let parent_handle = *body_handles.last().unwrap();
- let joint = FixedJoint::new(
- Isometry::identity(),
- Isometry::translation(0.0, shift),
- );
- joints.insert(parent_handle, child_handle, joint);
+ let joint =
+ FixedJoint::new().local_frame2(Isometry::translation(0.0, shift));
+ impulse_joints.insert(parent_handle, child_handle, joint);
}
// Horizontal joint.
if k > 0 {
let parent_index = body_handles.len() - num;
let parent_handle = body_handles[parent_index];
- let joint = FixedJoint::new(
- Isometry::identity(),
- Isometry::translation(-shift, 0.0),
- );
- joints.insert(parent_handle, child_handle, joint);
+ let joint =
+ FixedJoint::new().local_frame2(Isometry::translation(-shift, 0.0));
+ impulse_joints.insert(parent_handle, child_handle, joint);
}
body_handles.push(child_handle);
@@ -73,6 +70,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![50.0, 50.0], 5.0);
}
diff --git a/benchmarks2d/joint_prismatic2.rs b/benchmarks2d/joint_prismatic2.rs
index c2b4bf3..20d423e 100644
--- a/benchmarks2d/joint_prismatic2.rs
+++ b/benchmarks2d/joint_prismatic2.rs
@@ -7,7 +7,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let mut joints = JointSet::new();
+ let mut impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Create the balls
@@ -46,12 +47,10 @@ pub fn init_world(testbed: &mut Testbed) {
UnitVector::new_normalize(vector![-1.0, 1.0])
};
- let mut prism =
- PrismaticJoint::new(Point::origin(), axis, point![0.0, shift], axis);
- prism.limits_enabled = true;
- prism.limits[0] = -1.5;
- prism.limits[1] = 1.5;
- joints.insert(curr_parent, curr_child, prism);
+ let prism = PrismaticJoint::new(axis)
+ .local_anchor2(point![0.0, shift])
+ .limit_axis([-1.5, 1.5]);
+ impulse_joints.insert(curr_parent, curr_child, prism);
curr_parent = curr_child;
}
@@ -61,6 +60,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![80.0, 80.0], 15.0);
}
diff --git a/benchmarks2d/pyramid2.rs b/benchmarks2d/pyramid2.rs
index a557ff4..61636b9 100644
--- a/benchmarks2d/pyramid2.rs
+++ b/benchmarks2d/pyramid2.rs
@@ -7,7 +7,8 @@ pub fn init_world(testbed: &mut Testbed) {
*/
let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new();
- let joints = JointSet::new();
+ let impulse_joints = ImpulseJointSet::new();
+ let multibody_joints = MultibodyJointSet::new();
/*
* Ground
@@ -50,6 +51,6 @@ pub fn init_world(testbed: &mut Testbed) {
/*
* Set up the testbed.
*/
- testbed.set_world(bodies, colliders, joints);
+ testbed.set_world(bodies, colliders, impulse_joints, multibody_joints);
testbed.look_at(point![0.0, 2.5], 5.0);
}