From: Michael T H. <mic...@us...> - 2003-08-29 22:00:07
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel In directory sc8-pr-cvs1:/tmp/cvs-serv20647/src/org/openscience/jmol/viewer/datamodel Modified Files: ArrowLineShape.java AtomShape.java Axes.java BondShape.java BoundingBox.java DotsRenderer.java FrameRenderer.java JmolFrame.java JmolFrameBuilder.java LineShape.java MeasurementShape.java Log Message: converted viewer to use floats instead of doubles Index: ArrowLineShape.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/ArrowLineShape.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ArrowLineShape.java 29 Aug 2003 19:06:52 -0000 1.2 +++ ArrowLineShape.java 29 Aug 2003 22:00:00 -0000 1.3 @@ -28,7 +28,7 @@ import org.openscience.jmol.viewer.JmolViewer; import java.awt.Rectangle; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; import javax.vecmath.Point3i; public class ArrowLineShape extends LineShape { @@ -42,7 +42,7 @@ final static int shaftDivisor = 5; final static int finDivisor = 6; - public ArrowLineShape(Point3d pointOrigin, Point3d pointVector) { + public ArrowLineShape(Point3f pointOrigin, Point3f pointVector) { super(pointOrigin, pointVector); headWidthAngstroms = (float)pointOrigin.distance(this.pointEnd) / widthDivisor; Index: AtomShape.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/AtomShape.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- AtomShape.java 29 Aug 2003 19:06:52 -0000 1.14 +++ AtomShape.java 29 Aug 2003 22:00:00 -0000 1.15 @@ -32,14 +32,14 @@ import java.awt.Rectangle; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; import javax.vecmath.Point3i; public class AtomShape implements Bspt.Tuple { public Object clientAtom; JmolFrame frame; - Point3d point3d; + Point3f point3f; int x, y, z; byte atomicNumber; byte styleAtom; @@ -65,7 +65,7 @@ pprop = new ProteinProp(pdbRecord); } setStyleMarAtom(viewer.getStyleAtom(), viewer.getMarAtom()); - this.point3d = new Point3d(viewer.getAtomX(clientAtom), + this.point3f = new Point3f(viewer.getAtomX(clientAtom), viewer.getAtomY(clientAtom), viewer.getAtomZ(clientAtom)); this.strLabel = viewer.getLabelAtom(this, atomIndex); @@ -247,7 +247,7 @@ } public void transform(JmolViewer viewer) { - Point3i screen = viewer.transformPoint(point3d); + Point3i screen = viewer.transformPoint(point3f); x = screen.x; y = screen.y; z = screen.z; @@ -266,26 +266,26 @@ return frame.viewer.getAtomTypeName(atomicNumber, clientAtom); } - public Point3d getPoint3d() { - return point3d; + public Point3f getPoint3f() { + return point3f; } public float getAtomX() { - return (float)point3d.x; + return (float)point3f.x; } public float getAtomY() { - return (float)point3d.y; + return (float)point3f.y; } public float getAtomZ() { - return (float)point3d.z; + return (float)point3f.z; } public float getDimensionValue(int dimension) { return (float)(dimension == 0 - ? point3d.x - : (dimension == 1 ? point3d.y : point3d.z)); + ? point3f.x + : (dimension == 1 ? point3f.y : point3f.z)); } public float getVanderwaalsRadius() { Index: Axes.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/Axes.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Axes.java 26 Aug 2003 13:52:26 -0000 1.2 +++ Axes.java 29 Aug 2003 22:00:00 -0000 1.3 @@ -29,7 +29,7 @@ import java.awt.Font; import java.awt.FontMetrics; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; import javax.vecmath.Point3i; public class Axes { @@ -40,14 +40,14 @@ AxisShape[] axisShapes; Shape[] allShapes; - final Point3d pointOrigin = new Point3d(); - Point3d[] unitAxisPoints = { - new Point3d( 1, 0, 0), - new Point3d( 0, 1, 0), - new Point3d( 0, 0, 1), - new Point3d(-1, 0, 0), - new Point3d( 0,-1, 0), - new Point3d( 0, 0,-1) + final Point3f pointOrigin = new Point3f(); + Point3f[] unitAxisPoints = { + new Point3f( 1, 0, 0), + new Point3f( 0, 1, 0), + new Point3f( 0, 0, 1), + new Point3f(-1, 0, 0), + new Point3f( 0,-1, 0), + new Point3f( 0, 0,-1) }; String[] axisLabels = { "+X", "+Y", "+Z", @@ -64,7 +64,7 @@ axisShapes = new AxisShape[6]; for (int i = 0; i < 6; ++i) allShapes[i+1] = axisShapes[i] = - new AxisShape(new Point3d(unitAxisPoints[i]), axisLabels[i]); + new AxisShape(new Point3f(unitAxisPoints[i]), axisLabels[i]); } public Shape[] getShapes() { @@ -75,9 +75,9 @@ if (modeAxes == JmolViewer.AXES_NONE) return; pointOrigin.set(viewer.getBoundingBoxCenter()); - Point3d corner = viewer.getBoundingBoxCorner(); + Point3f corner = viewer.getBoundingBoxCorner(); for (int i = 0; i < 6; ++i) { - Point3d axisPoint = axisShapes[i].getPoint(); + Point3f axisPoint = axisShapes[i].getPoint(); axisPoint.set(unitAxisPoints[i]); if (modeAxes == JmolViewer.AXES_BBOX) { // we have just set the axisPoint to be a unit on a single axis @@ -114,14 +114,14 @@ } class AxisShape extends Shape { - Point3d pointAxisEnd; + Point3f pointAxisEnd; String label; - AxisShape(Point3d pointAxisEnd, String label) { + AxisShape(Point3f pointAxisEnd, String label) { this.pointAxisEnd = pointAxisEnd; this.label = label; } - Point3d getPoint() { + Point3f getPoint() { return pointAxisEnd; } Index: BondShape.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/BondShape.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- BondShape.java 29 Aug 2003 19:06:52 -0000 1.9 +++ BondShape.java 29 Aug 2003 22:00:00 -0000 1.10 @@ -31,9 +31,6 @@ import java.awt.Rectangle; -import javax.vecmath.Point3d; -import javax.vecmath.Point3i; - public class BondShape { public final static byte COVALENT = 3; Index: BoundingBox.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/BoundingBox.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BoundingBox.java 16 Aug 2003 14:50:44 -0000 1.1 +++ BoundingBox.java 29 Aug 2003 22:00:00 -0000 1.2 @@ -29,27 +29,27 @@ import java.awt.Font; import java.awt.FontMetrics; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; import javax.vecmath.Point3i; public class BoundingBox { JmolViewer viewer; - Point3d pointOrigin; - Point3d pointCorner; + Point3f pointOrigin; + Point3f pointCorner; BboxShape[] bboxShapes; - Point3d[] unitBboxPoints = { - new Point3d( 1, 1, 1), - new Point3d( 1, 1,-1), - new Point3d( 1,-1, 1), - new Point3d( 1,-1,-1), - new Point3d(-1, 1, 1), - new Point3d(-1, 1,-1), - new Point3d(-1,-1, 1), - new Point3d(-1,-1,-1), + Point3f[] unitBboxPoints = { + new Point3f( 1, 1, 1), + new Point3f( 1, 1,-1), + new Point3f( 1,-1, 1), + new Point3f( 1,-1,-1), + new Point3f(-1, 1, 1), + new Point3f(-1, 1,-1), + new Point3f(-1,-1, 1), + new Point3f(-1,-1,-1), }; public BoundingBox(JmolViewer viewer) { @@ -58,7 +58,7 @@ bboxShapes = new BboxShape[8]; for (int i = 0; i < 8; ++i) bboxShapes[i] = - new BboxShape(new Point3d(unitBboxPoints[i]), i); + new BboxShape(new Point3f(unitBboxPoints[i]), i); } public Shape[] getBboxShapes() { @@ -66,10 +66,10 @@ } public void recalc() { - Point3d pointOrigin = viewer.getBoundingBoxCenter(); - Point3d pointCorner = viewer.getBoundingBoxCorner(); + Point3f pointOrigin = viewer.getBoundingBoxCenter(); + Point3f pointCorner = viewer.getBoundingBoxCorner(); for (int i = 0; i < 8; ++i) { - Point3d pointBbox = bboxShapes[i].getPoint(); + Point3f pointBbox = bboxShapes[i].getPoint(); pointBbox.set(unitBboxPoints[i]); pointBbox.x *= pointCorner.x; pointBbox.y *= pointCorner.y; @@ -79,15 +79,15 @@ } class BboxShape extends Shape { - Point3d point; + Point3f point; int myIndex; - BboxShape(Point3d point, int myIndex) { + BboxShape(Point3f point, int myIndex) { this.point = point; this.myIndex = myIndex; } - Point3d getPoint() { + Point3f getPoint() { return point; } Index: DotsRenderer.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/DotsRenderer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DotsRenderer.java 29 Aug 2003 19:06:52 -0000 1.5 +++ DotsRenderer.java 29 Aug 2003 22:00:00 -0000 1.6 @@ -32,8 +32,8 @@ import java.awt.Rectangle; import java.util.Hashtable; -import javax.vecmath.Vector3d; -import javax.vecmath.Point3d; +import javax.vecmath.Vector3f; +import javax.vecmath.Point3f; import javax.vecmath.Point3i; public class DotsRenderer { @@ -84,7 +84,7 @@ // I have no idea what this number should be int neighborCount; AtomShape[] neighbors = new AtomShape[16]; - Point3d[] neighborCenters = new Point3d[16]; + Point3f[] neighborCenters = new Point3f[16]; float[] neighborRadii2 = new float[16]; void getNeighbors(AtomShape atom, float vdwRadius, float probeRadius) { @@ -99,7 +99,7 @@ AtomShape[] neighborsNew = new AtomShape[2 * neighborCount]; System.arraycopy(neighbors, 0, neighborsNew, 0, neighborCount); neighbors = neighborsNew; - Point3d[] centersNew = new Point3d[2 * neighborCount]; + Point3f[] centersNew = new Point3f[2 * neighborCount]; System.arraycopy(neighborCenters, 0, centersNew, 0, neighborCount); neighborCenters = centersNew; float[] radiiNew = new float[2 * neighborCount]; @@ -107,7 +107,7 @@ neighborRadii2 = radiiNew; } neighbors[neighborCount] = neighbor; - neighborCenters[neighborCount] = neighbor.point3d; + neighborCenters[neighborCount] = neighbor.point3f; float effectiveRadius = (neighbor.getVanderwaalsRadius() + probeRadius); neighborRadii2[neighborCount] = effectiveRadius * effectiveRadius; @@ -119,19 +119,19 @@ System.out.println("myVdwRadius=" + myVdwRadius + " maxVdwRadius=" + maxVdwRadius + " distMax=" + (myVdwRadius + maxVdwRadius)); - Point3d me = atom.getPoint3d(); + Point3f me = atom.getPoint3f(); for (int i = 0; i < neighborCount; ++i) { System.out.println(" dist=" + - me.distance(neighbors[i].getPoint3d())); + me.distance(neighbors[i].getPoint3f())); } */ } int[] bitmap; - Point3d pointT = new Point3d(); + Point3f pointT = new Point3f(); - void calcBits(Point3d myCenter, float vdwRadius, float probeRadius) { - Vector3d[] vertices = icosohedron.vertices; + void calcBits(Point3f myCenter, float vdwRadius, float probeRadius) { + Vector3f[] vertices = icosohedron.vertices; int dotCount = vertices.length; setAllBits(bitmap, dotCount); if (neighborCount == 0) @@ -157,7 +157,7 @@ float vdwRadius = atom.getVanderwaalsRadius(); float probeRadius = viewer.getSolventProbeRadius(); getNeighbors(atom, vdwRadius, probeRadius); - calcBits(atom.getPoint3d(), vdwRadius, probeRadius); + calcBits(atom.getPoint3f(), vdwRadius, probeRadius); int indexLast; for (indexLast = bitmap.length; --indexLast >= 0 && bitmap[indexLast] == 0; ) @@ -203,8 +203,8 @@ class Icosohedron { - Vector3d[] vertices; - Vector3d[] verticesTransformed; + Vector3f[] vertices; + Vector3f[] verticesTransformed; // byte[] intensitiesTransformed; int screenCoordinateCount; int[] screenCoordinates; @@ -212,23 +212,23 @@ short[] faceIndices; Icosohedron() { - vertices = new Vector3d[12]; - vertices[0] = new Vector3d(0, 0, halfRoot5); + vertices = new Vector3f[12]; + vertices[0] = new Vector3f(0, 0, halfRoot5); for (int i = 0; i < 5; ++i) { - vertices[i+1] = new Vector3d(Math.cos(i * oneFifth), - Math.sin(i * oneFifth), - 0.5); - vertices[i+6] = new Vector3d(Math.cos(i * oneFifth + oneTenth), - Math.sin(i * oneFifth + oneTenth), - -0.5); + vertices[i+1] = new Vector3f((float)Math.cos(i * oneFifth), + (float)Math.sin(i * oneFifth), + 0.5f); + vertices[i+6] = new Vector3f((float)Math.cos(i * oneFifth + oneTenth), + (float)Math.sin(i * oneFifth + oneTenth), + -0.5f); } - vertices[11] = new Vector3d(0, 0, -halfRoot5); + vertices[11] = new Vector3f(0, 0, -halfRoot5); for (int i = 12; --i >= 0; ) vertices[i].normalize(); faceIndices = faceIndicesInitial; - verticesTransformed = new Vector3d[12]; + verticesTransformed = new Vector3f[12]; for (int i = 12; --i >= 0; ) - verticesTransformed[i] = new Vector3d(); + verticesTransformed[i] = new Vector3f(); screenCoordinates = new int[3 * 12]; // intensities = new byte[12]; // intensitiesTransformed = new byte[12]; @@ -236,7 +236,7 @@ void transform() { for (int i = vertices.length; --i >= 0; ) { - Vector3d t = verticesTransformed[i]; + Vector3f t = verticesTransformed[i]; viewer.transformVector(vertices[i], t); // intensitiesTransformed[i] = // Shade3D.calcIntensity((float)t.x, (float)t.y, (float)t.z); @@ -270,7 +270,7 @@ if (! getBit(visibilityMap, iDot)) continue; // intensities[iintensities++] = intensitiesTransformed[iDot]; - Vector3d vertex = verticesTransformed[iDot]; + Vector3f vertex = verticesTransformed[iDot]; screenCoordinates[icoordinates++] = x + (int)((scaledRadius*vertex.x) + (vertex.x < 0 ? -0.5 : 0.5)); screenCoordinates[icoordinates++] = y @@ -291,12 +291,12 @@ int nFaceIndicesOld = faceIndicesOld.length; int nEdgesOld = nVerticesOld + nFaceIndicesOld/3 - 2; int nVerticesNew = nVerticesOld + nEdgesOld; - Vector3d[] verticesNew = new Vector3d[nVerticesNew]; + Vector3f[] verticesNew = new Vector3f[nVerticesNew]; System.arraycopy(vertices, 0, verticesNew, 0, nVerticesOld); vertices = verticesNew; - verticesTransformed = new Vector3d[nVerticesNew]; + verticesTransformed = new Vector3f[nVerticesNew]; for (int i = nVerticesNew; --i >= 0; ) - verticesTransformed[i] = new Vector3d(); + verticesTransformed[i] = new Vector3f(); screenCoordinates = new int[3 * nVerticesNew]; // intensitiesTransformed = new byte[nVerticesNew]; // intensities @@ -353,9 +353,9 @@ Short iv = (Short)htVertex.get(hashKey); if (iv != null) return iv.shortValue(); - Vector3d vertexNew = new Vector3d(vertices[i1]); + Vector3f vertexNew = new Vector3f(vertices[i1]); vertexNew.add(vertices[i2]); - vertexNew.scale(0.5); + vertexNew.scale(0.5f); vertexNew.normalize(); htVertex.put(hashKey, new Short(iVertexNew)); vertices[iVertexNew] = vertexNew; Index: FrameRenderer.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/FrameRenderer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FrameRenderer.java 29 Aug 2003 15:52:16 -0000 1.4 +++ FrameRenderer.java 29 Aug 2003 22:00:00 -0000 1.5 @@ -28,7 +28,6 @@ import org.openscience.jmol.viewer.JmolViewer; import org.openscience.jmol.viewer.protein.ProteinProp; import org.openscience.jmol.viewer.g3d.Graphics3D; -import javax.vecmath.Point3d; import java.util.Hashtable; import java.util.BitSet; import java.awt.Rectangle; Index: JmolFrame.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/JmolFrame.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- JmolFrame.java 29 Aug 2003 19:06:52 -0000 1.13 +++ JmolFrame.java 29 Aug 2003 22:00:00 -0000 1.14 @@ -28,7 +28,7 @@ import org.openscience.jmol.viewer.JmolViewer; import org.openscience.jmol.viewer.protein.ProteinProp; import org.openscience.jmol.viewer.g3d.Graphics3D; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; import java.util.Hashtable; import java.util.BitSet; import java.awt.Rectangle; @@ -196,9 +196,9 @@ dotsConvexCount = iLast + 1; } - Point3d centerBoundingBox; - Point3d cornerBoundingBox; - Point3d centerRotation; + Point3f centerBoundingBox; + Point3f cornerBoundingBox; + Point3f centerRotation; float radiusBoundingBox; float radiusRotation; @@ -207,17 +207,17 @@ return radiusBoundingBox; } - public Point3d getBoundingBoxCenter() { + public Point3f getBoundingBoxCenter() { findBounds(); return centerBoundingBox; } - public Point3d getBoundingBoxCorner() { + public Point3f getBoundingBoxCorner() { findBounds(); return cornerBoundingBox; } - public Point3d getRotationCenter() { + public Point3f getRotationCenter() { findBounds(); return centerRotation; } @@ -227,7 +227,7 @@ return radiusRotation; } - public void setRotationCenter(Point3d newCenterOfRotation) { + public void setRotationCenter(Point3f newCenterOfRotation) { if (newCenterOfRotation != null) { centerRotation = newCenterOfRotation; radiusRotation = calcRadius(centerRotation); @@ -256,44 +256,44 @@ // Note that this is not really the geometric center of the molecule // ... for this we would need to do a Minimal Enclosing Sphere calculation float minX, minY, minZ, maxX, maxY, maxZ; - Point3d point; + Point3f point; if (crystalCellLineCount == 0) { // non-crystal, so find extremes of atoms - point = atomShapes[0].getPoint3d(); - minX = maxX = (float)point.x; - minY = maxY = (float)point.y; - minZ = maxZ = (float)point.z; + point = atomShapes[0].getPoint3f(); + minX = maxX = point.x; + minY = maxY = point.y; + minZ = maxZ = point.z; for (int i = atomShapeCount; --i > 0; ) { // note that the 0 element was set above - point = atomShapes[i].getPoint3d(); + point = atomShapes[i].getPoint3f(); float t; - t = (float)point.x; + t = point.x; if (t < minX) { minX = t; } else if (t > maxX) { maxX = t; } - t = (float)point.y; + t = point.y; if (t < minY) { minY = t; } else if (t > maxY) { maxY = t; } - t = (float)point.z; + t = point.z; if (t < minZ) { minZ = t; } else if (t > maxZ) { maxZ = t; } } } else { // a crystal cell, so use center of crystal cell box point = crystalCellLines[0].getPoint1(); - minX = maxX = (float)point.x; - minY = maxY = (float)point.y; - minZ = maxZ = (float)point.z; + minX = maxX = point.x; + minY = maxY = point.y; + minZ = maxZ = point.z; for (int i = crystalCellLineCount; --i >= 0; ) { point = crystalCellLines[i].getPoint1(); int j = 0; do { float t; - t = (float)point.x; + t = point.x; if (t < minX) { minX = t; } else if (t > maxX) { maxX = t; } - t = (float)point.y; + t = point.y; if (t < minY) { minY = t; } else if (t > maxY) { maxY = t; } - t = (float)point.z; + t = point.z; if (t < minZ) { minZ = t; } else if (t > maxZ) { maxZ = t; } point = crystalCellLines[i].getPoint2(); @@ -301,19 +301,19 @@ } } - centerBoundingBox = new Point3d((minX + maxX) / 2, + centerBoundingBox = new Point3f((minX + maxX) / 2, (minY + maxY) / 2, (minZ + maxZ) / 2); - cornerBoundingBox = new Point3d(maxX, maxY, maxZ); + cornerBoundingBox = new Point3f(maxX, maxY, maxZ); cornerBoundingBox.sub(centerBoundingBox); } - private float calcRadius(Point3d center) { - float radius = 0.0f; + private float calcRadius(Point3f center) { + float radius = 0; for (int i = atomShapeCount; --i >= 0; ) { AtomShape atomShape = atomShapes[i]; - Point3d posAtom = atomShape.getPoint3d(); - float distAtom = (float)center.distance(posAtom); + Point3f posAtom = atomShape.getPoint3f(); + float distAtom = center.distance(posAtom); float radiusVdw = atomShape.getVanderwaalsRadius(); float distVdw = distAtom + radiusVdw; @@ -335,20 +335,20 @@ for (int i = lineShapeCount; --i >= 0; ) { LineShape ls = lineShapes[i]; float distLineEnd; - distLineEnd = (float)center.distance(ls.getPoint1()); + distLineEnd = center.distance(ls.getPoint1()); if (distLineEnd > radius) radius = distLineEnd; - distLineEnd = (float)center.distance(ls.getPoint2()); + distLineEnd = center.distance(ls.getPoint2()); if (distLineEnd > radius) radius = distLineEnd; } for (int i = crystalCellLineCount; --i >= 0; ) { LineShape ls = crystalCellLines[i]; float distLineEnd; - distLineEnd = (float)center.distance(ls.getPoint1()); + distLineEnd = center.distance(ls.getPoint1()); if (distLineEnd > radius) radius = distLineEnd; - distLineEnd = (float)center.distance(ls.getPoint2()); + distLineEnd = center.distance(ls.getPoint2()); if (distLineEnd > radius) radius = distLineEnd; } @@ -582,7 +582,7 @@ return withinAtomIterator; } - public AtomShapeIterator getWithinIterator(Point3d point, float radius) { + public AtomShapeIterator getWithinIterator(Point3f point, float radius) { pointWrapper.setPoint(point); withinPointIterator.initialize(pointWrapper, radius); return withinPointIterator; @@ -611,16 +611,16 @@ } class PointWrapper implements Bspt.Tuple { - Point3d point; + Point3f point; - void setPoint(Point3d point) { + void setPoint(Point3f point) { this.point.set(point); } public float getDimensionValue(int dim) { return (dim == 0 - ? (float)point.x - : (dim == 1 ? (float)point.y : (float)point.z)); + ? point.x + : (dim == 1 ? point.y : point.z)); } } Index: JmolFrameBuilder.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/JmolFrameBuilder.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- JmolFrameBuilder.java 29 Aug 2003 18:29:02 -0000 1.5 +++ JmolFrameBuilder.java 29 Aug 2003 22:00:00 -0000 1.6 @@ -26,7 +26,7 @@ import org.openscience.jmol.viewer.JmolViewer; import org.openscience.jmol.viewer.JmolModelAdapter; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; public class JmolFrameBuilder { @@ -83,10 +83,10 @@ if (iterVector != null) while (iterVector.hasNext()) { iterVector.moveNext(); - Point3d point1 = new Point3d(iterVector.getPoint1X(), + Point3f point1 = new Point3f(iterVector.getPoint1X(), iterVector.getPoint1Y(), iterVector.getPoint1Z()); - Point3d point2 = new Point3d(iterVector.getPoint2X(), + Point3f point2 = new Point3f(iterVector.getPoint2X(), iterVector.getPoint2Y(), iterVector.getPoint2Z()); frame.addLineShape(new ArrowLineShape(point1, point2)); @@ -99,10 +99,10 @@ if (iterCell != null) for (int i = 0; iterCell.hasNext(); ++i) { iterCell.moveNext(); - Point3d point1 = new Point3d(iterCell.getPoint1X(), + Point3f point1 = new Point3f(iterCell.getPoint1X(), iterCell.getPoint1Y(), iterCell.getPoint1Z()); - Point3d point2 = new Point3d(iterCell.getPoint2X(), + Point3f point2 = new Point3f(iterCell.getPoint2X(), iterCell.getPoint2Y(), iterCell.getPoint2Z()); LineShape line; Index: LineShape.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/LineShape.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LineShape.java 16 Aug 2003 14:50:44 -0000 1.1 +++ LineShape.java 29 Aug 2003 22:00:00 -0000 1.2 @@ -28,28 +28,28 @@ import org.openscience.jmol.viewer.g3d.Graphics3D; import java.awt.Rectangle; -import javax.vecmath.Point3d; +import javax.vecmath.Point3f; import javax.vecmath.Point3i; public class LineShape extends Shape { - Point3d pointOrigin; - Point3d pointEnd; + Point3f pointOrigin; + Point3f pointEnd; int xEnd, yEnd, zEnd; public LineShape() { } - public LineShape(Point3d pointOrigin, Point3d pointEnd) { + public LineShape(Point3f pointOrigin, Point3f pointEnd) { this.pointOrigin = pointOrigin; this.pointEnd = pointEnd; } - public Point3d getPoint1() { + public Point3f getPoint1() { return pointOrigin; } - public Point3d getPoint2() { + public Point3f getPoint2() { return pointEnd; } Index: MeasurementShape.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/viewer/datamodel/MeasurementShape.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MeasurementShape.java 20 Aug 2003 15:55:50 -0000 1.6 +++ MeasurementShape.java 29 Aug 2003 22:00:00 -0000 1.7 @@ -28,8 +28,8 @@ import org.openscience.jmol.viewer.JmolViewer; import org.openscience.jmol.viewer.g3d.Graphics3D; -import javax.vecmath.Point3d; -import javax.vecmath.Vector3d; +import javax.vecmath.Point3f; +import javax.vecmath.Vector3f; //import freeware.PrintfFormat; import java.awt.Font; @@ -42,10 +42,10 @@ public String strMeasurement; public MeasurementShape(JmolViewer viewer, int count, int[] atomIndices) { - Point3d point1 = viewer.getPoint3d(atomIndices[0]); - Point3d point2 = viewer.getPoint3d(atomIndices[1]); - Point3d point3 = null; - Point3d point4 = null; + Point3f point1 = viewer.getPoint3f(atomIndices[0]); + Point3f point2 = viewer.getPoint3f(atomIndices[1]); + Point3f point3 = null; + Point3f point4 = null; switch (count) { case 2: strMeasurement = formatDistance(point1.distance(point2));; @@ -54,33 +54,33 @@ pointEnd = point2; break; case 3: - point3 = viewer.getPoint3d(atomIndices[2]); - Vector3d vector12 = new Vector3d(point1); + point3 = viewer.getPoint3f(atomIndices[2]); + Vector3f vector12 = new Vector3f(point1); vector12.sub(point2); - Vector3d vector32 = new Vector3d(point3); + Vector3f vector32 = new Vector3f(point3); vector32.sub(point2); - double angle = toDegrees(vector12.angle(vector32)); + float angle = toDegrees(vector12.angle(vector32)); strMeasurement = formatAngle(angle); - pointOrigin = new Point3d(point1); + pointOrigin = new Point3f(point1); pointOrigin.scaleAdd(3, point2); - pointOrigin.scale(.25); - pointEnd = new Point3d(point3); + pointOrigin.scale(0.25f); + pointEnd = new Point3f(point3); pointEnd.scaleAdd(3, point2); - pointEnd.scale(.25); + pointEnd.scale(0.25f); break; case 4: - point3 = viewer.getPoint3d(atomIndices[2]); - point4 = viewer.getPoint3d(atomIndices[3]); - double dihedral = computeDihedral(point1, point2, point3, point4); + point3 = viewer.getPoint3f(atomIndices[2]); + point4 = viewer.getPoint3f(atomIndices[3]); + float dihedral = computeDihedral(point1, point2, point3, point4); strMeasurement = formatAngle(dihedral); - pointOrigin = new Point3d(point1); + pointOrigin = new Point3f(point1); pointOrigin.add(point2); - pointOrigin.scale(0.5); - pointEnd = new Point3d(point3); + pointOrigin.scale(0.5f); + pointEnd = new Point3f(point3); pointEnd.add(point4); - pointEnd.scale(0.5); + pointEnd.scale(0.5f); break; default: System.out.println("Invalid count to measurement shape:" + count); @@ -107,14 +107,14 @@ private static PrintfFormat dihedralFormat = new PrintfFormat("%0.1f\u00b0"); */ - String formatDistance(double dist) { - dist = (int)(dist * 1000 + .5); + String formatDistance(float dist) { + dist = (int)(dist * 1000 + 0.5f); dist /= 1000; return "" + dist + '\u00C5'; } - String formatAngle(double angle) { - angle = (int)(angle * 10 + (angle >= 0 ? 0.5 : -0.5)); + String formatAngle(float angle) { + angle = (int)(angle * 10 + (angle >= 0 ? 0.5f : -0.5f)); angle /= 10; return "" + angle + '\u00B0'; } @@ -158,52 +158,52 @@ atomIndices[3] == this.atomIndices[0])); } - public double computeDihedral(Point3d p1, Point3d p2, - Point3d p3, Point3d p4) { + public float computeDihedral(Point3f p1, Point3f p2, + Point3f p3, Point3f p4) { - double ijx = p1.x - p2.x; - double ijy = p1.y - p2.y; - double ijz = p1.z - p2.z; - - double kjx = p3.x - p2.x; - double kjy = p3.y - p2.y; - double kjz = p3.z - p2.z; - - double klx = p3.x - p4.x; - double kly = p3.y - p4.y; - double klz = p3.z - p4.z; - - double ax = ijy * kjz - ijz * kjy; - double ay = ijz * kjx - ijx * kjz; - double az = ijx * kjy - ijy * kjx; - double cx = kjy * klz - kjz * kly; - double cy = kjz * klx - kjx * klz; - double cz = kjx * kly - kjy * klx; - - double ai2 = 1.0 / (ax * ax + ay * ay + az * az); - double ci2 = 1.0 / (cx * cx + cy * cy + cz * cz); - - double ai = Math.sqrt(ai2); - double ci = Math.sqrt(ci2); - double denom = ai * ci; - double cross = ax * cx + ay * cy + az * cz; - double cosang = cross * denom; - if (cosang > 1.0) { - cosang = 1.0; + float ijx = p1.x - p2.x; + float ijy = p1.y - p2.y; + float ijz = p1.z - p2.z; + + float kjx = p3.x - p2.x; + float kjy = p3.y - p2.y; + float kjz = p3.z - p2.z; + + float klx = p3.x - p4.x; + float kly = p3.y - p4.y; + float klz = p3.z - p4.z; + + float ax = ijy * kjz - ijz * kjy; + float ay = ijz * kjx - ijx * kjz; + float az = ijx * kjy - ijy * kjx; + float cx = kjy * klz - kjz * kly; + float cy = kjz * klx - kjx * klz; + float cz = kjx * kly - kjy * klx; + + float ai2 = 1f / (ax * ax + ay * ay + az * az); + float ci2 = 1f / (cx * cx + cy * cy + cz * cz); + + float ai = (float)Math.sqrt(ai2); + float ci = (float)Math.sqrt(ci2); + float denom = ai * ci; + float cross = ax * cx + ay * cy + az * cz; + float cosang = cross * denom; + if (cosang > 1) { + cosang = 1; } - if (cosang < -1.0) { - cosang = -1.0; + if (cosang < -1) { + cosang = -1; } - double dihedral = toDegrees(Math.acos(cosang)); - double dot = ijx*cx + ijy*cy + ijz*cz; - double absDot = Math.abs(dot); + float dihedral = toDegrees((float)Math.acos(cosang)); + float dot = ijx*cx + ijy*cy + ijz*cz; + float absDot = (float)Math.abs(dot); dihedral = (dot/absDot > 0) ? dihedral : -dihedral; return dihedral; } - public static double toDegrees(double angrad) { - return angrad * 180.0 / Math.PI; + public static float toDegrees(float angrad) { + return angrad * 180 / (float)Math.PI; } public String toString() { |