public void setRotationMatrix(double[][] m) { for (int i=0;i<3;i++) { for (int j=0;j<3;j++) { this.transformation.setElement(i, j, m[i][j]); } } }
public void setTranslation(double[] t) { for (int i=0;i<3;i++) { this.transformation.setElement(i, 3, t[i]); } }
public static Matrix4d parseMatrix4d(Node node) { Matrix4d m = new Matrix4d(); NamedNodeMap atts = node.getAttributes(); for (int x=0; x<4; x++){ for (int y=0; y<4; y++){ String key = "mat"+(x+1)+(y+1); String value = atts.getNamedItem(key).getTextContent(); m.setElement(x, y, new Double(value)); } } return m; }
private void calcTransformation() { calcTransformationBySymmetryAxes(); // make sure this value is zero. On Linux this value is 0. transformationMatrix.setElement(3, 3, 1.0); }
op.setElement(3, 0, 0.0); op.setElement(3, 1, 0.0); op.setElement(3, 2, 0.0); op.setElement(3, 3, 1.0); op.setElement(0, 0, Double.parseDouble(sNcsOper.getMatrix11())); op.setElement(0, 1, Double.parseDouble(sNcsOper.getMatrix12())); op.setElement(0, 2, Double.parseDouble(sNcsOper.getMatrix13())); op.setElement(1, 0, Double.parseDouble(sNcsOper.getMatrix21())); op.setElement(1, 1, Double.parseDouble(sNcsOper.getMatrix22())); op.setElement(1, 2, Double.parseDouble(sNcsOper.getMatrix23())); op.setElement(2, 0, Double.parseDouble(sNcsOper.getMatrix31())); op.setElement(2, 1, Double.parseDouble(sNcsOper.getMatrix32())); op.setElement(2, 2, Double.parseDouble(sNcsOper.getMatrix33())); op.setElement(0, 3, Double.parseDouble(sNcsOper.getVector1())); op.setElement(1, 3, Double.parseDouble(sNcsOper.getVector2())); op.setElement(2, 3, Double.parseDouble(sNcsOper.getVector3()));
private void calcTransformation() { if (rotationGroup.getPointGroup().equals("C1")) { calcTransformationByInertiaAxes(); } else { calcTransformationBySymmetryAxes(); } // make sure this value is zero. On Linux this value is 0. transformationMatrix.setElement(3, 3, 1.0); }
currentNcsOp.setElement(rowIndex-1, 0, col1Value); currentNcsOp.setElement(rowIndex-1, 1, col2Value); currentNcsOp.setElement(rowIndex-1, 2, col3Value); currentNcsOp.setElement(rowIndex-1, 3, translValue);
private void initialize() { // translation to centered coordinate system centroid = new Vector3d(subunits.getCentroid()); // translation back to original coordinate system Vector3d reverse = new Vector3d(centroid); reverse.negate(); centroidInverse.set(reverse); // // On LINUX there seems to be a bug with vecmath, and element m33 is zero. Here we make sure it's 1. centroidInverse.setElement(3, 3, 1.0); }
transformation.setElement(3, 3, 1.0); transformation.invert(); QuatSymmetryScores scores = QuatSuperpositionScorer.calcScores(
private void initialize() { // translation to centered coordinate system centroid = new Vector3d(subunits.getCentroid()); // translation back to original coordinate system Vector3d reverse = new Vector3d(centroid); reverse.negate(); centroidInverse.set(reverse); // Make sure matrix element m33 is 1.0. An old version vecmath did not set this element. centroidInverse.setElement(3, 3, 1.0); List<Point3d> centers = subunits.getCenters(); int n = subunits.getSubunitCount(); originalCoords = new Point3d[n]; transformedCoords = new Point3d[n]; for (int i = 0; i < n; i++) { originalCoords[i] = centers.get(i); transformedCoords[i] = new Point3d(); } } }
private void initialize() { // translation to centered coordinate system centroid = new Vector3d(subunits.getCentroid()); // translation back to original coordinate system Vector3d reverse = new Vector3d(centroid); reverse.negate(); centroidInverse.set(reverse); // Make sure matrix element m33 is 1.0. An old version vecmath did not set this element. centroidInverse.setElement(3, 3, 1.0); List<Point3d> centers = subunits.getCenters(); int n = subunits.getSubunitCount(); originalCoords = new Point3d[n]; transformedCoords = new Point3d[n]; for (int i = 0; i < n; i++) { originalCoords[i] = centers.get(i); transformedCoords[i] = new Point3d(); } setupDistanceBox(); } }
private static Vector3d[] getPolygonVertices(Vector3d axis, Vector3d referenceAxis, Point3d center, int n, double radius) { Vector3d ref = new Vector3d(referenceAxis); ref.scale(radius); AxisAngle4d axisAngle = new AxisAngle4d(axis, 0); Vector3d[] vectors = new Vector3d[n]; Matrix4d m = new Matrix4d(); for (int i = 0; i < n; i++) { axisAngle.angle = i * 2 * Math.PI/n; vectors[i] = new Vector3d(ref); m.set(axisAngle); // make sure matrix element m33 is 1.0. It's 0 on Linux. m.setElement(3, 3, 1.0); m.transform(vectors[i]); vectors[i].add(center); } return vectors; }
m.set(axisAngle); m.setElement(3, 3, 1.0); m.transform(begin); m.set(axisAngle); m.setElement(3, 3, 1.0); m.transform(end); m.set(axisAngle); m.setElement(3, 3, 1.0); m.transform(vectors[i]); vectors[i].add(arcCenter); m.set(axisAngle); m.setElement(3, 3, 1.0); m.transform(vectors[i]); vectors[i].sub(arcCenter);
transformation.set(sphereAngle); transformation.setElement(3, 3, 1.0); for (int j = 0; j < n; j++) { transformedCoords[j].set(originalCoords[j]);
m1.set(a); m1.setElement(3, 3, 1.0); } else if (dot > 0) { m2.set(a); m2.setElement(3, 3, 1.0); } else if (dot > 0) {
m1.set(a); m1.setElement(3, 3, 1.0); } else if (dot > 0) { m2.set(a); m2.setElement(3, 3, 1.0); } else if (dot > 0) {