public void centerResidues() { double globalCenterX = 0d; double globalCenterY = 0d; double globalCenterZ = 0d; int count = 0; for (Residue res : residueList) { for (Atom atom : res.getAtomList()) { globalCenterX += atom.getCoordinates()[0]; globalCenterY += atom.getCoordinates()[1]; globalCenterZ += atom.getCoordinates()[2]; } count += res.getAtomList().size(); } globalCenterX /= count; globalCenterY /= count; globalCenterZ /= count; for (Node node : root.pdbObjects.getChildren()) { node.setTranslateX(node.getTranslateX() - globalCenterX); node.setTranslateY(node.getTranslateY() - globalCenterY); node.setTranslateZ(node.getTranslateZ() - globalCenterZ); } }
private static SubScene createSubScene( String title, Node node, Paint fillPaint, Camera camera, boolean msaa) { Group root = new Group(); PointLight light = new PointLight(Color.WHITE); light.setTranslateX(50); light.setTranslateY(-300); light.setTranslateZ(-400); PointLight light2 = new PointLight(Color.color(0.6, 0.3, 0.4)); light2.setTranslateX(400); light2.setTranslateY(0); light2.setTranslateZ(-400); AmbientLight ambientLight = new AmbientLight(Color.color(0.2, 0.2, 0.2)); node.setRotationAxis(new Point3D(2, 1, 0).normalize()); node.setTranslateX(180); node.setTranslateY(180); root.getChildren().addAll(setTitle(title), ambientLight, light, light2, node); SubScene subScene = new SubScene( root, 500, 400, true, msaa ? SceneAntialiasing.BALANCED : SceneAntialiasing.DISABLED); subScene.setFill(fillPaint); subScene.setCamera(camera); return subScene; }