From: Michael T H. <mic...@us...> - 2003-08-01 18:51:35
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol In directory sc8-pr-cvs1:/tmp/cvs-serv16192/src/org/openscience/jmol Modified Files: ChemFrame.java Log Message: crystal frame vector support Index: ChemFrame.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/ChemFrame.java,v retrieving revision 1.110 retrieving revision 1.111 diff -u -r1.110 -r1.111 --- ChemFrame.java 1 Aug 2003 18:40:07 -0000 1.110 +++ ChemFrame.java 1 Aug 2003 18:51:32 -0000 1.111 @@ -28,6 +28,7 @@ import org.openscience.jmol.Atom; import org.openscience.jmol.render.AtomShape; import org.openscience.jmol.render.VectorShape; +import org.openscience.jmol.render.LineShape; import org.openscience.jmol.render.JmolFrame; import org.openscience.cdk.AtomContainer; import org.openscience.cdk.geometry.BondTools; @@ -722,6 +723,7 @@ } } + private static final Point3d zeroPoint = new Point3d(); private void buildJmolFrame() { jmframe = new JmolFrame(control); for (int i = getAtomCount(); --i >= 0; ) { @@ -737,6 +739,24 @@ if (jmolAtom.hasVector()) jmframe.addVectorShape(new VectorShape(jmolAtom.getPoint3D(), jmolAtom.getVector(), 2.0)); + } + + if (this instanceof CrystalFrame) { + CrystalFrame crystalFrame = (CrystalFrame) this; + double[][] rprimd = crystalFrame.getRprimd(); + + // The three primitives vectors with arrows + for (int i = 0; i < 3; i++) + jmframe.addVectorShape(new VectorShape(zeroPoint, new Point3d(rprimd[i]))); + + // The full primitive cell + if (true) { + // Depends on the settings...TODO + Vector boxEdges = crystalFrame.getBoxEdges(); + for (int i = 0; i < boxEdges.size(); i = i + 2) + jmframe.addVectorShape(new LineShape((Point3d) boxEdges.elementAt(i), + (Point3d) boxEdges.elementAt(i + 1))); + } } } |