From: Michael T H. <mic...@us...> - 2003-01-10 10:50:21
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol In directory sc8-pr-cvs1:/tmp/cvs-serv12982/src/org/openscience/jmol Modified Files: DisplayControl.java Log Message: basic slab functionality operational -- slabmode does not Index: DisplayControl.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/DisplayControl.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -r1.39 -r1.40 *** DisplayControl.java 10 Jan 2003 08:22:22 -0000 1.39 --- DisplayControl.java 10 Jan 2003 10:50:17 -0000 1.40 *************** *** 384,387 **** --- 384,391 ---- } + public int getZoomPercentSetting() { + return zoomPercentSetting; + } + public void zoomToPercent(int percent) { zoomPercentSetting = percent; *************** *** 418,424 **** public final static int SLABSECTION = 4; ! private boolean slabEnabled = false; ! private int modeSlab; ! private int slabPercentSetting = 100; public boolean getSlabEnabled() { --- 422,429 ---- public final static int SLABSECTION = 4; ! public boolean slabEnabled = false; ! public int modeSlab; ! public int slabValue; ! public int slabPercentSetting = 100; public boolean getSlabEnabled() { *************** *** 426,434 **** } ! public void setSlabPercent(int percentSlab) { this.slabPercentSetting = percentSlab; } public void setSlabEnabled(boolean slabEnabled) { if (this.slabEnabled != slabEnabled) { this.slabEnabled = slabEnabled; --- 431,447 ---- } ! public int getSlabPercentSetting() { ! return slabPercentSetting; ! } ! ! public void slabToPercent(int percentSlab) { ! System.out.println("slabToPercent(" + percentSlab + ")"); this.slabPercentSetting = percentSlab; + calcSlab(); + recalc(); } public void setSlabEnabled(boolean slabEnabled) { + System.out.println("setSlabEnabled("+ slabEnabled + ")"); if (this.slabEnabled != slabEnabled) { this.slabEnabled = slabEnabled; *************** *** 447,454 **** private void calcSlab() { if (slabEnabled) { ! } } public Matrix4d getPovRotateMatrix() { return new Matrix4d(matrixRotate); --- 460,477 ---- private void calcSlab() { if (slabEnabled) { ! // all transformed z coordinates are negative ! // a slab percentage of 100 should map to zero ! // a slab percentage of 0 should map to -diameter ! int radius = ! (int)(chemframe.getRotationRadius() * scalePixelsPerAngstrom); ! slabValue = (int)((-100+slabPercentSetting) * 2*radius / 100); ! System.out.println("slabValue=" + slabValue); } } + private int getSlabValue() { + return slabValue; + } + public Matrix4d getPovRotateMatrix() { return new Matrix4d(matrixRotate); *************** *** 471,475 **** matrixTransform.setIdentity(); // first, translate the coordinates back to the center ! vectorTemp.set(getFrame().getRotationCenter()); matrixTemp.setZero(); matrixTemp.setTranslation(vectorTemp); --- 494,498 ---- matrixTransform.setIdentity(); // first, translate the coordinates back to the center ! vectorTemp.set(chemframe.getRotationCenter()); matrixTemp.setZero(); matrixTemp.setTranslation(vectorTemp); *************** *** 482,486 **** vectorTemp.x = 0; vectorTemp.y = 0; ! vectorTemp.z = getFrame().getRotationRadius(); matrixTemp.setTranslation(vectorTemp); matrixTransform.sub(matrixTemp); --- 505,509 ---- vectorTemp.x = 0; vectorTemp.y = 0; ! vectorTemp.z = chemframe.getRotationRadius(); matrixTemp.setTranslation(vectorTemp); matrixTransform.sub(matrixTemp); *************** *** 536,543 **** public void homePosition() { setCenter(null); clearSelection(); - matrixRotate.setIdentity(); // no rotations scaleFitToScreen(); recalc(); } --- 559,572 ---- public void homePosition() { + // FIXME -- need to hold repaint during this process, but first + // figure out the interaction with the current holdRepaint setting setCenter(null); clearSelection(); scaleFitToScreen(); + matrixRotate.setIdentity(); // no rotations + setSlabEnabled(false); // no slabbing + slabToPercent(100); + setZoomEnabled(true); + zoomToPercent(100); recalc(); } *************** *** 578,582 **** minScreenDimension -= 2; scalePixelsPerAngstrom = ! minScreenDimension / 2 / getFrame().getRotationRadius(); if (perspectiveDepth) { double scaleFactor = (cameraZ + minScreenDimension/2) / (double)cameraZ; --- 607,611 ---- minScreenDimension -= 2; scalePixelsPerAngstrom = ! minScreenDimension / 2 / chemframe.getRotationRadius(); if (perspectiveDepth) { double scaleFactor = (cameraZ + minScreenDimension/2) / (double)cameraZ; *************** *** 638,641 **** --- 667,671 ---- } homePosition(); + // don't know if I need this firm recalc here or not recalcFirmly(); } *************** *** 803,807 **** public void setCenter(Point3d center) { ! getFrame().setRotationCenter(center); } --- 833,837 ---- public void setCenter(Point3d center) { ! chemframe.setRotationCenter(center); } *************** *** 860,864 **** continue; ++countSelected; ! center.add(((org.openscience.jmol.Atom)getFrame().getAtomAt(i)).getPosition()); } if (countSelected > 0) { --- 890,894 ---- continue; ++countSelected; ! center.add(((org.openscience.jmol.Atom)chemframe.getAtomAt(i)).getPosition()); } if (countSelected > 0) { *************** *** 867,871 **** center = null; } ! getFrame().setRotationCenter(center); clearSelection(); scaleFitToScreen(); --- 897,901 ---- center = null; } ! chemframe.setRotationCenter(center); clearSelection(); scaleFitToScreen(); *************** *** 925,931 **** public void rebond() { ! if (getFrame() != null) { try { ! getFrame().rebond(); } catch (Exception e){ } --- 955,961 ---- public void rebond() { ! if (chemframe != null) { try { ! chemframe.rebond(); } catch (Exception e){ } |