/** * Applies a rotation to a given transform object. * @param t3d the transform object to rotate * @param rot the rotation as axis-angle (x,y,z,angle) * */ public static void rotate(Transform3D t3d, AxisAngle4d rot) { Transform3D rotT3d = new Transform3D(); rotT3d.setRotation(rot); t3d.mul(rotT3d); }
private Vector3D absToRel (Vector3D r) { Transform3D t = getTransform(); Matrix3d m = new Matrix3d(); t.get(m); Vector3d zero = new Vector3d(0, 0, 0); Transform3D rotation = new Transform3D(m, zero, 1.0); Vector3f vec = createVector3f(r); rotation.invert(); rotation.transform(vec); return new Vector3D(vec); }
private void changeTranslation(int x, int y) { Transform3D currXform = new Transform3D(); Transform3D transformX = new Transform3D(); Transform3D transformY = new Transform3D(); canvas.getPixelLocationInImagePlate(x, y, position); Transform3D imagePlateToVworldTransform = new Transform3D(); canvas.getImagePlateToVworld(imagePlateToVworldTransform); translation.y = position.y; transformX.set(translation); transformY.mul(imagePlateToVworldTransform, transformX); transformY.get(trans); transformX.set(trans); currXform.mul(transformX, currXform);
/** * Rotates a given point around the origin. * @param p the point to rotate * @param rot the rotation as axis-angle (x,y,z,angle) */ public static void rotate(Point3d p, AxisAngle4d rot) { Transform3D t3d = new Transform3D(); t3d.setRotation(rot); t3d.transform(p); }
private void setForwardTransform(Transform3D forwardTransform) { this.forwardTransform = forwardTransform; reverseTransform = new Transform3D(forwardTransform); reverseTransform.invert(); }
public TrajectoireCamera(final int _nbCles, final BUniversInterface _u, final boolean _boucle, final int _temps, final int _nbCycles) { univers_ = _u; boucle_ = _boucle; nbCles_ = _nbCles; if (boucle_) { pourcentAtIndex_ = new float[nbCles_ + 1]; positions_ = new Point3f[nbCles_ + 1]; directions_ = new Quat4f[nbCles_ + 1]; } else { pourcentAtIndex_ = new float[nbCles_]; positions_ = new Point3f[nbCles_]; directions_ = new Quat4f[nbCles_]; } temps_ = _temps; nbCycles_ = _nbCycles; axe_ = new Transform3D(); axe_.set(new AxisAngle4f(1f, 0f, 0f, 0f)); }
public void setOrientation (Vector3D angles) { if (Math.abs(angles.y) == 90) System.err.println("Gimbal lock when the y-angle is vertical!"); Transform3D t = getTransform(); Vector3D radians = angles.times(Math.PI / 180.); Transform3D t1 = new Transform3D(); t1.setEuler(createVector3d(radians)); Vector3d r = new Vector3d(); t.get(r); t1.setTranslation(r); t1.setScale(t.getScale()); setTransform(t1); }
/** * Applies a translation to a given transform object. * @param t3d the transform object to translate * @param transVec the vector that describes the translation */ public static void translate(Transform3D t3d, Vector3d transVec) { Transform3D translationT3d = new Transform3D(); translationT3d.setTranslation(transVec); t3d.mul(translationT3d); }
public void lookAt (Vector3D center, Vector3D up) { Transform3D t = getTransform(); Transform3D t2 = new Transform3D(t); Vector3f translation = new Vector3f(); t2.get(translation); Vector3d scales = new Vector3d(); t2.getScale(scales); Point3d trans = new Point3d(translation); Point3d c = new Point3d(center.x, center.y, center.z); Vector3d u = createVector3d(up); t2.lookAt(trans, c, u); try { t2.invert(); t2.setScale(scales); setTransform(t2); } catch (SingularMatrixException sme) { System.out.println("Singular matrix, bad lookAt()!"); } }
/** * Draws a 3D text object at (x, y, z) with Euler rotation angles (xA, yA, zA). * Uses the pen font, color, and transparency. */ public static Shape text3D (double x, double y, double z, String text, double xA, double yA, double zA) { Line2D.Double line = new Line2D.Double(0, 0, TEXT3D_DEPTH, 0); FontExtrusion extrudePath = new FontExtrusion(line); Font3D font3D = new Font3D(font, extrudePath); Point3d pos = new Point3d(x, y, z); javax.media.j3d.Text3D t = new javax.media.j3d.Text3D(font3D, text, createPoint3f(x, y, z)); // FIX THIS TO NOT HAVE SCALE INCLUDED Transform3D shrinker = new Transform3D(); shrinker.setEuler(new Vector3d(xA, yA, zA)); shrinker.setTranslation(new Vector3d(x, y, z)); shrinker.setScale(TEXT3D_SHRINK_FACTOR); Shape3D shape = createShape3D((Geometry)t); return shape(shape, true, shrinker, false); }
public double[] getOrientationFromUniverse() { if (VGraphicsUtil.NO_3D) { return new double[0]; } Transform3D t3d = new Transform3D(); getUniverseCreator().getRootGroup().getTransform(t3d); double[] values = new double[16]; t3d.get(values); return values; }
private Vector3D relToAbs (Vector3D r) { Transform3D t = getTransform(); Matrix3d m = new Matrix3d(); t.get(m); Vector3d zero = new Vector3d(0, 0, 0); Transform3D rotation = new Transform3D(m, zero, 1.0); Vector3f vec = createVector3f(r); rotation.transform(vec); return new Vector3D(vec); }
public void setEchelleY(final float _echelle) { final Transform3D t3d = new Transform3D(); tg_.getTransform(t3d); final Transform3D t3d2 = new Transform3D(); final Vector3d v = new Vector3d(1, _echelle, 1); t3d2.setScale(v); t3d2.mul(t3d); tg_.setTransform(t3d2); calculeBBox(); }
private void calculateCenters() { localCenter = new Point3d(boxVector); localCenter.scale(0.5); rootCenter = new Point3d(localCenter); forwardTransform.transform(rootCenter); forwardCenterTransform = new Transform3D(forwardTransform); forwardCenterTransform.mul(toTransform(new Vector3d(localCenter))); reverseCenterTransform = new Transform3D(forwardCenterTransform); reverseCenterTransform.invert(); }
Transform3D transGroupTransform = new Transform3D(); localGroup.getTransform(transGroupTransform); transGroupTransform.get(rotation); transGroupTransform.setRotation(rotation2); transGroupTransform.transform(vec);
Transform3D tx = new Transform3D(); Transform3D p0tx = new Transform3D(); p0tx.setTranslation(new Vector3f(p0.getX(),p0.getY(),p0.getZ())); Transform3D scaletx = new Transform3D(); scaletx.setScale(new Vector3d(1,length,1)); Transform3D rot = new Transform3D(); rot.setRotation(new AxisAngle4f(cross.getX(),cross.getY(),cross.getZ(),angle)); tx.mul(rot); tx.mul(scaletx); tx.setTranslation(new Vector3f(p0.getX(),p0.getY(),p0.getZ()));
private void translate(float x, float y, float z) { Set<Node> alreadyConverted = new HashSet<Node>(); Transform3D t3d = new Transform3D(); t3d.setScale(scale); t3d.setTranslation(new Vector3f(x, y, z)); for (Triangle t : getGeometry()) { if (!alreadyConverted.contains(t.getNodeOne())) { t3d.transform(t.getNodeOne().getLocation()); alreadyConverted.add(t.getNodeOne()); } if (!alreadyConverted.contains(t.getNodeTwo())) { t3d.transform(t.getNodeTwo().getLocation()); alreadyConverted.add(t.getNodeTwo()); } if (!alreadyConverted.contains(t.getNodeThree())) { t3d.transform(t.getNodeThree().getLocation()); alreadyConverted.add(t.getNodeThree()); } } } }
boolean userTransform = doUserTransform; Matrix3d rot = new Matrix3d(); boolean doSceneTransform = ( transformation != null && transformation.getBestType() != Transform3D.IDENTITY ); Transform3D transScene = new Transform3D(); if ( doSceneTransform ) { transformation.getRotationScale( rot ); transScene.set( rot ); doSceneTransform = ( transScene.getBestType() != Transform3D.IDENTITY ); Transform3D transUser = new Transform3D(); if ( doUserTransform ) { userMatrix.getRotationScale( rot ); transUser.set( rot ); userTransform = ( transUser.getBestType() != Transform3D.IDENTITY ); transScene.transform( coord ); transUser.transform( coord );
final Transform3D t3d = new Transform3D(); transformU_.getTransform(t3d); final Transform3D t3d2 = new Transform3D(); return; t3d2.setRotation(v); t3d.mul(t3d2); transformU_.setTransform(t3d); getCurrentCamera().set(t3d);
public Point3d toCenterCoordinates(final Point3d point) { Point3d transformed = new Point3d(point); reverseCenterTransform.transform(transformed); return transformed; }