private static Quaternion negated(Quaternion quat) { return new Quaternion(-quat.x, -quat.y, -quat.z, -quat.w); }
private static Quaternion lerp(Quaternion a, Quaternion b, float ratio) { return new Quaternion( MathHelper.lerp(a.x, b.x, ratio), MathHelper.lerp(a.y, b.y, ratio), MathHelper.lerp(a.z, b.z, ratio), MathHelper.lerp(a.w, b.w, ratio)); } }
@Override public void onContinueTransformation(TwistGesture gesture) { float rotationAmount = -gesture.getDeltaRotationDegrees() * rotationRateDegrees; Quaternion rotationDelta = new Quaternion(Vector3.up(), rotationAmount); Quaternion localrotation = getTransformableNode().getLocalRotation(); localrotation = Quaternion.multiply(localrotation, rotationDelta); getTransformableNode().setLocalRotation(localrotation); }
if (plane.isPoseInPolygon(pose) && allowedPlaneTypes.contains(plane.getType())) { desiredLocalPosition = new Vector3(pose.tx(), pose.ty(), pose.tz()); desiredLocalRotation = new Quaternion(pose.qx(), pose.qy(), pose.qz(), pose.qw()); Node parent = getTransformableNode().getParent(); if (parent != null && desiredLocalPosition != null && desiredLocalRotation != null) {