From: <ha...@us...> - 2007-12-04 21:56:33
|
Revision: 8732 http://jmol.svn.sourceforge.net/jmol/?rev=8732&view=rev Author: hansonr Date: 2007-12-04 13:56:30 -0800 (Tue, 04 Dec 2007) Log Message: ----------- 11.3.53 VERSION final check of all set parameters Modified Paths: -------------- trunk/Jmol/src/org/jmol/shape/Dipoles.java trunk/Jmol/src/org/jmol/shape/DipolesRenderer.java trunk/Jmol/src/org/jmol/shape/Measures.java trunk/Jmol/src/org/jmol/shape/MeasuresRenderer.java trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/JmolConstants.java trunk/Jmol/src/org/jmol/viewer/PickingManager.java trunk/Jmol/src/org/jmol/viewer/ScriptManager.java trunk/Jmol/src/org/jmol/viewer/StateManager.java trunk/Jmol/src/org/jmol/viewer/TransformManager.java trunk/Jmol/src/org/jmol/viewer/TransformManager11.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/src/org/jmol/shape/Dipoles.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Dipoles.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/shape/Dipoles.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -46,7 +46,6 @@ final static short DEFAULT_MAD = 5; final static float DEFAULT_OFFSETSIDE = 0.40f; - float dipoleVectorScale = 1.0f; int dipoleCount = 0; Dipole[] dipoles = new Dipole[4]; @@ -123,11 +122,6 @@ return; } - if ("dipoleVectorScale" == propertyName) { - dipoleVectorScale = ((Float) value).floatValue(); - return; - } - if ("bonds" == propertyName) { isBond = true; currentDipole = null; @@ -556,7 +550,6 @@ appendCmd(s, getColorCommand("dipole", dipole.colix)); } } - appendCmd(s, "set dipoleScale " + dipoleVectorScale); return s.toString(); } } Modified: trunk/Jmol/src/org/jmol/shape/DipolesRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/DipolesRenderer.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/shape/DipolesRenderer.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -36,7 +36,7 @@ protected void render() { Dipoles dipoles = (Dipoles) shape; - dipoleVectorScale = dipoles.dipoleVectorScale; + dipoleVectorScale = viewer.getDipoleScale(); for (int i = dipoles.dipoleCount; --i >= 0;) { Dipole dipole = dipoles.dipoles[i]; if (dipole.visibilityFlags != 0 && transform(dipole)) Modified: trunk/Jmol/src/org/jmol/shape/Measures.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Measures.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/shape/Measures.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -40,23 +40,22 @@ public class Measures extends Shape { - BitSet bsColixSet; - BitSet bsSelected; + private final static int measurementGrowthIncrement = 16; - final static int measurementGrowthIncrement = 16; + private BitSet bsColixSet; + private BitSet bsSelected; + private String strFormat; + private boolean isAllConnected = false; + private float[] rangeMinMax = {Float.MAX_VALUE, Float.MAX_VALUE}; + int measurementCount = 0; Measurement[] measurements = new Measurement[measurementGrowthIncrement]; MeasurementPending pendingMeasurement; short mad = (short)-1; short colix; // default to none in order to contrast with background - String strFormat; - boolean showMeasurementNumbers = true; - boolean isAllConnected = false; Font3D font3d; - float[] rangeMinMax = {Float.MAX_VALUE, Float.MAX_VALUE}; - protected void initModelSet() { pendingMeasurement = new MeasurementPending(modelSet); for (int i = 0; i < measurements.length; i++) @@ -144,8 +143,6 @@ font3d = (Font3D) value; } else if ("clear".equals(propertyName)) { clear(); - } else if ("showMeasurementNumbers".equals(propertyName)) { - showMeasurementNumbers = ((Boolean) value).booleanValue(); } else if ("reformatDistances".equals(propertyName)) { reformatDistances(); } @@ -462,8 +459,6 @@ appendCmd(commands, "measures delete"); for (int i = 0; i < measurementCount; i++) appendCmd(commands, getState(i)); - if (!showMeasurementNumbers) - appendCmd(commands, "set measures off; # numbers off"); appendCmd(commands, "set measures " + viewer.getMeasureDistanceUnits()); appendCmd(commands, getFontCommand("measures", font3d)); int n = 0; Modified: trunk/Jmol/src/org/jmol/shape/MeasuresRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/MeasuresRenderer.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/shape/MeasuresRenderer.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -36,11 +36,11 @@ public class MeasuresRenderer extends FontLineShapeRenderer { - boolean showMeasurementNumbers; - short measurementMad; - Font3D font3d; - Measurement measurement; - boolean doJustify; + private boolean showMeasurementLabels; + private short measurementMad; + private Font3D font3d; + private Measurement measurement; + private boolean doJustify; protected void render() { if (!viewer.getShowMeasurements() || !g3d.checkTranslucent(false)) return; @@ -49,7 +49,7 @@ doJustify = viewer.getJustifyMeasurements(); measurementMad = measures.mad; font3d = measures.font3d; - showMeasurementNumbers = measures.showMeasurementNumbers; + showMeasurementLabels = viewer.getShowMeasurementLabels(); measures.setVisibilityInfo(); boolean dynamicMeasurements = viewer.getDynamicMeasurements(); for (int i = measures.measurementCount; --i >= 0;) { @@ -69,35 +69,43 @@ renderPendingMeasurement(measures.pendingMeasurement); } - void renderMeasurement(Measurement measurement) { + private void renderMeasurement(Measurement measurement) { renderMeasurement(measurement.getCount(), measurement, true); } - void renderMeasurement(int count, Measurement measurement, boolean renderArcs) { + private void renderMeasurement(int count, Measurement measurement, boolean renderArcs) { this.measurement = measurement; switch(count) { case 2: - renderDistance(); + renderDistance(modelSet.getAtomAt(measurement.getIndex(1)), + modelSet.getAtomAt(measurement.getIndex(2))); break; case 3: - renderAngle(renderArcs); + renderAngle(modelSet.getAtomAt(measurement.getIndex(1)), + modelSet.getAtomAt(measurement.getIndex(2)), + modelSet.getAtomAt(measurement.getIndex(3)), + renderArcs); break; case 4: - renderTorsion(renderArcs); + renderTorsion(modelSet.getAtomAt(measurement.getIndex(1)), + modelSet.getAtomAt(measurement.getIndex(2)), + modelSet.getAtomAt(measurement.getIndex(3)), + modelSet.getAtomAt(measurement.getIndex(4)), + renderArcs); break; default: throw new NullPointerException(); } } - Point3i ptA = new Point3i(); - Point3i ptB = new Point3i(); + private Point3i ptA = new Point3i(); + private Point3i ptB = new Point3i(); - int drawSegment(int x1, int y1, int z1, int x2, int y2, int z2) { + private int drawSegment(int x1, int y1, int z1, int x2, int y2, int z2) { if (measurementMad < 0) { ptA.set(x1, y1, z1); ptB.set(x2, y2, z2); - drawDashedLine(4, 2, ptA, ptB); + g3d.drawDashedLine(4, 2, ptA, ptB); return 1; } int widthPixels = measurementMad; @@ -108,12 +116,6 @@ return (widthPixels + 1) / 2; } - void renderDistance() { - - renderDistance(modelSet.getAtomAt(measurement.getIndex(1)), - modelSet.getAtomAt(measurement.getIndex(2))); - } - void renderDistance(Atom atomA, Atom atomB) { int zA = atomA.screenZ - atomA.screenDiameter - 10; int zB = atomB.screenZ - atomB.screenDiameter - 10; @@ -128,18 +130,11 @@ } - AxisAngle4f aaT = new AxisAngle4f(); - Matrix3f matrixT = new Matrix3f(); - Point3f pointT = new Point3f(); + private AxisAngle4f aaT = new AxisAngle4f(); + private Matrix3f matrixT = new Matrix3f(); + private Point3f pointT = new Point3f(); - void renderAngle(boolean renderArcs) { - renderAngle(modelSet.getAtomAt(measurement.getIndex(1)), - modelSet.getAtomAt(measurement.getIndex(2)), - modelSet.getAtomAt(measurement.getIndex(3)), - renderArcs); - } - - void renderAngle(Atom atomA, Atom atomB, Atom atomC, + private void renderAngle(Atom atomA, Atom atomB, Atom atomC, boolean renderArcs) { int zA = atomA.screenZ - atomA.screenDiameter - 10; int zB = atomB.screenZ - atomB.screenDiameter - 10; @@ -180,7 +175,7 @@ Point3i screenArc = viewer.transformPoint(pointT); int zArc = screenArc.z - zOffset; if (zArc < 0) zArc = 0; - drawPixel(screenArc.x, screenArc.y, zArc); + g3d.drawPixel(screenArc.x, screenArc.y, zArc); if (i == iMid) { pointT.set(ptArc); pointT.scale(1.1f); @@ -194,15 +189,7 @@ } } - void renderTorsion(boolean renderArcs) { - renderTorsion(modelSet.getAtomAt(measurement.getIndex(1)), - modelSet.getAtomAt(measurement.getIndex(2)), - modelSet.getAtomAt(measurement.getIndex(3)), - modelSet.getAtomAt(measurement.getIndex(4)), - renderArcs); - } - - void renderTorsion(Atom atomA, Atom atomB, Atom atomC, Atom atomD, + private void renderTorsion(Atom atomA, Atom atomB, Atom atomC, Atom atomD, boolean renderArcs) { int zA = atomA.screenZ - atomA.screenDiameter - 10; int zB = atomB.screenZ - atomB.screenDiameter - 10; @@ -217,9 +204,9 @@ (zA + zB + zC + zD) / 4, radius, false, 0); } - void paintMeasurementString(int x, int y, int z, int radius, + private void paintMeasurementString(int x, int y, int z, int radius, boolean rightJustify, int yRef) { - if (!showMeasurementNumbers) + if (!showMeasurementLabels) return; if (!doJustify) { rightJustify = false; @@ -246,7 +233,7 @@ g3d.drawString(strMeasurement, font3d, xT, yT, zT, zT); } - void renderPendingMeasurement(MeasurementPending pendingMeasurement) { + private void renderPendingMeasurement(MeasurementPending pendingMeasurement) { if (isGenerator) return; int count = pendingMeasurement.getCount(); @@ -259,7 +246,7 @@ renderMeasurement(pendingMeasurement); } - public void renderPendingWithCursor(MeasurementPending pendingMeasurement) { + private void renderPendingWithCursor(MeasurementPending pendingMeasurement) { int count = pendingMeasurement.getCount(); if (count < 2) return; @@ -274,14 +261,5 @@ y <<= 1; } drawSegment(atomLast.screenX, atomLast.screenY, lastZ, x, y, 0); - } - - protected void drawPixel(int x, int y, int z) { - g3d.drawPixel(x, y, z); - } - - protected void drawDashedLine(int run, int rise, Point3i ptA, Point3i ptB) { - g3d.drawDashedLine(run, rise, ptA, ptB); - } - + } } Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -1697,8 +1697,9 @@ private BitSet lookupValue(String variable, boolean plurals) throws ScriptException { - if (isSyntaxCheck) + if (isSyntaxCheck) { return new BitSet(); + } //if (logMessages) //viewer.scriptStatus("lookupValue(" + variable + ")"); Object value = variables.get(variable); @@ -6430,11 +6431,6 @@ setUserColors(); return; } - if (key.equalsIgnoreCase("measurementNumbers") - || key.equalsIgnoreCase("measurementLabels")) { - setMonitor(); - return; - } if (key.equalsIgnoreCase("defaultLattice")) { Point3f pt; Vector v = (Vector) parameterExpression(2, 0, "XXX", true); @@ -6457,6 +6453,7 @@ // THESE CAN BE PART OF CALCULATIONS + if (key.equalsIgnoreCase("defaultDrawArrowScale")) { setFloatProperty(key, floatSetting(2)); return; @@ -6501,11 +6498,15 @@ if (key.equalsIgnoreCase("showSelections")) { key = "selectionHalos"; + break; } - + if (key.equalsIgnoreCase("measurementNumbers")) { + key = "measurementLabels"; + break; + } } - if (getContextVariableAsToken(key) != null || !setParameter(key, val, showing)) { + if (getContextVariableAsToken(key) != null || !setParameter(key, val, isJmolSet, showing)) { int tok2 = (tokAt(1) == Token.expressionBegin ? 0 : tokAt(2)); setVariable((tok2 == Token.opEQ ? 3 : 2), 0, key, showing); if (!isJmolSet) @@ -6637,7 +6638,7 @@ } } - private boolean setParameter(String key, int intVal, boolean showing) + private boolean setParameter(String key, int intVal, boolean isJmolSet, boolean showing) throws ScriptException { String lcKey = key.toLowerCase(); if (key.equalsIgnoreCase("scriptReportingLevel")) { //11.1.13 @@ -6668,6 +6669,10 @@ setFloatProperty("axesScale", scale); return true; } + if (key.equalsIgnoreCase("measurementUnits")) { + setMeasurementUnits(stringSetting(2, isJmolSet)); + return true; + } if (Parser.isOneOf(lcKey, "defaults;defaultcolorscheme")) { String val; if ((theTok = tokAt(2)) == Token.jmol || theTok == Token.rasmol) { @@ -6704,7 +6709,6 @@ setIntProperty(key, intVal); return true; } - boolean isJmolSet = (parameterAsString(0).equals("set")); boolean isJmolParameter = viewer.isJmolVariable(key); if (isJmolSet && !isJmolParameter) { iToken = 1; @@ -6723,10 +6727,8 @@ if (theTok == Token.none) { if (!isSyntaxCheck) viewer.removeUserVariable(key); - } else if (theTok == Token.on || theTok == Token.off) { - setBooleanProperty(key, theTok == Token.on); } else if (isJmolSet && theTok == Token.identifier) { - setStringProperty(key, (String) theToken.value); +// setStringProperty(key, (String) theToken.value); } else { return false; } @@ -7772,16 +7774,19 @@ showMeasurementNumbers ? Boolean.TRUE : Boolean.FALSE); return; case Token.identifier: - String units = parameterAsString(2); - if (!StateManager.isMeasurementUnit(units)) - unrecognizedParameter("MEASURE ", units); - if (!isSyntaxCheck) - viewer.setMeasureDistanceUnits(units); + setMeasurementUnits(parameterAsString(2)); return; } setShapeSize(JmolConstants.SHAPE_MEASURES, getSetAxesTypeMad(2)); } + private void setMeasurementUnits(String units) throws ScriptException { + if (!StateManager.isMeasurementUnit(units)) + unrecognizedParameter("set measurementUnits ", units); + if (!isSyntaxCheck) + viewer.setMeasureDistanceUnits(units); + } + private void setProperty() throws ScriptException { //what possible good is this? //set property foo bar is identical to @@ -7864,6 +7869,10 @@ setStringProperty("picking", "ident"); return; } + if (statementLength > 4 || tokAt(2) == Token.string) { + setStringProperty("picking", stringSetting(2, false)); + return; + } int i = 2; String type = "SELECT"; switch (getToken(2).tok) { @@ -7904,6 +7913,10 @@ } private void setPickingStyle() throws ScriptException { + if (statementLength > 4 || tokAt(2) == Token.string) { + setStringProperty("pickingStyle", stringSetting(2, false)); + return; + } int i = 2; boolean isMeasure = false; String type = "SELECT"; @@ -7911,6 +7924,7 @@ case Token.monitor: isMeasure = true; type = "MEASURE"; + //fall through case Token.select: checkLength34(); if (statementLength == 4) @@ -8421,7 +8435,7 @@ break; case Token.display://deprecated case Token.selectionHalo: - msg = "selectionHalos " + viewer.getSelectionHaloEnabled(); + msg = "selectionHalos " + (viewer.getSelectionHaloEnabled() ? "ON" : "OFF"); break; case Token.hetero: msg = "set selectHetero " + viewer.getRasmolHeteroSetting(); Modified: trunk/Jmol/src/org/jmol/viewer/JmolConstants.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/JmolConstants.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -224,7 +224,7 @@ public final static String getPickingStyleName(int pickingStyle) { return (pickingStyle < 0 || pickingStyle >= pickingStyleNames.length ? "toggle" - : pickingModeNames[pickingStyle]); + : pickingStyleNames[pickingStyle]); } public final static int getPickingStyle(String str) { Modified: trunk/Jmol/src/org/jmol/viewer/PickingManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PickingManager.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/PickingManager.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -217,7 +217,10 @@ queuedAtomCount = 0; } + int pickingStyle; + void setPickingStyle(int pickingStyle) { + this.pickingStyle = pickingStyle; if (Logger.isActiveLevel(Logger.LEVEL_DEBUG)) { Logger.debug( " setPickingStyle " + pickingStyle+": " + @@ -231,6 +234,10 @@ } } + int getPickingStyleMode() { + return pickingStyle; + } + void setDrawHover(boolean TF) { drawHover = TF; } Modified: trunk/Jmol/src/org/jmol/viewer/ScriptManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ScriptManager.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/ScriptManager.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -32,7 +32,7 @@ Viewer viewer; Thread queueThread; Vector scriptQueue = new Vector(); - boolean useQueue = true; // new default + boolean useQueue = true; ScriptManager(Viewer viewer) { this.viewer = viewer; Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateManager.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/StateManager.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -36,6 +36,7 @@ import org.jmol.util.BitSetUtil; import org.jmol.util.Escape; import org.jmol.util.Logger; +import org.jmol.util.Parser; import org.jmol.util.TextFormat; import java.util.Arrays; @@ -53,7 +54,7 @@ In StateManager - 3. create the global.xxx varaible + 3. create the global.xxx variable 4. in registerParameter() register it so that it shows up as having a value in math */ @@ -100,9 +101,10 @@ return g; } - static void clear(GlobalSettings global) { - global.clear(); - //other state clearing? -- place here + void clear() { + viewer.setShowAxes(false); + viewer.setShowBbcage(false); + viewer.setShowUnitCell(false); } void setCrystallographicDefaults() { @@ -351,8 +353,7 @@ } static boolean isMeasurementUnit(String units) { - String u = ";" + units.toLowerCase() + ";"; - return (";angstroms;au;bohr;nanometers;nm;picometers;pm;".indexOf(u) >= 0); + return Parser.isOneOf(units.toLowerCase(),"angstroms;au;bohr;nanometers;nm;picometers;pm"); } class GlobalSettings { @@ -374,6 +375,23 @@ Hashtable listVariables = new Hashtable(); + void clear() { + Enumeration e = htUserVariables.keys(); + while (e.hasMoreElements()) { + String key = (String) e.nextElement(); + if (key.charAt(0) == '@' + || key.startsWith("site_")) + htUserVariables.remove(key); + } + + setParameterValue("_atompicked", -1); + setParameterValue("_atomhovered", -1); + setParameterValue("_pickinfo", ""); + setParameterValue("selectionhalos", false); + setParameterValue("hidenotselected", false); + setParameterValue("measurementlabels", measurementLabels = true); + } + void setListVariable(String name, Token value) { name = name.toLowerCase(); if (value == null) @@ -391,31 +409,31 @@ //lighting (see Graphics3D.Shade3D + int ambientPercent = 45; + int diffusePercent = 84; boolean specular = true; + int specularExponent = 6; int specularPercent = 22; - int specularExponent = 6; int specularPower = 40; - int diffusePercent = 84; - int ambientPercent = 45; //file loading - char inlineNewlineChar = '|'; //pseudo static - boolean appendNew = true; - boolean applySymmetryToBonds = false; //new 11.1.29 - boolean zeroBasedXyzRasmol = false; - boolean forceAutoBond = false; - boolean autoBond = true; - boolean allowEmbeddedScripts = true; - boolean smartAromatic = true; - int percentVdwAtom = JmolConstants.DEFAULT_PERCENT_VDW_ATOM; - short bondRadiusMilliAngstroms = JmolConstants.DEFAULT_BOND_MILLIANGSTROM_RADIUS; - float bondTolerance = JmolConstants.DEFAULT_BOND_TOLERANCE; - float minBondDistance = JmolConstants.DEFAULT_MIN_BOND_DISTANCE; - String defaultLoadScript = ""; - String defaultDirectory = ""; - String loadFormat = "http://www.rcsb.org/pdb/files/%FILE.pdb"; - String appletProxy = ""; + boolean allowEmbeddedScripts = true; + boolean appendNew = true; + String appletProxy = ""; + boolean applySymmetryToBonds = false; //new 11.1.29 + boolean autoBond = true; + short bondRadiusMilliAngstroms = JmolConstants.DEFAULT_BOND_MILLIANGSTROM_RADIUS; + float bondTolerance = JmolConstants.DEFAULT_BOND_TOLERANCE; + String defaultLoadScript = ""; + String defaultDirectory = ""; + boolean forceAutoBond = false; + char inlineNewlineChar = '|'; //pseudo static + String loadFormat = "http://www.rcsb.org/pdb/files/%FILE.pdb"; + float minBondDistance = JmolConstants.DEFAULT_MIN_BOND_DISTANCE; + int percentVdwAtom = JmolConstants.DEFAULT_PERCENT_VDW_ATOM; + boolean smartAromatic = true; + boolean zeroBasedXyzRasmol = false; /** * these settings are determined when the file is loaded and are @@ -475,24 +493,12 @@ return A; } - void clear() { - - // OK, here is where we would put any - // "global" settings that - // need to be reset whenever a file is loaded - - viewer.setShowAxes(false); - viewer.setShowBbcage(false); - viewer.setShowUnitCell(false); - clearVolatileProperties(); - } - //centering and perspective boolean allowRotateSelected = false; boolean perspectiveDepth = true; - float visualRange = 5f; - int stereoDegrees = 5; + int stereoDegrees = 5; + float visualRange = 5f; //solvent @@ -500,91 +506,99 @@ //measurements - boolean measureAllModels = false; - boolean justifyMeasurements = false; + String defaultAngleLabel = "%VALUE %UNITS"; String defaultDistanceLabel = "%VALUE %UNITS"; //also %_ and %a1 %a2 %m1 %m2, etc. - String defaultAngleLabel = "%VALUE %UNITS"; String defaultTorsionLabel = "%VALUE %UNITS"; + boolean justifyMeasurements = false; + boolean measureAllModels = false; //rendering boolean antialiasDisplay = false; boolean antialiasImages = true; boolean antialiasTranslucent = true; + boolean displayCellParameters = true; + boolean dotsSelectedOnly = false; + boolean dotSurface = true; + boolean dynamicMeasurements = false; boolean greyscaleRendering = false; - boolean zoomLarge = true; //false would be like Chime - boolean dotsSelectedOnly = false; - boolean dotSurface = true; - boolean displayCellParameters = true; + boolean isosurfacePropertySmoothing = true; boolean showHiddenSelectionHalos = false; boolean showMeasurements = true; + boolean zoomLarge = true; //false would be like Chime boolean zShade = false; - boolean dynamicMeasurements = false; - boolean isosurfacePropertySmoothing = true; //atoms and bonds - boolean bondModeOr = false; + boolean bondModeOr = false; + boolean hbondsBackbone = false; + boolean hbondsSolid = false; + byte modeMultipleBond = JmolConstants.MULTIBOND_NOTSMALL; + boolean showHydrogens = true; boolean showMultipleBonds = true; - boolean showHydrogens = true; boolean ssbondsBackbone = false; - boolean hbondsBackbone = false; - boolean hbondsSolid = false; - byte modeMultipleBond = JmolConstants.MULTIBOND_NOTSMALL; - //secondary structure + Rasmol + boolean cartoonRockets = false; + boolean chainCaseSensitive = false; + int hermiteLevel = 0; + boolean highResolutionFlag = false; + boolean rangeSelected = false; boolean rasmolHydrogenSetting = true; boolean rasmolHeteroSetting = true; - boolean cartoonRockets = false; + int ribbonAspectRatio = 16; + boolean ribbonBorder = false; boolean rocketBarrels = false; - boolean ribbonBorder = false; - boolean chainCaseSensitive = false; - boolean rangeSelected = false; - + float sheetSmoothing = 1; // 0: traceAlpha on alphas for helix, 1 on midpoints boolean traceAlpha = true; - boolean highResolutionFlag = false; - int ribbonAspectRatio = 16; - int hermiteLevel = 0; - float sheetSmoothing = 1; // 0: traceAlpha on alphas for helix, 1 on midpoints //misc - int animationFps = 10; - boolean hideNameInPopup = false; - boolean disablePopupMenu = false; - float defaultDrawArrowScale = 0.5f; - float vibrationScale = 1f; - float vibrationPeriod = 1f; - float vectorScale = 1f; - float cameraDepth = 3.0f; - float solventProbeRadius = 1.2f; - int scriptDelay = 0; - int hoverDelayMs = 500; - boolean hideNavigationPoint = false; - boolean showNavigationPointAlways = false; - String propertyColorScheme = "roygb"; - boolean useNumberLocalization = true; - float defaultTranslucent = 0.5f; - boolean autoFps = false; - String dataSeparator = "~~~"; - boolean statusReporting = true; - int strandCountForStrands = 5; - int strandCountForMeshRibbon = 7; + int animationFps = 10; + boolean autoFps = false; + int axesMode = JmolConstants.AXES_MODE_BOUNDBOX; + float axesScale = 2; + float cameraDepth = 3.0f; + String dataSeparator = "~~~"; + boolean debugScript = false; + float defaultDrawArrowScale = 0.5f; + float defaultTranslucent = 0.5f; + float dipoleScale = 1.0f; + boolean disablePopupMenu = false; + boolean drawPicking = false; + String helpPath = JmolConstants.DEFAULT_HELP_PATH; + boolean hideNameInPopup = false; + int hoverDelayMs = 500; + boolean measurementLabels = true; + int pickingSpinRate = 10; + String propertyColorScheme = "roygb"; + float solventProbeRadius = 1.2f; + int scriptDelay = 0; + boolean statusReporting = true; + int strandCountForStrands = 5; + int strandCountForMeshRibbon = 7; + boolean useNumberLocalization = true; + float vectorScale = 1f; + float vibrationPeriod = 1f; + float vibrationScale = 1f; - // window - int[] objColors = new int[OBJ_MAX]; - boolean[] objStateOn = new boolean[OBJ_MAX]; - short[] objMad = new short[OBJ_MAX]; - String stereoState = null; - boolean navigationMode = false; - boolean navigationPeriodic = false; - boolean navigationCentered = false; - float navigationSpeed = 5; + boolean hideNavigationPoint = false; + boolean navigationMode = false; + boolean navigationPeriodic = false; + boolean navigationCentered = false; + float navigationSpeed = 5; + boolean showNavigationPointAlways = false; + String stereoState = null; + // special persistent object characteristics -- bbcage, uccage, axes: + + int[] objColors = new int[OBJ_MAX]; + boolean[] objStateOn = new boolean[OBJ_MAX]; + short[] objMad = new short[OBJ_MAX]; + String getWindowState(StringBuffer sfunc) { StringBuffer str = new StringBuffer(); if (sfunc != null) { @@ -617,25 +631,15 @@ appendCmd(str, "specularPower = " + Graphics3D.getSpecularPower()); appendCmd(str, "specularExponent = " + Graphics3D.getSpecularExponent()); return str.toString(); - } - - int axesMode = JmolConstants.AXES_MODE_BOUNDBOX; - float axesScale = 2; - int pickingSpinRate = 10; - boolean drawPicking = false; - - String helpPath = JmolConstants.DEFAULT_HELP_PATH; + } //testing - boolean debugScript = false; boolean testFlag1 = false; boolean testFlag2 = false; boolean testFlag3 = false; boolean testFlag4 = false; - // measurements - //controlled access: private String measureDistanceUnits = "nanometers"; @@ -651,6 +655,7 @@ else if (units.equalsIgnoreCase("bohr") || units.equalsIgnoreCase("au")) measureDistanceUnits = "au"; + setParameterValue("measurementUnits", measureDistanceUnits); } String getMeasureDistanceUnits() { @@ -659,15 +664,9 @@ Hashtable htParameterValues; Hashtable htPropertyFlags; - - final static String volatileProperties = - //indicate all properties here in lower case - //surrounded by ";" that should be reset upon file load - //frame properties and such: - ";selectionhalos;"; - //also, any variable starting with site_ will be cleared - - final static String unnecessaryProperties = + Hashtable htPropertyFlagsRemoved; + + final static String unreportedProperties = //these are handled individually in terms of reporting for the state //NOT EXCLUDING the load state settings, because although we //handle these specially for the CURRENT FILE, their current @@ -690,47 +689,20 @@ // saved in the hash table but not considered part of the state: ";scriptqueue;scriptreportinglevel" + // more settable Jmol variables - ";ambient;bonds;colorrasmol;diffuse;dipoleScale;drawhover;frank;hetero;hidenotselected" + + ";ambient;bonds;colorrasmol;diffuse;dipolescale;drawhover;frank;hetero;hidenotselected" + ";hoverlabel;hydrogen;languagetranslation;navigationdepth;navigationslab" + ";picking;pickingstyle;propertycolorschemeoverload;radius;rgbblue;rgbgreen;rgbred" + ";scaleangstromsperinch;selectionhalos;showscript;showselections;solvent;strandcount" + - ";spinx;spiny;spinz;spinfps" + + ";spinx;spiny;spinz;spinfps;measurementunits" + + ";animframecallback;loadstructcallback;messagecallback;hovercallback;resizecallback;pickcallback" + ";"; boolean isJmolVariable(String key) { return htParameterValues.containsKey(key = key.toLowerCase()) || htPropertyFlags.containsKey(key) - || unnecessaryProperties.indexOf(";" + key + ";") >= 0 - || key.indexOf("callback") >= 0; + || unreportedProperties.indexOf(";" + key + ";") >= 0; } - void clearVolatileProperties() { - Enumeration e; - e = htPropertyFlags.keys(); - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - if (volatileProperties.indexOf(";" + key + ";") >= 0 || key.charAt(0) == '@') - htPropertyFlags.remove(key); - } - e = htParameterValues.keys(); - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - if (volatileProperties.indexOf(";" + key + ";") >= 0 || key.charAt(0) == '@') - htParameterValues.remove(key); - } - e = htUserVariables.keys(); - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - if (volatileProperties.indexOf(";" + key + ";") >= 0 || key.charAt(0) == '@' - || key.startsWith("site_")) - htUserVariables.remove(key); - } - - setParameterValue("_atompicked", -1); - setParameterValue("_atomhovered", -1); - removeJmolParameter("_pickinfo"); - } - void setParameterValue(String name, boolean value) { name = name.toLowerCase(); if (htParameterValues.containsKey(name)) @@ -767,6 +739,8 @@ void removeJmolParameter(String key) { if (htPropertyFlags.containsKey(key)) { htPropertyFlags.remove(key); + if (!htPropertyFlagsRemoved.containsKey(key)) + htPropertyFlagsRemoved.put(key, Boolean.FALSE); return; } if (htParameterValues.containsKey(key)) @@ -798,7 +772,7 @@ } boolean doRegister(String name) { - return (unnecessaryProperties.indexOf(";" + name + ";") < 0); + return (unreportedProperties.indexOf(";" + name + ";") < 0); } String getParameterEscaped(String name, int nMax) { @@ -816,6 +790,8 @@ return htPropertyFlags.get(name).toString(); if (htUserVariables.containsKey(name)) return escapeUserVariable(name); + if (htPropertyFlagsRemoved.containsKey(name)) + return "false"; return "<not set>"; } @@ -847,6 +823,8 @@ return htParameterValues.get(name); if (htPropertyFlags.containsKey(name)) return htPropertyFlags.get(name); + if (htPropertyFlagsRemoved.containsKey(name)) + return Boolean.FALSE; if (htUserVariables.containsKey(name)) { return Token.oValue((Token) htUserVariables.get(name)); } @@ -985,9 +963,23 @@ void registerAllValues() { htParameterValues = new Hashtable(); htPropertyFlags = new Hashtable(); + htPropertyFlagsRemoved = new Hashtable(); + // some of these are just placeholders so that the math processor + // knows they are Jmol variables. They are held by other managers + + setParameterValue("hoverLabel",""); + setParameterValue("rotationRadius",0); + setParameterValue("scriptqueue",true); + setParameterValue("_version",0); setParameterValue("stateversion",0); + setParameterValue("animFrameCallback", ""); + setParameterValue("loadStructCallback", ""); + setParameterValue("messageCallback", ""); + setParameterValue("hoverCallback", ""); + setParameterValue("resizeCallback", ""); + setParameterValue("pickCallback", ""); setParameterValue("allowEmbeddedScripts",allowEmbeddedScripts); setParameterValue("allowRotateSelected",allowRotateSelected); setParameterValue("ambientPercent",ambientPercent); @@ -1002,6 +994,9 @@ setParameterValue("autoFps",autoFps); setParameterValue("axesMode",axesMode); setParameterValue("axesScale",axesScale); + setParameterValue("axesWindow", true); + setParameterValue("axesMolecular", false); + setParameterValue("axesUnitcell", false); setParameterValue("axesOrientationRasmol", false); setParameterValue("backgroundModel", 0); setParameterValue("bondModeOr",bondModeOr); @@ -1024,10 +1019,12 @@ setParameterValue("defaultTorsionLabel",defaultTorsionLabel); setParameterValue("defaultTranslucent",defaultTranslucent); setParameterValue("diffusePercent",diffusePercent); + setParameterValue("dipoleScale", dipoleScale); setParameterValue("disablePopupMenu",disablePopupMenu); setParameterValue("displayCellParameters",displayCellParameters); setParameterValue("dotsSelectedOnly",dotsSelectedOnly); setParameterValue("dotSurface",dotSurface); + setParameterValue("drawHover",false); setParameterValue("drawPicking",drawPicking); setParameterValue("dynamicMeasurements",dynamicMeasurements); setParameterValue("exportDrivers", JmolConstants.EXPORT_DRIVER_LIST); @@ -1047,14 +1044,20 @@ setParameterValue("justifyMeasurements",justifyMeasurements); setParameterValue("loadFormat",loadFormat); setParameterValue("measureAllModels",measureAllModels); + setParameterValue("measurementLabels",measurementLabels=true); + setParameterValue("measurementUnits", measureDistanceUnits); setParameterValue("minBondDistance",minBondDistance); setParameterValue("navigationCentered",navigationCentered); setParameterValue("navigationMode",navigationMode); setParameterValue("navigationPeriodic",navigationPeriodic); + setParameterValue("navigationDepth",0); + setParameterValue("navigationSlab",0); setParameterValue("navigationSpeed",navigationSpeed); setParameterValue("perspectiveModel",11); setParameterValue("percentVdwAtom",percentVdwAtom); + setParameterValue("picking","ident"); setParameterValue("pickingSpinRate",pickingSpinRate); + setParameterValue("pickingStyle","toggle"); setParameterValue("propertyColorScheme",propertyColorScheme); setParameterValue("propertyDataField",0); setParameterValue("propertyAtomNumberField",0); @@ -1063,8 +1066,9 @@ setParameterValue("ribbonAspectRatio",ribbonAspectRatio); setParameterValue("ribbonBorder",ribbonBorder); setParameterValue("rocketBarrels",rocketBarrels); - setParameterValue("scriptDelay",scriptDelay); + setParameterValue("scaleAngstromsPerInch",0); setParameterValue("scriptReportingLevel",0); + setParameterValue("selectionHalos",false); setParameterValue("selectHetero",rasmolHeteroSetting); setParameterValue("selectHydrogen",rasmolHydrogenSetting); setParameterValue("sheetSmoothing",sheetSmoothing); @@ -1076,7 +1080,9 @@ setParameterValue("showMeasurements",showMeasurements); setParameterValue("showMultipleBonds",showMultipleBonds); setParameterValue("showNavigationPointAlways",showNavigationPointAlways); - setParameterValue("showunitcell",false); + setParameterValue("showScript",scriptDelay); + setParameterValue("showUnitcell",false); + setParameterValue("slabEnabled",false); setParameterValue("smartAromatic",smartAromatic); setParameterValue("solventProbe",solventOn); setParameterValue("solventProbeRadius",solventProbeRadius); @@ -1104,10 +1110,11 @@ setParameterValue("vibrationPeriod",vibrationPeriod); setParameterValue("vibrationScale",vibrationScale); setParameterValue("visualRange",visualRange); + setParameterValue("windowCentered",true); + setParameterValue("zoomEnabled",true); setParameterValue("zoomLarge",zoomLarge); setParameterValue("zShade",zShade); setParameterValue("zeroBasedXyzRasmol",zeroBasedXyzRasmol); -// setParameterValue("argbBackground",argbBackground); } } Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -688,6 +688,7 @@ void setSlabEnabled(boolean slabEnabled) { this.slabEnabled = slabEnabled; + viewer.getGlobalSettings().setParameterValue("slabEnabled", slabEnabled); } void slabReset() { @@ -2126,8 +2127,10 @@ } float setRotationRadius(float angstroms) { - return (modelRadius = (angstroms <= 0 ? viewer + float r = (modelRadius = (angstroms <= 0 ? viewer .calcRotationRadius(fixedRotationCenter) : angstroms)); + viewer.getGlobalSettings().setParameterValue("rotationRadius", r); + return r; } private void setRotationCenterAndRadiusXYZ(Point3f newCenterOfRotation, @@ -2297,6 +2300,7 @@ * @param percent */ void setNavigationDepthPercent(float timeSec, float percent) { + viewer.getGlobalSettings().setParameterValue("navigationDepth", percent); } Point3f getNavigationCenter() { @@ -2316,6 +2320,7 @@ } void setNavigationSlabOffsetPercent(float offset) { + viewer.getGlobalSettings().setParameterValue("navigationSlab", offset); } String getNavigationText(boolean addComments) { Modified: trunk/Jmol/src/org/jmol/viewer/TransformManager11.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/TransformManager11.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/TransformManager11.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -277,6 +277,10 @@ return; slabValue = (int) (referencePlaneOffset - navigationSlabOffset); depthValue = (int) ((1 - depthPercentSetting / 50f) * modelRadiusPixels + modelCenterOffset); + + viewer.getGlobalSettings().setParameterValue("navigationDepth",getNavigationDepthPercent()); + viewer.getGlobalSettings().setParameterValue("navigationSlab",getNavigationSlabOffsetPercent()); + if (Logger.isActiveLevel(Logger.LEVEL_DEBUG)) Logger.debug("\n" + "\nperspectiveScale: " + referencePlaneOffset + " screenPixelCount: " + screenPixelCount @@ -709,6 +713,7 @@ } void setNavigationSlabOffsetPercent(float percent) { + viewer.getGlobalSettings().setParameterValue("navigationSlab", percent); calcCameraFactors(); //current navigationSlabOffset = percent / 50 * modelRadiusPixels; } @@ -727,6 +732,7 @@ // navigation depth 0 # place user at rear plane of the model // navigation depth 100 # place user at front plane of the model + viewer.getGlobalSettings().setParameterValue("navigationDepth", percent); calcCameraFactors(); //current modelCenterOffset = referencePlaneOffset - (1 - percent / 50) * modelRadiusPixels; calcCameraFactors(); //updated Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2007-12-04 21:52:42 UTC (rev 8731) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2007-12-04 21:56:30 UTC (rev 8732) @@ -126,6 +126,10 @@ private SelectionManager selectionManager; private StateManager stateManager; private StateManager.GlobalSettings global; + StateManager.GlobalSettings getGlobalSettings() { + return global; + } + private StatusManager statusManager; private TempArray tempManager; private TransformManager transformManager; @@ -390,10 +394,6 @@ // /////////////////////////////////////////////////////////////// void initialize() { - resetAllParameters(); - } - - void resetAllParameters() { global = stateManager.getGlobalSettings(); setIntProperty("_version", getJmolVersionInt(), true); colorManager.resetElementColors(); @@ -731,7 +731,6 @@ } private void setZoomEnabled(boolean zoomEnabled) { - global.setParameterValue("zoomEnabled", zoomEnabled); transformManager.setZoomEnabled(zoomEnabled); refresh(1, "Viewer:setZoomEnabled()"); } @@ -1110,16 +1109,6 @@ return (global.objStateOn[objId] ? global.objMad[objId] : 0); } - /* - private void setRgbs(int rgorb, String color) { - colorManager.setRgb(rgorb, Graphics3D.getArgbFromString(color)); - } - - int getRgb(int rgorb) { - return colorManager.getRgb(rgorb); - } - */ - public void setPropertyColorScheme(String scheme, boolean isOverloaded) { global.propertyColorScheme = scheme; colorManager.setColorScheme(scheme, isOverloaded); @@ -1782,12 +1771,12 @@ transformManager.clear(); pickingManager.clear(); selectionManager.clear(); - global.setParameterValue("hideNotSelected", false); clearAllMeasurements(); modelSet = modelManager.clear(); mouseManager.clear(); statusManager.clear(); - StateManager.clear(global); + stateManager.clear(); + global.clear(); tempManager.clear(); //setRefreshing(true); refresh(0, "Viewer:clear()"); @@ -3138,6 +3127,10 @@ return scriptManager.addScript(strScript, false, isQuiet); } + private void setScriptQueue(boolean value) { + scriptManager.setQueue(value); + } + boolean usingScriptQueue() { return scriptManager.useQueue; } @@ -3421,7 +3414,7 @@ } } - void setAtomHoverLabel(String text) { + private void setAtomHoverLabel(String text) { setShapeProperty(JmolConstants.SHAPE_HOVER, "atomLabel", text); } @@ -3596,6 +3589,8 @@ if (pickingMode < 0) pickingMode = JmolConstants.PICKING_IDENT; pickingManager.setPickingMode(pickingMode); + global.setParameterValue("picking", + JmolConstants.getPickingModeName(pickingManager.getPickingMode())); } public int getPickingMode() { @@ -3615,6 +3610,8 @@ if (pickingStyle < 0) pickingStyle = JmolConstants.PICKINGSTYLE_SELECT_JMOL; pickingManager.setPickingStyle(pickingStyle); + global.setParameterValue("pickingStyle", + JmolConstants.getPickingStyleName(pickingManager.getPickingStyleMode())); } void setDrawHover(boolean TF) { @@ -3790,7 +3787,7 @@ } private void setScriptDelay(int nSec) { - global.scriptDelay = nSec; + global.scriptDelay = nSec; } int getScriptDelay() { @@ -3945,7 +3942,7 @@ if (key.equalsIgnoreCase("hoverLabel")) { setAtomHoverLabel(value); - return; + break; } ///11.0/// if (key.equalsIgnoreCase("defaultDistanceLabel")) { @@ -3986,11 +3983,11 @@ } if (key.equalsIgnoreCase("picking")) { setPickingMode(value); - break; + return; } if (key.equalsIgnoreCase("pickingStyle")) { setPickingStyle(value); - break; + return; } if (key.equalsIgnoreCase("dataSeparator")) { //just saving this @@ -4007,8 +4004,8 @@ boolean isJmol = global.htParameterValues.containsKey(key); if (!isJmol && notFound && key.charAt(0) != '@') { //not found -- @ is a silent mode indicator - if (global.htPropertyFlags.containsKey(key)) { - scriptError(GT._("ERROR: cannot set boolean flag to string value")); + if (global.htPropertyFlags.containsKey(key) || global.htPropertyFlagsRemoved.containsKey(key)) { + scriptError(GT._("ERROR: cannot set boolean flag to string value: {0}", key)); return; } //Logger.warn(key + " -- string variable defined (" + value.length() @@ -4158,7 +4155,7 @@ boolean isJmol = global.htParameterValues.containsKey(key); if (!isJmol && notFound) { if (global.htPropertyFlags.containsKey(key)) { - scriptError(GT._("ERROR: cannot set boolean flag to numeric value")); + scriptError(GT._("ERROR: cannot set boolean flag to numeric value: {0}", key)); return true; } //Logger.warn("viewer.setFloatProperty(" + key + "," + value @@ -4297,7 +4294,7 @@ boolean isJmol = global.htParameterValues.containsKey(key); if (!isJmol && notFound) { if (global.htPropertyFlags.containsKey(key)) { - scriptError("ERROR: cannot set boolean flag to numeric value"); + scriptError(GT._("ERROR: cannot set boolean flag to numeric value: {0}", key)); return; } //Logger.info("viewer.setIntProperty(" + key + "," + value @@ -4512,7 +4509,7 @@ break; } if (key.equalsIgnoreCase("scriptQueue")) { - scriptManager.setQueue(value); + setScriptQueue(value); break; } if (key.equalsIgnoreCase("dotSurface")) { @@ -4583,17 +4580,24 @@ setGreyscaleRendering(value); break; } + if (key.equalsIgnoreCase("measurementLabels")) { + setShowMeasurementLabels(value); + break; + } + + // these next three remove parameters, so don't set htParameter key here + if (key.equalsIgnoreCase("axesWindow")) { setAxesModeMolecular(!value); - break; + return true; } if (key.equalsIgnoreCase("axesMolecular")) { setAxesModeMolecular(value); - break; + return true; } if (key.equalsIgnoreCase("axesUnitCell")) { setAxesModeUnitCell(value); - break; + return true; } //public; no need to set here if (key.equalsIgnoreCase("axesOrientationRasmol")) { @@ -4701,7 +4705,7 @@ if (!isJmol && notFound) { if (global.htParameterValues.containsKey(key)) { scriptError( - GT._("ERROR: Cannot set value of this variable to a boolean.")); + GT._("ERROR: Cannot set value of this variable to a boolean: {0}", key)); return true; } } @@ -5340,6 +5344,14 @@ return global.showMeasurements; } + private void setShowMeasurementLabels(boolean TF) { + global.measurementLabels = TF; + } + + public boolean getShowMeasurementLabels() { + return global.measurementLabels; + } + private void setMeasureAllModels(boolean TF) { global.measureAllModels = TF; } @@ -5803,11 +5815,13 @@ private void setDipoleScale(float scale) { //Eval - loadShape(JmolConstants.SHAPE_DIPOLES); - setShapeProperty(JmolConstants.SHAPE_DIPOLES, "dipoleVectorScale", - new Float(scale)); + global.dipoleScale = scale; } + public float getDipoleScale() { + return global.dipoleScale; + } + public void getAtomIdentityInfo(int atomIndex, Hashtable info) { modelSet.getAtomIdentityInfo(atomIndex, info); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |