Revision: 5170
Author:   hansonr
Date:     2006-05-24 23:25:31 -0700 (Wed, 24 May 2006)
ViewCVS:  http://svn.sourceforge.net/jmol/?rev=5170&view=rev

Log Message:
-----------
bob200603 adjusts measure to allow cross-model measuring in script 
similar to in clicking, that is, when cardinality of each point's
bitset is 1.

Modified Paths:
--------------
    branches/bob200603/Jmol/src/org/jmol/viewer/Eval.java
    branches/bob200603/Jmol/src/org/jmol/viewer/Measures.java
Modified: branches/bob200603/Jmol/src/org/jmol/viewer/Eval.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/viewer/Eval.java       2006-05-25 
05:45:51 UTC (rev 5169)
+++ branches/bob200603/Jmol/src/org/jmol/viewer/Eval.java       2006-05-25 
06:25:31 UTC (rev 5170)
@@ -1749,6 +1749,8 @@
       runScript(defaultScript);
   }
 
+  //measure() see monitor()
+  
   void monitor() throws ScriptException {
     int[] monitorArgs = new int[5];
     float[] rangeMinMax = new float[2];

Modified: branches/bob200603/Jmol/src/org/jmol/viewer/Measures.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/viewer/Measures.java   2006-05-25 
05:45:51 UTC (rev 5169)
+++ branches/bob200603/Jmol/src/org/jmol/viewer/Measures.java   2006-05-25 
06:25:31 UTC (rev 5170)
@@ -143,14 +143,18 @@
     int nPoints = monitorExpressions.size();
     if (nPoints < 2)
       return;
+    boolean isOneToOne = true;
+    for (int i = 0; i < nPoints && isOneToOne; i++)
+      if (viewer.cardinalityOf((BitSet) monitorExpressions.get(i)) > 1)
+        isOneToOne = false;
     int[] atomCountPlusIndices = new int[5];
     atomCountPlusIndices[0] = nPoints;
-    nextMeasure(0, nPoints, monitorExpressions, atomCountPlusIndices, 0);
+    nextMeasure(0, nPoints, monitorExpressions, atomCountPlusIndices, 
isOneToOne ? -1 : 0);
   }
 
-  void nextMeasure(int thispt, int nPoints, Vector monitorExpressions, 
+  void nextMeasure(int thispt, int nPoints, Vector monitorExpressions,
                    int[] atomCountPlusIndices, int thisModel) {
-    BitSet bs = (BitSet)monitorExpressions.get(thispt);
+    BitSet bs = (BitSet) monitorExpressions.get(thispt);
     //System.out.println("nextMeasure"+thispt+" acpi:"+atomCountPlusIndices);
     //System.out.println("bs "+ bs);
     for (int i = bs.size(); --i >= 0;) {
@@ -159,17 +163,19 @@
           continue;
         int modelIndex = frame.atoms[i].getModelIndex();
         //System.out.println("nextMeasure i"+i+" modelIndex:"+modelIndex);
-        if (thispt == 0) {
-          thisModel = modelIndex;
-        } else if (thisModel != modelIndex) {
-          continue;
+        if (thisModel >= 0) {
+          if (thispt == 0) {
+            thisModel = modelIndex;
+          } else if (thisModel != modelIndex) {
+            continue;
+          }
         }
         atomCountPlusIndices[thispt + 1] = i;
         if (thispt == nPoints - 1) {
-          if (! isDefined(atomCountPlusIndices))
+          if (!isDefined(atomCountPlusIndices))
             define(atomCountPlusIndices);
         } else {
-          nextMeasure(thispt+1, nPoints, monitorExpressions, 
+          nextMeasure(thispt + 1, nPoints, monitorExpressions,
               atomCountPlusIndices, thisModel);
         }
       }


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



-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
Jmol-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to