dimforge / dimforge/nphysics

parent_shift and body_shift seem to have no effect on MultiBodies with a FreeJoint

Open
#210 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
1.6k
Forks
120
PR merge metrics
No merged PRs in 30d

Description

Consider this program:

```rust
let mut world = World::new();

let shape = ShapeHandle::new(Cuboid::new(Vector3::repeat(0.5)));
let collider = ColliderDesc::new(shape)
.density(1.0);

let top_joint = FreeJoint::new(Isometry3::identity());
let body_desc = MultibodyDesc::new(top_joint)
.collider(&collider)
.parent_shift(Vector3::repeat(1000.0))
.build(&mut world);

Testbed::new(world).run()
```

When running this program I notice that the cube is still suspiciously close to the global origin. Considering that the `parent_shift` should shift it by 1000 units on each axis, I would expect the cube to be visibly moved or probably even completely out of sight, but no such thing happens and the cube seems to remain comfortably seated at the coordinate origin.

When I use a `PrismaticJoint` instead of a `FreeJoint`, the cube is nowhere to be found, as expected. So this seems to be some kind of special behaviour that only affects `FreeJoint`s, but I didn't see such behaviour mentioned anywhere in the documentation, so I guess this is a bug.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.