rapier
rapier copied to clipboard
JointData.revolute multiple axes
Hey,
I am having trouble with revolute joints. I have tried this with https://cdn.skypack.dev/@dimforge/rapier3d-compat
and with webpack and @dimforge/[email protected]
.
The javascript 3d userguide ánd the joint example shows that you can provide anchor, axis, anchor, axis arguments:
let x = { x: 1.0, y: 0.0, z: 0.0 };
let params = RAPIER.JointParams.revolute({ x: 0.0, y: 0.0, z: 1.0 }, x, { x: 0.0, y: 0.0, z: -3.0 }, x);
let joint = world.createImpulseJoint(params, body1, body2, true);
Those examples both use this RAPIER.JointParams.revolute
. However in the docs and in the RAPIER instance I load there's only RAPIER.JointData.revolute
. That version of the revolute function only takes 3 arguments; anchor, anchor, axis.
JointData.revolute = function (anchor1, anchor2, axis) {
var res = new JointData();
res.anchor1 = anchor1;
res.anchor2 = anchor2;
res.axis = axis;
res.jointType = JointType.Revolute;
return res;
};
pub fn new(axis: UnitVector<Real>) -> Self {
let data = GenericJointBuilder::new(JointAxesMask::LOCKED_REVOLUTE_AXES)
.local_axis1(axis)
.local_axis2(axis)
.build();
Self { data }
}
I would really like to be able to use specific axes per body. I don't even understand how it would work with just one. Am I doing something wrong, or is this a translation error or something? It should be Axis1, Axis2.
For example, if you connect two cuboid body's with a revolute joint; body1 on the top and body2 on the right side. You'd want to set the y-axis for body1 and the x-axis for body2. Right?
Thanks in advance,
Ethan
I'm only now looking at the changelogs and see that much has changed in this last update.. Downgrading to 0.7.6 fixed this particular problem, for now.
I have encountered the same issue. Are there any updates on this?
Not from my end, sorry. Went back to ammo.js.