aboutsummaryrefslogtreecommitdiff
path: root/examples2d/joints2.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-01-02 14:47:40 +0100
committerSébastien Crozet <developer@crozet.re>2022-01-02 16:58:36 +0100
commitf74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc (patch)
tree53ac492fea5942a7d466f58a0095f39505674ea4 /examples2d/joints2.rs
parentb45d4b5ac2b31856c15e802b31e288a58940cbf2 (diff)
downloadrapier-f74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc.tar.gz
rapier-f74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc.tar.bz2
rapier-f74b8401ad9ef50b8cdbf1f43a2b21f6c42b0ebc.zip
Implement multibody joints and the new solver
Diffstat (limited to 'examples2d/joints2.rs')
-rw-r--r--examples2d/joints2.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/examples2d/joints2.rs b/examples2d/joints2.rs
index 9333184..91d86cd 100644
--- a/examples2d/joints2.rs
+++ b/examples2d/joints2.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
@@ -44,16 +45,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);
@@ -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![numk as f32 * rad, numi as f32 * -rad], 20.0);
}