From: Michael T H. <mic...@us...> - 2002-11-22 23:44:25
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol In directory sc8-pr-cvs1:/tmp/cvs-serv13280 Modified Files: DisplayPanel.java Log Message: AxisAngle rotation test code + test menu entries under View menu Index: DisplayPanel.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/DisplayPanel.java,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -r1.43 -r1.44 *** DisplayPanel.java 22 Nov 2002 20:43:00 -0000 1.43 --- DisplayPanel.java 22 Nov 2002 23:44:22 -0000 1.44 *************** *** 45,48 **** --- 45,49 ---- import javax.vecmath.Vector3f; import javax.vecmath.Point3f; + import javax.vecmath.AxisAngle4f; /** *************** *** 480,483 **** --- 481,488 ---- private LeftAction leftAction = new LeftAction(); private DefineCenterAction defineCenterAction = new DefineCenterAction(); + private Test1Action test1Action = new Test1Action(); + private Test2Action test2Action = new Test2Action(); + private Test3Action test3Action = new Test3Action(); + private Test4Action test4Action = new Test4Action(); private aQuickdrawAction aquickdrawAction = new aQuickdrawAction(); private aShadingAction ashadingAction = new aShadingAction(); *************** *** 863,866 **** --- 868,923 ---- } + class Test1Action extends AbstractAction { + + public Test1Action() { + super("test1"); + this.setEnabled(true); + } + + public void actionPerformed(ActionEvent e) { + rotateX(45); + repaint(); + } + } + + class Test2Action extends AbstractAction { + + public Test2Action() { + super("test2"); + this.setEnabled(true); + } + + public void actionPerformed(ActionEvent e) { + rotateY(45); + repaint(); + } + } + + class Test3Action extends AbstractAction { + + public Test3Action() { + super("test3"); + this.setEnabled(true); + } + + public void actionPerformed(ActionEvent e) { + rotateZ(45); + repaint(); + } + } + + class Test4Action extends AbstractAction { + + public Test4Action() { + super("test4"); + this.setEnabled(true); + } + + public void actionPerformed(ActionEvent e) { + rotate(new AxisAngle4f(1, 1, 1, (float)Math.PI/4)); + repaint(); + } + } + class PlainAction extends AbstractAction { *************** *** 946,950 **** deleteAction, pickAction, rotateAction, zoomAction, xlateAction, frontAction, topAction, bottomAction, rightAction, leftAction, ! defineCenterAction, aquickdrawAction, ashadingAction, awireframeAction, bquickdrawAction, bshadingAction, blineAction, bwireframeAction, plainAction, --- 1003,1007 ---- deleteAction, pickAction, rotateAction, zoomAction, xlateAction, frontAction, topAction, bottomAction, rightAction, leftAction, ! defineCenterAction, test1Action, test2Action, test3Action, test4Action, aquickdrawAction, ashadingAction, awireframeAction, bquickdrawAction, bshadingAction, blineAction, bwireframeAction, plainAction, *************** *** 961,978 **** } - /** Added for compatability with RasmolScript - */ - public void rotate(int axis, float angle) { - - if (axis == X_AXIS) { - matrixRotate.rotX((float)Math.toRadians(angle)); - } else if (axis == Y_AXIS) { - matrixRotate.rotY((float)Math.toRadians(angle)); - } else if (axis == Z_AXIS) { - matrixRotate.rotZ((float)Math.toRadians(angle)); - } - } - - public void propertyChange(PropertyChangeEvent event) { --- 1018,1021 ---- *************** *** 1043,1046 **** --- 1086,1133 ---- status.setStatus(3, fmt(lastTime) + "ms : " + fmt(timeAverage) + "ms"); } + + public void rotate(int axis, float angle) { + if (axis == X_AXIS) { + matrixRotate.rotX((float)Math.toRadians(angle)); + } else if (axis == Y_AXIS) { + matrixRotate.rotY((float)Math.toRadians(angle)); + } else if (axis == Z_AXIS) { + matrixRotate.rotZ((float)Math.toRadians(angle)); + } + } + public void rotateX(float angleRadians) { + matrixTemp.rotX(angleRadians); + matrixRotate.mul(matrixTemp, matrixRotate); + repaint(); + } + public void rotateY(float angleRadians) { + matrixTemp.rotY(angleRadians); + matrixRotate.mul(matrixTemp, matrixRotate); + repaint(); + } + public void rotateZ(float angleRadians) { + matrixTemp.rotZ(angleRadians); + matrixRotate.mul(matrixTemp, matrixRotate); + repaint(); + } + public void rotateX(int angleDegrees) { + rotateX((float)Math.toRadians(angleDegrees)); + } + public void rotateY(int angleDegrees) { + rotateY((float)Math.toRadians(angleDegrees)); + } + public void rotateZ(int angleDegrees) { + rotateZ((float)Math.toRadians(angleDegrees)); + } + public void rotate(AxisAngle4f axisAngle) { + matrixTemp.setIdentity(); + matrixTemp.setRotation(axisAngle); + matrixRotate.mul(matrixTemp, matrixRotate); + repaint(); + } + public void setCenter(Point3f center) { + chemframe.setRotationCenter(center); + } } + |