public boolean isDoneSlipping() { boolean translationalSlipDone = slipAmount.lengthSquared() < 0.0001 * 0.0001; Vector3D eulerAngles = new Vector3D(); slipRotation.getEulerAngles(eulerAngles); boolean rotationalSlipDone = eulerAngles.lengthSquared() < 0.001 * 0.001; return translationalSlipDone & rotationalSlipDone; }
@Override protected void computeRotationTranslation(AffineTransform transform3D) { transform3D.setIdentity(); if (isUsingYawPitchRoll()) { yoFrameYawPitchRoll.getEulerAngles(rotationEulerVector); transform3D.setRotationEuler(rotationEulerVector); } else { transform3D.setRotation(yoFrameQuaternion); } transform3D.setTranslation(yoFramePoint); transform3D.setScale(scale); }
rotationMagnitude.getEulerAngles(nextRotationToSlipEulerAngles); nextRotationToSlipEulerAngles.setX(nextRotationToSlipEulerAngles.getX() * (2.0 * Math.PI * rotationFreqHzYawPitchRoll[2] * Math.sin(rotationPhaseEuler.getX()) * deltaT)); nextRotationToSlipEulerAngles.setY(nextRotationToSlipEulerAngles.getY() * (2.0 * Math.PI * rotationFreqHzYawPitchRoll[1] * Math.sin(rotationPhaseEuler.getY()) * deltaT));
@Override public void run() { int i = 0; while (i++ < 20) { quickPause(); ConvexPolygon2D newPolygon = new ConvexPolygon2D(Vertex2DSupplier.asVertex2DSupplier(secondPointList)); yoPolygon.set(newPolygon); ConvexPolygon2D newYoPolygon = new ConvexPolygon2D(Vertex2DSupplier.asVertex2DSupplier(pointList)); yoFramePolygon.set(newYoPolygon); yoGraphicYoFramePolygon.update(); Vector3D eulerAngles = new Vector3D(); yoFramePolygonOrientation.getEulerAngles(eulerAngles); eulerAngles.setY(eulerAngles.getY() + 0.1); yoFramePolygonOrientation.setEulerAngles(eulerAngles); yoGraphicText.setText("Hello"); yoGraphicText.update(); scs.tickAndUpdate(); quickPause(); newPolygon = new ConvexPolygon2D(Vertex2DSupplier.asVertex2DSupplier(pointList)); yoPolygon.set(newPolygon); yoGraphicYoFramePolygon.update(); newYoPolygon = new ConvexPolygon2D(Vertex2DSupplier.asVertex2DSupplier(secondPointList)); yoFramePolygon.set(newYoPolygon); yoGraphicText.setText("GoodBye"); yoGraphicText.update(); scs.tickAndUpdate(); } }