Revision: 18492
          http://sourceforge.net/p/jmol/code/18492
Author:   hansonr
Date:     2013-07-26 11:46:53 +0000 (Fri, 26 Jul 2013)
Log Message:
-----------
___JmolVersion="13.3.3_dev_2013.07.26"
        
bug fix: PDB header don't do trim();
bug fix: isosuface ID @x ... becomes isosurface ID "@x"
bug fix: color chain broken
bug fix: rockets with color chain
bug fix: filter ":X" broken
bug fix: O not 2- in PDB adding hydrogens       
bug fix: NWChem reader error

Modified Paths:
--------------
    trunk/Jmol/src/org/jmol/adapter/readers/cifpdb/PdbReader.java
    trunk/Jmol/src/org/jmol/adapter/readers/more/Mol2Reader.java
    trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java
    trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlXsdReader.java
    trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java
    trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java
    trunk/Jmol/src/org/jmol/minimize/MinPosition.java
    trunk/Jmol/src/org/jmol/minimize/Minimizer.java
    trunk/Jmol/src/org/jmol/minimize/forcefield/CalculationsMMFF.java
    trunk/Jmol/src/org/jmol/minimize/forcefield/ForceField.java
    trunk/Jmol/src/org/jmol/modelset/AtomCollection.java
    trunk/Jmol/src/org/jmol/modelset/ModelCollection.java
    trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
    trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java
    trunk/Jmol/src/org/jmol/renderbio/RocketsRenderer.java
    trunk/Jmol/src/org/jmol/script/ScriptCompiler.java
    trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java
    trunk/Jmol/src/org/jmol/shapespecial/Dots.java
    trunk/Jmol/src/org/jmol/util/Measure.java
    trunk/Jmol/src/org/jmol/viewer/ColorManager.java
    trunk/Jmol/src/org/jmol/viewer/Jmol.properties
    trunk/Jmol/src/org/jmol/viewer/PropertyManager.java
    trunk/Jmol/src/org/jmol/viewer/Viewer.java

Modified: trunk/Jmol/src/org/jmol/adapter/readers/cifpdb/PdbReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/cifpdb/PdbReader.java       
2013-07-24 11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/adapter/readers/cifpdb/PdbReader.java       
2013-07-26 11:46:53 UTC (rev 18492)
@@ -786,7 +786,7 @@
     ch = chain < 256 ? (char) chain : 0;
     if (chainAtomCounts != null)
       chainAtomCounts[ch]++;
-    atom.chainID = ch;
+    setChainID(atom, ch);
     atom.sequenceNumber = seqNo;
     atom.insertionCode = JmolAdapter.canonizeInsertionCode(insCode);
     atom.isHetero = isHetero;    
@@ -898,7 +898,7 @@
         String msg = " atom [" + atom.group3 + "]"
                            + atom.sequenceNumber 
                            + (atom.insertionCode == '\0' ? "" : "^" + 
atom.insertionCode)
-                           + (atom.chainID == '\0' ? "" : ":" + atom.chainID)
+                           + (atom.chainID == 0 ? "" : ":" + 
viewer.getChainIDStr(atom.chainID))
                            + "." + atom.atomName
                            + "%" + atom.alternateLocationID + "\n";
         if (conformationIndex >= 0 && atom.alternateLocationID != lastAltLoc) {
@@ -1695,8 +1695,8 @@
       for (int j = ranges.size(); --j >= 0;) {
         String chains = (String) ranges.get(j).get("chains");
         int[] residues = (int[]) ranges.get(j).get("residues");
-        char chain0 = chains.charAt(0);
-        char chain1 = chains.charAt(1);
+        int chain0 = 0 + chains.charAt(0);
+        int chain1 = 0 + chains.charAt(1);
         int res0 = residues[0];
         int res1 = residues[1];
         int index1 = findAtomForRange(index0, indexMax, chain0, res0, false);
@@ -1732,13 +1732,13 @@
     atomSetCollection.setTensors();
   }
 
-  private int findAtomForRange(int atom1, int atom2, char chain, int resno,
+  private int findAtomForRange(int atom1, int atom2, int chain, int resno,
                           boolean isLast) {
     int iAtom = findAtom(atom1, atom2, chain, resno, true);
     return (isLast && iAtom >= 0 ? findAtom(iAtom, atom2, chain, resno, false) 
: iAtom);
   }
 
-  private int findAtom(int atom1, int atom2, char chain, int resno, boolean 
isTrue) {
+  private int findAtom(int atom1, int atom2, int chain, int resno, boolean 
isTrue) {
     Atom[] atoms = atomSetCollection.getAtoms();
     for (int i = atom1; i < atom2; i++) {
      Atom atom = atoms[i];

Modified: trunk/Jmol/src/org/jmol/adapter/readers/more/Mol2Reader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/more/Mol2Reader.java        
2013-07-24 11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/adapter/readers/more/Mol2Reader.java        
2013-07-26 11:46:53 UTC (rev 18492)
@@ -184,7 +184,7 @@
           chainID++;
         }
         lastSequenceNumber = atom.sequenceNumber;
-        atom.chainID = chainID;
+        setChainID(atom, (char) chainID);
       }
       if (tokens.length > 7)
         atom.group3 = tokens[7];

Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java      
2013-07-24 11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java      
2013-07-26 11:46:53 UTC (rev 18492)
@@ -1144,7 +1144,7 @@
     int thisModel = -1;
     for (int i = atomCount0; i < n; i++) {
       if (i == atomCount) {
-        thischain = '\0';
+        thischain = 0;
       } else {
         seqNo = atoms[i].sequenceNumber;
         thischain = atoms[i].chainID;

Modified: trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlXsdReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlXsdReader.java       
2013-07-24 11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlXsdReader.java       
2013-07-26 11:46:53 UTC (rev 18492)
@@ -89,7 +89,7 @@
       atom.atomName = atts.get("ID");
       atom.atomSerial = ++iAtom;
       if (iChain >= 0)
-        atom.chainID = (iChain - 1)%26 + 'A';
+        setChainID(atom, (char) ((iChain - 1)%26 + 'A'));
       atom.group3 = "UNK";
       if (iGroup == 0)
         iGroup = 1;

Modified: trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java   2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/adapter/smarter/Atom.java   2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -47,7 +47,8 @@
   public float radius = Float.NaN;
   public boolean isHetero;
   public int atomSerial = Integer.MIN_VALUE;
-  public int chainID;
+  public int chainID; // not public -- set using 
AtomSetCollectionReader.setChainID
+  
   public char alternateLocationID = '\0';
   public String group3;
   public int sequenceNumber = Integer.MIN_VALUE;

Modified: trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java        
2013-07-24 11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java        
2013-07-26 11:46:53 UTC (rev 18492)
@@ -922,8 +922,8 @@
             || atom.atomName.toUpperCase().indexOf("\0" + filterAtomTypeStr) 
>= 0)
         && (!filterElement || atom.elementSymbol == null || !filterReject(f, 
"_",
             atom.elementSymbol.toUpperCase() + ";"))
-        && (!filterChain || atom.chainID == '\0' || !filterReject(f, ":", ""
-            + atom.chainID))
+        && (!filterChain || atom.chainID == 0 || !filterReject(f, ":", ""
+            + viewer.getChainIDStr(atom.chainID)))
         && (!filterAltLoc || atom.alternateLocationID == '\0' || !filterReject(
             f, "%", "" + atom.alternateLocationID))
         && (!filterHetero || !filterReject(f, "HETATM",
@@ -1615,4 +1615,7 @@
     // PyMOL reader only
   }
 
+  public void setChainID(Atom atom, char ch) {
+    atom.chainID = viewer.getChainID("" + ch);    
+  }
 }

Modified: trunk/Jmol/src/org/jmol/minimize/MinPosition.java
===================================================================
--- trunk/Jmol/src/org/jmol/minimize/MinPosition.java   2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/minimize/MinPosition.java   2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -1,5 +1,8 @@
 package org.jmol.minimize;
 
+/**
+ * not implemented -- would be a force toward a given position in space
+ */
 public class MinPosition extends MinObject {
   MinPosition(int[] data, double[] ddata) {
     this.data = data;

Modified: trunk/Jmol/src/org/jmol/minimize/Minimizer.java
===================================================================
--- trunk/Jmol/src/org/jmol/minimize/Minimizer.java     2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/minimize/Minimizer.java     2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -59,6 +59,8 @@
   public MinBond[] minBonds;
   public MinAngle[] minAngles;
   public MinTorsion[] minTorsions;
+  public MinPosition[] minPositions;
+  
   public BS bsMinFixed;
   private int atomCount;
   private int bondCount;

Modified: trunk/Jmol/src/org/jmol/minimize/forcefield/CalculationsMMFF.java
===================================================================
--- trunk/Jmol/src/org/jmol/minimize/forcefield/CalculationsMMFF.java   
2013-07-24 11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/minimize/forcefield/CalculationsMMFF.java   
2013-07-26 11:46:53 UTC (rev 18492)
@@ -34,7 +34,6 @@
 import org.jmol.minimize.MinObject;
 import org.jmol.minimize.MinPosition;
 import org.jmol.minimize.MinTorsion;
-import org.jmol.minimize.forcefield.CalculationsUFF.PositionCalc;
 import org.jmol.util.TextFormat;
 
 /**

Modified: trunk/Jmol/src/org/jmol/minimize/forcefield/ForceField.java
===================================================================
--- trunk/Jmol/src/org/jmol/minimize/forcefield/ForceField.java 2013-07-24 
11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/minimize/forcefield/ForceField.java 2013-07-26 
11:46:53 UTC (rev 18492)
@@ -103,6 +103,7 @@
     this.minBonds = minimizer.minBonds;
     this.minAngles = minimizer.minAngles;
     this.minTorsions = minimizer.minTorsions;
+    this.minPositions = minimizer.minPositions; // not implemented
     this.bsFixed = minimizer.bsMinFixed;
     minAtomCount = minAtoms.length;
     minBondCount = minBonds.length;

Modified: trunk/Jmol/src/org/jmol/modelset/AtomCollection.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/AtomCollection.java        2013-07-24 
11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/modelset/AtomCollection.java        2013-07-26 
11:46:53 UTC (rev 18492)
@@ -1390,7 +1390,8 @@
       Atom a = atoms[i];
       int nH = getImplicitHydrogenCount(a, true);
       if (nH != 0) {
-        int c0 = a.getFormalCharge();
+
+          int c0 = a.getFormalCharge();
         int c = c0 - nH;
         a.setFormalCharge(c);
         taintAtom(i, TAINT_FORMALCHARGE);

Modified: trunk/Jmol/src/org/jmol/modelset/ModelCollection.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/ModelCollection.java       2013-07-24 
11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/modelset/ModelCollection.java       2013-07-26 
11:46:53 UTC (rev 18492)
@@ -3259,6 +3259,13 @@
     return BSUtil.deleteBits(bs, bs1);
   }
 
+  /**
+   * 
+   * @param iFirst
+   *        0 from ModelLoader.freeze; -1 from Viewer.assignAtom
+   * @param baseAtomIndex
+   * @param mergeSet
+   */
   public void setAtomNamesAndNumbers(int iFirst, int baseAtomIndex,
                                      AtomCollection mergeSet) {
     // first, validate that all atomSerials are NaN
@@ -3281,10 +3288,14 @@
       // 1) do not change numbers assigned by adapter
       // 2) do not change the number already assigned when merging
       // 3) restart numbering with new atoms, not a continuation of old
-      if (atomSerials[i] == 0 || baseAtomIndex < 0)
-        atomSerials[i] = (i < baseAtomIndex ? mergeSet.atomSerials[i] : 
atomNo);
-      if (atomNames[i] == null || baseAtomIndex < 0)
-        atomNames[i] = (atom.getElementSymbol() + atomSerials[i]).intern();
+      if (i >= -baseAtomIndex) {
+        if (atomSerials[i] == 0 || baseAtomIndex < 0)
+          atomSerials[i] = (i < baseAtomIndex ? mergeSet.atomSerials[i]
+              : atomNo);
+        if (atomNames[i] == null || baseAtomIndex < 0)
+          atomNames[i] = (atom.getElementSymbol() + atomSerials[i]).intern();
+      }
+
       if (!models[lastModelIndex].isModelKit || atom.getElementNumber() > 0
           && !atom.isDeleted())
         atomNo++;

Modified: trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/ModelLoader.java   2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/modelset/ModelLoader.java   2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -248,7 +248,7 @@
 
   public int baseModelIndex = 0;
   private int baseModelCount = 0;
-  private int baseAtomIndex = 0;
+  public int baseAtomIndex = 0;
   private int baseGroupIndex = 0;
 
   private int baseTrajectoryCount = 0;

Modified: trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java   2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java   2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -40,6 +40,7 @@
 import org.jmol.modelset.ModelLoader;
 import org.jmol.modelset.ModelSet;
 import org.jmol.util.BS;
+import org.jmol.util.BSUtil;
 import org.jmol.util.JmolEdge;
 import org.jmol.util.Logger;
 import org.jmol.util.Measure;
@@ -206,12 +207,9 @@
   
   public void addImplicitHydrogenAtoms(JmolAdapter adapter, int iGroup, int 
nH) {
     String group3 = modelLoader.getGroup3(iGroup);
-    if (group3 != null && group3.equals("FS4"))
-      System.out.println("hest");
     int nH1;
     if (haveHsAlready || group3 == null
-        || (nH1 = JC.getStandardPdbHydrogenCount(Group
-        .lookupGroupID(group3))) == 0)
+        || (nH1 = JC.getStandardPdbHydrogenCount(Group.lookupGroupID(group3))) 
== 0)
       return;
     nH = (nH1 < 0 ? -1 : nH1 + nH);
     Object model = null;
@@ -351,7 +349,6 @@
     modelSet.viewer.getLigandModel(null);
     finalizePdbMultipleBonds();
     addHydrogens();
-    modelSet.fixFormalCharges(bsAtomsForHs);
   }
 
   private void addHydrogens() {
@@ -453,6 +450,7 @@
       }
     }
     deleteUnneededAtoms();
+    modelSet.fixFormalCharges(BSUtil.newBitSet2(modelLoader.baseAtomIndex, 
modelLoader.modelSet.atomCount));
   }
 
   /**

Modified: trunk/Jmol/src/org/jmol/renderbio/RocketsRenderer.java
===================================================================
--- trunk/Jmol/src/org/jmol/renderbio/RocketsRenderer.java      2013-07-24 
11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/renderbio/RocketsRenderer.java      2013-07-26 
11:46:53 UTC (rev 18492)
@@ -171,8 +171,8 @@
     viewer.transformPt3f(pointEnd, screenB);
     int zMid = (int) Math.floor((screenA.z + screenB.z) / 2f);
     int diameter = (int) viewer.scaleToScreen(zMid, mad);
-    g3d.fillCylinderBits(GData.ENDCAPS_FLAT, diameter, screenA, screenB);
     if (g3d.setColix(colix)) {
+      g3d.fillCylinderBits(GData.ENDCAPS_FLAT, diameter, screenA, screenB);
       if (tEnd && renderArrowHeads) {
         vtemp.sub2(pointEnd, pointStart);
         vtemp.normalize();

Modified: trunk/Jmol/src/org/jmol/script/ScriptCompiler.java
===================================================================
--- trunk/Jmol/src/org/jmol/script/ScriptCompiler.java  2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/script/ScriptCompiler.java  2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -2348,7 +2348,7 @@
       ichT = ptLastChar + 1;
     else if (ptSpace > 0)
       ichT = ptSpace;
-    if (isVariable && ptSpace < 0 && parenpt <= 0 && ichT - ichToken > 1) {
+    if (isVariable && (!allowSpace || ptSpace < 0 && parenpt <= 0 && ichT - 
ichToken > 1)) {
       // if we have @xxx then this is not an implied string
       return false;
     }

Modified: trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java
===================================================================
--- trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java     2013-07-24 
11:28:50 UTC (rev 18491)
+++ trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java     2013-07-26 
11:46:53 UTC (rev 18492)
@@ -47,7 +47,6 @@
 import org.jmol.util.BS;
 import org.jmol.util.BSUtil;
 import org.jmol.util.BoxInfo;
-import org.jmol.util.C;
 import org.jmol.util.ColorEncoder;
 import org.jmol.util.ColorUtil;
 import org.jmol.util.Escape;

Modified: trunk/Jmol/src/org/jmol/shapespecial/Dots.java
===================================================================
--- trunk/Jmol/src/org/jmol/shapespecial/Dots.java      2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/shapespecial/Dots.java      2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -30,7 +30,6 @@
 import org.jmol.util.BSUtil;
 import org.jmol.util.C;
 import org.jmol.util.Escape;
-import org.jmol.util.Logger;
 import org.jmol.util.Matrix3f;
 import org.jmol.util.Matrix4f;
 import org.jmol.util.SB;

Modified: trunk/Jmol/src/org/jmol/util/Measure.java
===================================================================
--- trunk/Jmol/src/org/jmol/util/Measure.java   2013-07-24 11:28:50 UTC (rev 
18491)
+++ trunk/Jmol/src/org/jmol/util/Measure.java   2013-07-26 11:46:53 UTC (rev 
18492)
@@ -510,7 +510,7 @@
       for (int i = 1; i <= n; i++) {
         P3 aij = centerAndPoints[0][i];
         P3 bij = centerAndPoints[1][i];
-        if (aij instanceof Atom)
+        if (aij instanceof Atom && bij instanceof Atom)
           Logger.info(" atom 1 " + ((Atom) aij).getInfo() + "\tatom 2 "
               + ((Atom) bij).getInfo());
         else

Modified: trunk/Jmol/src/org/jmol/viewer/ColorManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/ColorManager.java    2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/viewer/ColorManager.java    2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -253,6 +253,7 @@
         chain = 0;
       else if (chain >= 256)
         chain -= 256;
+      chain &= 0x1F;
       chain = chain % JC.argbsChainAtom.length;
       argb = (atom.isHetero() ? JC.argbsChainHetero : 
JC.argbsChainAtom)[chain];
       break;

Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -11,11 +11,19 @@
 #  The quotes above look odd for a parameter file, but they are 
 #  important for the JavaScript version of Jmol.
 
-___JmolVersion="13.3.3_dev_2013.07.23"
+___JmolVersion="13.3.3_dev_2013.07.26"
+       
+bug fix: PDB header don't do trim();
+bug fix: isosuface ID @x ... becomes isosurface ID "@x"
+bug fix: color chain broken
+bug fix: rockets with color chain
+bug fix: filter ":X" broken
+bug fix: O not 2- in PDB adding hydrogens      
+bug fix: NWChem reader error
 
-bug fix: NWChem reader error -- unclear what is going on with "OR
+TODO: mouse exit then release doesn't trigger release
 TODO: ingenol/jsmetest.htm?
-
+TODO: minimization set position calculation optimization?
 TODO: documentation (see below, including % units on measure distance)
 
 TODO: isosurface SLAB TRANSLUCENT 0.x color  

Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2013-07-24 11:28:50 UTC 
(rev 18491)
+++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2013-07-26 11:46:53 UTC 
(rev 18492)
@@ -538,10 +538,11 @@
     }
     String[] lines = TextFormat.split((String) objHeader, '\n');
     // this is meant to be for PDB files only
-   if (lines.length == 0 
-       || lines[0].length() < 6 
-       || lines[0].charAt(6) != ' ' 
-       || !lines[0].substring(0, 6).equals(lines[0].substring(0, 
6).toUpperCase())) {
+    if (lines.length == 0
+        || lines[0].length() < 6
+        || lines[0].charAt(6) != ' '
+        || !lines[0].substring(0, 6).equals(
+            lines[0].substring(0, 6).toUpperCase())) {
       ht.put("fileHeader", (String) objHeader);
       return ht;
     }
@@ -569,7 +570,7 @@
         keyLast = key;
       }
       if (!haveType || key.equals(type))
-        sb.append(line.substring(10).trim()).appendC('\n');
+        sb.append(line).appendC('\n');
     }
     if (!haveType) {
       ht.put(keyLast, sb.toString());

Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Viewer.java  2013-07-24 11:28:50 UTC (rev 
18491)
+++ trunk/Jmol/src/org/jmol/viewer/Viewer.java  2013-07-26 11:46:53 UTC (rev 
18492)
@@ -9437,8 +9437,10 @@
       return;
     clearModelDependentObjects();
     if (pt == null) {
+      int atomCount = modelSet.getAtomCount();
       modelSet.assignAtom(atomIndex, type, true);
-      modelSet.setAtomNamesAndNumbers(atomIndex, -1, null);
+      if (!Parser.isOneOf(type,";Mi;Pl;X;"))
+        modelSet.setAtomNamesAndNumbers(atomIndex, -atomCount, null);
       refresh(3, "assignAtom");
       return;
     }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to