Revision: 18480
          http://sourceforge.net/p/jmol/code/18480
Author:   hansonr
Date:     2013-07-19 18:57:54 +0000 (Fri, 19 Jul 2013)
Log Message:
-----------
reorganization of tensor methods

Modified Paths:
--------------
    trunk/Jmol/src/org/jmol/api/JmolNMRInterface.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/quantum/NMRCalculation.java
    trunk/Jmol/src/org/jmol/render/RepaintManager.java
    trunk/Jmol/src/org/jmol/shapespecial/Ellipsoids.java
    trunk/Jmol/src/org/jmol/shapesurface/Isosurface.java

Modified: trunk/Jmol/src/org/jmol/api/JmolNMRInterface.java
===================================================================
--- trunk/Jmol/src/org/jmol/api/JmolNMRInterface.java   2013-07-19 18:01:27 UTC 
(rev 18479)
+++ trunk/Jmol/src/org/jmol/api/JmolNMRInterface.java   2013-07-19 18:57:54 UTC 
(rev 18480)
@@ -4,7 +4,6 @@
 
 import org.jmol.modelset.Atom;
 import org.jmol.modelset.MeasurementData;
-import org.jmol.modelset.ModelSet;
 import org.jmol.util.BS;
 import org.jmol.util.JmolList;
 import org.jmol.util.SB;
@@ -81,9 +80,6 @@
   public float getChemicalShift(Atom atom);  
   public boolean setChemicalShiftReference(String element, float value);
 
-  public JmolList<Tensor> getAllAtomTensors(String type);
-  public void setAtomTensors(ModelSet ms, int i, JmolList<Tensor> tensors);
-
   public JmolList<Object> getTensorInfo(String tensorType, String infoType, BS 
bs);
 
   public Map<String, Float> getMinDistances(MeasurementData md);

Modified: trunk/Jmol/src/org/jmol/modelset/AtomCollection.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/AtomCollection.java        2013-07-19 
18:01:27 UTC (rev 18479)
+++ trunk/Jmol/src/org/jmol/modelset/AtomCollection.java        2013-07-19 
18:57:54 UTC (rev 18480)
@@ -28,7 +28,9 @@
 import org.jmol.util.JmolList;
 import java.util.Arrays;
 import java.util.Comparator;
+import java.util.Hashtable;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.jmol.atomdata.AtomData;
 import org.jmol.atomdata.RadiusData;
@@ -154,15 +156,6 @@
   public Tensor[][] atomTensorList; // specifically now for {*}.adpmin 
{*}.adpmax
   public Map<String, JmolList<Tensor>> atomTensors;
 
-  public void addTensor(Tensor t, String type) {
-    type = type.toLowerCase();
-    JmolList<Tensor> tensors = atomTensors.get(type);
-    if (tensors == null)
-      atomTensors.put(type, tensors = new JmolList<Tensor>()); 
-    tensors.addLast(t);
-  }
-
-
   protected int[] surfaceDistance100s;
 
   protected boolean haveStraightness;
@@ -253,11 +246,6 @@
     return atoms[i].getChainIDStr();
   }
 
-  public Tensor[] getAtomTensorList(int i) {
-    return (i < 0 || atomTensorList == null || i >= atomTensorList.length ? 
null
-        : atomTensorList[i]);
-  }
-  
   public Quaternion getQuaternion(int i, char qtype) {
     return (i < 0 ? null : atoms[i].group.getQuaternion(qtype));
   } 
@@ -2548,6 +2536,19 @@
     // what about data?
   }
 
+  public void getAtomIdentityInfo(int i, Map<String, Object> info) {
+    info.put("_ipt", Integer.valueOf(i));
+    info.put("atomIndex", Integer.valueOf(i));
+    info.put("atomno", Integer.valueOf(getAtomNumber(i)));
+    info.put("info", getAtomInfo(i, null));
+    info.put("sym", getElementSymbol(i));
+  }
+
+  public Tensor[] getAtomTensorList(int i) {
+    return (i < 0 || atomTensorList == null || i >= atomTensorList.length ? 
null
+        : atomTensorList[i]);
+  }
+  
   // clean out deleted model atom tensors (ellipsoids)
   private void deleteAtomTensors(BS bsAtoms) {
     if (atomTensors == null)
@@ -2567,14 +2568,91 @@
       atomTensors.remove(toDelete.get(i));
   }
 
-  public void getAtomIdentityInfo(int i, Map<String, Object> info) {
-    info.put("_ipt", Integer.valueOf(i));
-    info.put("atomIndex", Integer.valueOf(i));
-    info.put("atomno", Integer.valueOf(getAtomNumber(i)));
-    info.put("info", getAtomInfo(i, null));
-    info.put("sym", getElementSymbol(i));
+  public void setAtomTensors(int atomIndex, JmolList<Tensor> list) {
+    if (list == null || list.size() == 0)
+      return;
+    if (atomTensors == null)
+     atomTensors = new Hashtable<String, JmolList<Tensor>>();
+    if (atomTensorList == null)
+      atomTensorList = new Tensor[atoms.length][];
+    atomTensorList = (Tensor[][]) ArrayUtil.ensureLength(atomTensorList, 
atoms.length);
+    atomTensorList[atomIndex] = getTensorList(list);
+    for (int i = list.size(); --i >= 0;) {
+      Tensor t = list.get(i);
+      t.atomIndex1 = atomIndex;
+      t.atomIndex2 = -1;
+      t.modelIndex = atoms[atomIndex].modelIndex;
+      addTensor(t, t.type);
+      if (t.altType != null)
+        addTensor(t, t.altType); 
+    }
   }
 
+  private static Tensor[] getTensorList(JmolList<Tensor> list) {
+    int pt = -1;
+    boolean haveTLS = false;
+    int n = list.size();
+    for (int i = n; --i >= 0;) {
+      Tensor t = list.get(i);
+      if (t.forThermalEllipsoid)
+        pt = i;
+      else if (t.iType == Tensor.TYPE_TLS_U)
+        haveTLS = true;
+    }
+    Tensor[] a = new Tensor[(pt >= 0 || !haveTLS ? 0 : 1) + n];
+    if (pt >= 0) {
+      a[0] = list.get(pt);
+      if (list.size() == 1)
+        return a;
+    }
+    // back-fills list for TLS:
+    // 0 = temp, 1 = TLS-R, 2 = TLS-U
+    if (haveTLS) {
+      pt = 0;
+      for (int i = n; --i >= 0;) {
+        Tensor t = list.get(i);
+        if (t.forThermalEllipsoid)
+          continue;
+        a[++pt] = t;
+      }
+    } else {
+      for (int i = 0; i < n; i++)
+        a[i] = list.get(i);
+    }
+    return a;
+ }
 
+  public Tensor getAtomTensor(int i, String type) {
+    Tensor[] tensors = getAtomTensorList(i);
+    if (tensors == null || type == null)
+      return null;
+    type = type.toLowerCase();
+    for (int j = 0; j < tensors.length; j++)
+      if (tensors[j] != null && type.equals(tensors[j].type))
+        return tensors[j];
+    return null;
+  }
+
+  public void addTensor(Tensor t, String type) {
+    type = type.toLowerCase();
+    JmolList<Tensor> tensors = atomTensors.get(type);
+    if (tensors == null)
+      atomTensors.put(type, tensors = new JmolList<Tensor>()); 
+    tensors.addLast(t);
+  }
+
+  public JmolList<Tensor> getAllAtomTensors(String type) {
+    if (atomTensors == null)
+      return null;
+    if (type != null)
+      return atomTensors.get(type.toLowerCase());
+    JmolList<Tensor> list = new JmolList<Tensor>();
+    for (Entry<String, JmolList<Tensor>> e : atomTensors.entrySet())
+      list.addAll(e.getValue());
+    return list;
+  }
+  
+
+
 }
 

Modified: trunk/Jmol/src/org/jmol/modelset/ModelCollection.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/ModelCollection.java       2013-07-19 
18:01:27 UTC (rev 18479)
+++ trunk/Jmol/src/org/jmol/modelset/ModelCollection.java       2013-07-19 
18:57:54 UTC (rev 18480)
@@ -3165,7 +3165,7 @@
     setOccupancy(atomCount, occupancy);
     setPartialCharge(atomCount, partialCharge);
     if (tensors != null)
-      viewer.getNMRCalculation().setAtomTensors((ModelSet) this, atomCount, 
tensors);
+      setAtomTensors(atomCount, tensors);
     atom.group = group;
     atom.colixAtom = viewer.getColixAtomPalette(atom, EnumPalette.CPK.id);
     if (atomName != null) {

Modified: trunk/Jmol/src/org/jmol/modelset/ModelLoader.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/ModelLoader.java   2013-07-19 18:01:27 UTC 
(rev 18479)
+++ trunk/Jmol/src/org/jmol/modelset/ModelLoader.java   2013-07-19 18:57:54 UTC 
(rev 18480)
@@ -105,7 +105,7 @@
       viewer.resetShapes(false);
     }
     modelSet.preserveState = viewer.getPreserveState();
-    modelSet.showRebondTimes = viewer.global.showTiming;
+    modelSet.showRebondTimes = viewer.getBoolean(T.showtiming);
     if (bsNew == null) {
       initializeInfo(modelSetName, null);
       createModelSet(null, null, null);

Modified: trunk/Jmol/src/org/jmol/quantum/NMRCalculation.java
===================================================================
--- trunk/Jmol/src/org/jmol/quantum/NMRCalculation.java 2013-07-19 18:01:27 UTC 
(rev 18479)
+++ trunk/Jmol/src/org/jmol/quantum/NMRCalculation.java 2013-07-19 18:57:54 UTC 
(rev 18480)
@@ -35,7 +35,6 @@
 import org.jmol.io.JmolBinary;
 import org.jmol.modelset.Atom;
 import org.jmol.modelset.MeasurementData;
-import org.jmol.modelset.ModelSet;
 import org.jmol.util.BS;
 import org.jmol.util.Escape;
 import org.jmol.util.JmolList;
@@ -342,7 +341,7 @@
   }
 
   public float getMagneticShielding(Atom atom) {
-    Tensor t = getAtomTensor(atom.index, "ms");
+    Tensor t = viewer.modelSet.getAtomTensor(atom.index, "ms");
     return (t == null ? Float.NaN : t.getIso());
   }
 
@@ -366,39 +365,6 @@
     return true;
   }
 
-  public void setAtomTensors(ModelSet ms, int atomIndex, JmolList<Tensor> 
list) {
-    if (list == null || list.size() == 0)
-      return;
-    if (ms.atomTensors == null)
-      ms.atomTensors = new Hashtable<String, JmolList<Tensor>>();
-    if (ms.atomTensorList == null)
-      ms.atomTensorList = new Tensor[ms.atoms.length][];
-    ms.atomTensorList[atomIndex] = getTensorList(list);
-    Atom[] atoms = ms.atoms;
-    for (int i = list.size(); --i >= 0;) {
-      Tensor t = list.get(i);
-      t.atomIndex1 = atomIndex;
-      t.atomIndex2 = -1;
-      t.modelIndex = atoms[atomIndex].modelIndex;
-      ms.addTensor(t, t.type);
-      if (t.altType != null)
-        ms.addTensor(t, t.altType); 
-    }
-  }
-
-  public JmolList<Tensor> getAllAtomTensors(String type) {
-    if (viewer.modelSet.atomTensors == null)
-      return null;
-    if (type != null)
-      return viewer.modelSet.atomTensors.get(type.toLowerCase());
-    JmolList<Tensor> list = new JmolList<Tensor>();
-    for (Entry<String, JmolList<Tensor>> e : 
viewer.modelSet.atomTensors.entrySet()) {
-      JmolList<Tensor> list2 = e.getValue();
-      list.addAll(list2);
-    }
-    return list;
-  }
-  
   public JmolList<Object> getTensorInfo(String tensorType, String infoType,
                                         BS bs) {
 
@@ -432,7 +398,7 @@
     } else {
       boolean isChi = tensorType.startsWith("efg") && infoType.equals(";chi.");
       for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {
-        Tensor t = getAtomTensor(i, tensorType);
+        Tensor t = viewer.modelSet.getAtomTensor(i, tensorType);
         data.addLast(t == null ? null : isChi ? Float
             .valueOf(getQuadrupolarConstant(t)) : t.getInfo(infoType));
       }
@@ -440,51 +406,6 @@
     return data;
   }
 
-  private static Tensor[] getTensorList(JmolList<Tensor> list) {
-    int pt = -1;
-    boolean haveTLS = false;
-    int n = list.size();
-    for (int i = n; --i >= 0;) {
-      Tensor t = list.get(i);
-      if (t.forThermalEllipsoid)
-        pt = i;
-      else if (t.iType == Tensor.TYPE_TLS_U)
-        haveTLS = true;
-    }
-    Tensor[] a = new Tensor[(pt >= 0 || !haveTLS ? 0 : 1) + n];
-    if (pt >= 0) {
-      a[0] = list.get(pt);
-      if (list.size() == 1)
-        return a;
-    }
-    // back-fills list for TLS:
-    // 0 = temp, 1 = TLS-R, 2 = TLS-U
-    if (haveTLS) {
-      pt = 0;
-      for (int i = n; --i >= 0;) {
-        Tensor t = list.get(i);
-        if (t.forThermalEllipsoid)
-          continue;
-        a[++pt] = t;
-      }
-    } else {
-      for (int i = 0; i < n; i++)
-        a[i] = list.get(i);
-    }
-    return a;
- }
-
-  private Tensor getAtomTensor(int i, String type) {
-    Tensor[] tensors = viewer.modelSet.getAtomTensorList(i);
-    if (tensors == null || type == null)
-      return null;
-    type = type.toLowerCase();
-    for (int j = 0; j < tensors.length; j++)
-      if (tensors[j] != null && type.equals(tensors[j].type))
-        return tensors[j];
-    return null;
-  }
-
   public Map<String, Float> getMinDistances(MeasurementData md) {
     BS bsPoints1 = (BS) md.points.get(0);
     int n1 = bsPoints1.cardinality(); 

Modified: trunk/Jmol/src/org/jmol/render/RepaintManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/render/RepaintManager.java  2013-07-19 18:01:27 UTC 
(rev 18479)
+++ trunk/Jmol/src/org/jmol/render/RepaintManager.java  2013-07-19 18:57:54 UTC 
(rev 18480)
@@ -26,6 +26,7 @@
 import org.jmol.api.JmolRendererInterface;
 import org.jmol.api.JmolRepaintManager;
 import org.jmol.modelset.ModelSet;
+import org.jmol.script.T;
 import org.jmol.shape.Shape;
 import org.jmol.util.BS;
 import org.jmol.util.GData;
@@ -183,7 +184,7 @@
   /////////// actual rendering ///////////
   
   public void render(GData gdata, ModelSet modelSet, boolean isFirstPass, 
int[] minMax) {
-    boolean logTime = viewer.global.showTiming;
+    boolean logTime = viewer.getBoolean(T.showtiming);
     try {
       JmolRendererInterface g3d = (JmolRendererInterface) gdata;
       g3d.renderBackground(null);
@@ -224,7 +225,7 @@
   public String renderExport(String type, GData gdata, ModelSet modelSet,
                       String fileName) {
     boolean isOK;
-    boolean logTime = viewer.global.showTiming;
+    boolean logTime = viewer.getBoolean(T.showtiming);
     viewer.finalizeTransformParameters();
     shapeManager.finalizeAtoms(null, null);
     shapeManager.transformAtoms();

Modified: trunk/Jmol/src/org/jmol/shapespecial/Ellipsoids.java
===================================================================
--- trunk/Jmol/src/org/jmol/shapespecial/Ellipsoids.java        2013-07-19 
18:01:27 UTC (rev 18479)
+++ trunk/Jmol/src/org/jmol/shapespecial/Ellipsoids.java        2013-07-19 
18:57:54 UTC (rev 18480)
@@ -72,7 +72,7 @@
     boolean isAll = (bsSelected == null);
     if (!isAll && selectedAtoms != null)
       bsSelected = selectedAtoms;
-    JmolList<Tensor> tensors = 
viewer.getNMRCalculation().getAllAtomTensors(typeSelected);
+    JmolList<Tensor> tensors = viewer.modelSet.getAllAtomTensors(typeSelected);
     if (tensors == null)
       return;
     Atom[] atoms = modelSet.atoms;

Modified: trunk/Jmol/src/org/jmol/shapesurface/Isosurface.java
===================================================================
--- trunk/Jmol/src/org/jmol/shapesurface/Isosurface.java        2013-07-19 
18:01:27 UTC (rev 18479)
+++ trunk/Jmol/src/org/jmol/shapesurface/Isosurface.java        2013-07-19 
18:57:54 UTC (rev 18480)
@@ -161,7 +161,7 @@
 
   protected void newSg() {
     sg = new SurfaceGenerator(viewer, this, null, jvxlData = new JvxlData());
-    sg.getParams().showTiming = viewer.global.showTiming;
+    sg.getParams().showTiming = viewer.getBoolean(T.showtiming);
     sg.setVersion("Jmol " + Viewer.getJmolVersion());
   }
   

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