Revision: 18359
          http://sourceforge.net/p/jmol/code/18359
Author:   hansonr
Date:     2013-06-25 01:43:16 +0000 (Tue, 25 Jun 2013)
Log Message:
-----------
___JmolVersion="13.1.17_dev_2013.06.25"

bug fix: PyMOL movie start frame

Modified Paths:
--------------
    trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java
    trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
    trunk/Jmol/src/org/jmol/script/T.java
    trunk/Jmol/src/org/jmol/viewer/AnimationManager.java
    trunk/Jmol/src/org/jmol/viewer/JC.java
    trunk/Jmol/src/org/jmol/viewer/Jmol.properties
    trunk/Jmol/src/org/jmol/viewer/StateCreator.java
    trunk/Jmol/src/org/jmol/viewer/StateManager.java
    trunk/Jmol/src/org/jmol/viewer/Viewer.java

Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java
===================================================================
--- trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java      
2013-06-24 22:56:54 UTC (rev 18358)
+++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java      
2013-06-25 01:43:16 UTC (rev 18359)
@@ -294,8 +294,9 @@
     pymolScene.setStateCount(stateCount);
 
     int pymolState = (int) pymolScene.globalSetting(PyMOL.state);
-    pymolScene.setFrameObject(T.frame, (allStates ? Integer.valueOf(-1)
-        : Integer.valueOf(pymolState - 1)));
+    if (!isMovie)
+      pymolScene.setFrameObject(T.frame, (allStates ? Integer.valueOf(-1)
+          : Integer.valueOf(pymolState - 1)));
     appendLoadNote("frame=" + pymolFrame + " state=" + pymolState
         + " all_states=" + allStates);
 

Modified: trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/ModelLoader.java   2013-06-24 22:56:54 UTC 
(rev 18358)
+++ trunk/Jmol/src/org/jmol/modelset/ModelLoader.java   2013-06-25 01:43:16 UTC 
(rev 18359)
@@ -740,6 +740,7 @@
     int iLast = -1;
     boolean isPdbThisModel = false;
     boolean addH = false;
+    boolean isLegacyHAddition = false;//viewer.getBoolean(T.legacyhaddition);
     JmolAdapterAtomIterator iterAtom = 
adapter.getAtomIterator(atomSetCollection);
     int nRead = 0;
     Model[] models = modelSet.models;
@@ -764,7 +765,7 @@
       String group3 = iterAtom.getGroup3();
       int chainID = iterAtom.getChainID();
       checkNewGroup(adapter, chainID, group3, iterAtom.getSequenceNumber(), 
-          iterAtom.getInsertionCode(), addH);
+          iterAtom.getInsertionCode(), addH, isLegacyHAddition);
       short isotope = iterAtom.getElementNumber();
       if (addH && Elements.getElementNumber(isotope) == 1)
         jbr.setHaveHsAlready(true);
@@ -794,7 +795,7 @@
           );
     }
     if (groupCount > 0 && addH) {
-      jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1, isNewChain ? 1 : 
0);
+      jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1, isNewChain && 
!isLegacyHAddition? 1 : 0);
     }
     iLast = -1;
     EnumVdw vdwtypeLast = null;
@@ -849,7 +850,7 @@
 
   private void checkNewGroup(JmolAdapter adapter, int chainID,
                              String group3, int groupSequenceNumber,
-                             char groupInsertionCode, boolean addH) {
+                             char groupInsertionCode, boolean addH, boolean 
isLegacyHAddition) {
     String group3i = (group3 == null ? null : group3.intern());
     if (chainID != currentChainID) {
       currentChainID = chainID;
@@ -863,7 +864,7 @@
         || groupInsertionCode != currentGroupInsertionCode
         || group3i != currentGroup3) {
       if (groupCount > 0 && addH) {
-        jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1, isNewChain ? 1 : 
0);
+        jbr.addImplicitHydrogenAtoms(adapter, groupCount - 1, isNewChain && 
!isLegacyHAddition? 1 : 0);
         jbr.setHaveHsAlready(false);
       }
       currentGroupSequenceNumber = groupSequenceNumber;

Modified: trunk/Jmol/src/org/jmol/script/T.java
===================================================================
--- trunk/Jmol/src/org/jmol/script/T.java       2013-06-24 22:56:54 UTC (rev 
18358)
+++ trunk/Jmol/src/org/jmol/script/T.java       2013-06-25 01:43:16 UTC (rev 
18359)
@@ -985,26 +985,27 @@
   public final static int justifymeasurements            = booleanparam | 96;
   public final static int languagetranslation            = booleanparam | 97;
   public final static int legacyautobonding              = booleanparam | 98;
-  public final static int logcommands                    = booleanparam | 99;
-  public final static int loggestures                    = booleanparam | 100;
-  public final static int measureallmodels               = booleanparam | 101;
-  public final static int measurementlabels              = booleanparam | 102;
-  public final static int messagestylechime              = booleanparam | 103;
-  public final static int minimizationrefresh            = booleanparam | 104;
-  public final static int minimizationsilent             = booleanparam | 105;
-  public final static int modelkitmode                   = booleanparam | 106; 
 // 12.0.RC15
-  public final static int monitorenergy                  = booleanparam | 107;
-  public final static int multiprocessor                 = booleanparam | 108;
-  public final static int navigatesurface                = booleanparam | 109;
-  public final static int navigationmode                 = booleanparam | 110;
-  public final static int navigationperiodic             = booleanparam | 111;
-  public final static int partialdots                    = booleanparam | 112; 
// 12.1.46
-  public final static int pdbaddhydrogens                = booleanparam | 113;
-  public final static int pdbgetheader                   = booleanparam | 114;
-  public final static int pdbsequential                  = booleanparam | 115;
-  public final static int perspectivedepth               = booleanparam | 116;
-  public final static int preservestate                  = booleanparam | 117;
-  public final static int rangeselected                  = booleanparam | 118;
+  public final static int legacyhaddition                = booleanparam | 99;
+  public final static int logcommands                    = booleanparam | 100;
+  public final static int loggestures                    = booleanparam | 101;
+  public final static int measureallmodels               = booleanparam | 102;
+  public final static int measurementlabels              = booleanparam | 103;
+  public final static int messagestylechime              = booleanparam | 104;
+  public final static int minimizationrefresh            = booleanparam | 105;
+  public final static int minimizationsilent             = booleanparam | 106;
+  public final static int modelkitmode                   = booleanparam | 107; 
 // 12.0.RC15
+  public final static int monitorenergy                  = booleanparam | 108;
+  public final static int multiprocessor                 = booleanparam | 109;
+  public final static int navigatesurface                = booleanparam | 110;
+  public final static int navigationmode                 = booleanparam | 111;
+  public final static int navigationperiodic             = booleanparam | 112;
+  public final static int partialdots                    = booleanparam | 113; 
// 12.1.46
+  public final static int pdbaddhydrogens                = booleanparam | 114;
+  public final static int pdbgetheader                   = booleanparam | 115;
+  public final static int pdbsequential                  = booleanparam | 116;
+  public final static int perspectivedepth               = booleanparam | 117;
+  public final static int preservestate                  = booleanparam | 118;
+  public final static int rangeselected                  = booleanparam | 119;
   public final static int refreshing                     = booleanparam | 120;
   public final static int ribbonborder                   = booleanparam | 122;
   public final static int rocketbarrels                  = booleanparam | 124;

Modified: trunk/Jmol/src/org/jmol/viewer/AnimationManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/AnimationManager.java        2013-06-24 
22:56:54 UTC (rev 18358)
+++ trunk/Jmol/src/org/jmol/viewer/AnimationManager.java        2013-06-25 
01:43:16 UTC (rev 18359)
@@ -363,8 +363,8 @@
         currentAnimationFrame = ((Integer) 
info.get("currentFrame")).intValue();
         if (currentAnimationFrame < 0 || currentAnimationFrame >= 
animationFrames.length)
           currentAnimationFrame = 0;
-        //movie = info;
       }
+      setFrame(currentAnimationFrame);
     } 
     if (!isMovie) {
       //movie = null;

Modified: trunk/Jmol/src/org/jmol/viewer/JC.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/JC.java      2013-06-24 22:56:54 UTC (rev 
18358)
+++ trunk/Jmol/src/org/jmol/viewer/JC.java      2013-06-25 01:43:16 UTC (rev 
18359)
@@ -896,10 +896,13 @@
     return (pt < 0 || pt >= pdbHydrogenCount.length ? -1 : 
pdbHydrogenCount[pt]);
   }
 
-  public static String[][] getPdbBondInfo(int pt) {
+  public static String[][] getPdbBondInfo(int pt, boolean isLegacy) {
     if (pt < 0 || pt > pdbBondInfo.length)
       return null;
     String s = pdbBondInfo[pt];
+    // unfortunately, this change is not backward compatible.
+    if (isLegacy && (pt = s.indexOf("O3'")) >= 0)
+      s = s.substring(0, pt);
     String[] temp = Parser.getTokens(s);
     String[][] info = new String[temp.length / 2][];
     for (int i = 0, p = 0; i < info.length; i++) {

Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2013-06-24 22:56:54 UTC 
(rev 18358)
+++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties      2013-06-25 01:43:16 UTC 
(rev 18359)
@@ -9,8 +9,9 @@
 #  The quotes above look odd for a parameter file, but they are 
 #  important for the JavaScript version of Jmol.
 
-___JmolVersion="13.1.17_dev_2013.06.24"
+___JmolVersion="13.1.17_dev_2013.06.25"
 
+bug fix: PyMOL movie start frame
 bug fix: PyMOL putty broken
 bug fix: pdbAddHydrogens may miss O3' or O5' H atoms at end of DNA strands
 bug fix: pdbAddHydrogens may miss H in first group of a chain

Modified: trunk/Jmol/src/org/jmol/viewer/StateCreator.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/StateCreator.java    2013-06-24 22:56:54 UTC 
(rev 18358)
+++ trunk/Jmol/src/org/jmol/viewer/StateCreator.java    2013-06-25 01:43:16 UTC 
(rev 18359)
@@ -1138,7 +1138,6 @@
   }
 
   public String getShapeState(Shape shape) {
-    clearTemp();
     String s;
     switch (shape.shapeID) {
     case JC.SHAPE_ECHO:
@@ -1171,6 +1170,7 @@
                 hs.translucentAllowed) + ";\n";
       break;
     case JC.SHAPE_HOVER:
+      clearTemp();
       Hover h = (Hover) shape;
       if (h.atomFormats != null)
         for (int i = viewer.getAtomCount(); --i >= 0;)
@@ -1180,8 +1180,10 @@
       s = "\n  hover "
           + Escape.eS((h.labelFormat == null ? "" : h.labelFormat))
           + ";\n" + getCommands(temp, null, "select");
+      clearTemp();
       break;
     case JC.SHAPE_LABELS:
+      clearTemp();
       Labels l = (Labels) shape;
       for (int i = l.bsSizeSet.nextSetBit(0); i >= 0; i = l.bsSizeSet
           .nextSetBit(i + 1)) {
@@ -1237,8 +1239,10 @@
       s = getCommands(temp, temp2, "select")
           + getCommands(null, temp3, "select");
       temp3.clear();
+      clearTemp();
       break;
     case JC.SHAPE_BALLS:
+      clearTemp();
       int atomCount = viewer.getAtomCount();
       Atom[] atoms = viewer.modelSet.atoms;
       Balls balls = (Balls) shape;
@@ -1263,11 +1267,11 @@
         }
       }
       s = getCommands(temp, temp2, "select");
+      clearTemp();
       break;
     default:
       s = "";
     }
-    clearTemp();
     return s;
   }
 
@@ -1409,6 +1413,7 @@
     //    if (autoLoadOrientation)
     //      appendCmd(str, "set autoLoadOrientation true");
     appendCmd(str, "set legacyAutoBonding " + g.legacyAutoBonding);
+    appendCmd(str, "set legacyHAddition " + g.legacyHAddition);
     appendCmd(str, "set minBondDistance " + g.minBondDistance);
     // these next two might be part of a 2D->3D operation
     appendCmd(str, "set minimizationCriterion  " + g.minimizationCriterion);

Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/StateManager.java    2013-06-24 22:56:54 UTC 
(rev 18358)
+++ trunk/Jmol/src/org/jmol/viewer/StateManager.java    2013-06-25 01:43:16 UTC 
(rev 18359)
@@ -559,7 +559,7 @@
         + 
";axis3color;backgroundcolor;backgroundmodel;bondsymmetryatoms;boundboxcolor;cameradepth"
         + 
";debug;debugscript;defaultlatttice;defaults;defaultdropscript;diffusepercent;exportdrivers"
         + 
";_filecaching;_filecache;fontcaching;fontscaling;forcefield;language"
-        + ";legacyautobonding"
+        + ";legacyautobonding;legacyhaddition"
         + ";loglevel;logfile;loggestures;logcommands;measurestylechime"
         + 
";loadformat;loadligandformat;smilesurlformat;pubchemformat;nihresolverformat;edsurlformat;edsurlcutoff;multiprocessor;navigationmode;"
         + 
";pathforallfiles;perspectivedepth;phongexponent;perspectivemodel;preservestate;refreshing;repaintwaitms;rotationradius"
@@ -677,6 +677,7 @@
         allowMultiTouch = g.allowMultiTouch;
         allowKeyStrokes = g.allowKeyStrokes;
         legacyAutoBonding = g.legacyAutoBonding;
+        legacyHAddition = g.legacyHAddition;
         useScriptQueue = g.useScriptQueue;
         useArcBall = g.useArcBall;
         databases = g.databases;
@@ -886,6 +887,7 @@
       setI("isosurfacePropertySmoothingPower", 
isosurfacePropertySmoothingPower);
       setB("justifyMeasurements", justifyMeasurements);
       setB("legacyAutoBonding", legacyAutoBonding);
+      setB("legacyHAddition", legacyHAddition);
       setF("loadAtomDataTolerance", loadAtomDataTolerance);
       setS("loadFormat", loadFormat);
       setS("loadLigandFormat", loadLigandFormat);
@@ -1049,6 +1051,7 @@
     boolean smartAromatic = true;
     boolean zeroBasedXyzRasmol = false;
     boolean legacyAutoBonding = false;
+    boolean legacyHAddition = false;
 
     void setDefaultLattice(P3 ptLattice) {
       ptDefaultLattice.setT(ptLattice);

Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/Viewer.java  2013-06-24 22:56:54 UTC (rev 
18358)
+++ trunk/Jmol/src/org/jmol/viewer/Viewer.java  2013-06-25 01:43:16 UTC (rev 
18359)
@@ -5728,6 +5728,9 @@
       // wrong bonds. 
       // reset after a state script is read
       return global.legacyAutoBonding;
+    case T.legacyhaddition:
+      // aargh -- Some atoms missed before Jmol 13.1.17
+      return global.legacyHAddition;
     case T.loggestures:
       return global.logGestures;
     case T.measureallmodels:
@@ -9567,6 +9570,7 @@
           stateScriptVersionInt = main * 10000 + sub * 100 + minor;
           // here's why:
           global.legacyAutoBonding = (stateScriptVersionInt < 110924);
+          global.legacyHAddition = (stateScriptVersionInt < 130117);
           return;
         }
       } catch (Exception e) {
@@ -9652,7 +9656,7 @@
     String[][] info = htPdbBondInfo.get(group3);
     if (info != null)
       return info;
-    info = JC.getPdbBondInfo(Group.lookupGroupID(group3));
+    info = JC.getPdbBondInfo(Group.lookupGroupID(group3), 
global.legacyHAddition);
     htPdbBondInfo.put(group3, info);
     return info;
   }

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


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to