Revision: 20261
          http://sourceforge.net/p/jmol/code/20261
Author:   hansonr
Date:     2015-01-30 15:56:30 +0000 (Fri, 30 Jan 2015)
Log Message:
-----------


Modified Paths:
--------------
    trunk/Jmol/src/org/jmol/modelset/JmolBioModel.java
    trunk/Jmol/src/org/jmol/modelsetbio/BioModel.java
    trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java
    trunk/Jmol/src/org/jmol/viewer/PropertyManager.java

Modified: trunk/Jmol/src/org/jmol/modelset/JmolBioModel.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelset/JmolBioModel.java  2015-01-30 15:43:23 UTC 
(rev 20260)
+++ trunk/Jmol/src/org/jmol/modelset/JmolBioModel.java  2015-01-30 15:56:30 UTC 
(rev 20261)
@@ -60,7 +60,7 @@
 
   public void setAllStructureList(Map<STR, float[]> structureList);
 
-  public void getAllPolymerInfo(BS bs,
+  public void getPolymerInfo(BS bs,
                              Map<String, Lst<Map<String, Object>>> finalInfo,
                              Lst<Map<String, Object>> modelVector);
 

Modified: trunk/Jmol/src/org/jmol/modelsetbio/BioModel.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelsetbio/BioModel.java   2015-01-30 15:43:23 UTC 
(rev 20260)
+++ trunk/Jmol/src/org/jmol/modelsetbio/BioModel.java   2015-01-30 15:56:30 UTC 
(rev 20261)
@@ -249,7 +249,8 @@
       if (ms.am[i].isBioModel) {
         BioModel m = (BioModel) ms.am[i];
         if (m.nAltLocs > 0)
-          m.setConformation(bsAtoms);
+          for (int j = m.bioPolymerCount; --j >= 0;)
+            m.bioPolymers[j].setConformation(bsAtoms);
       }
   }
 
@@ -380,20 +381,20 @@
     return bs;
   }
 
-  private static int selectSeqcodeRange(Group[] groups, int n, int index, int 
seqcodeA, int seqcodeB,
+  private static int selectSeqcodeRange(Group[] groups, int groupCount, int 
index, int seqcodeA, int seqcodeB,
                                 BS bs) {
     int seqcode, indexA, indexB, minDiff;
     boolean isInexact = false;
-    for (indexA = index; indexA < n
+    for (indexA = index; indexA < groupCount
         && groups[indexA].seqcode != seqcodeA; indexA++) {
     }
-    if (indexA == n) {
+    if (indexA == groupCount) {
       // didn't find A exactly -- go find the nearest that is GREATER than 
this value
       if (index > 0)
         return -1;
       isInexact = true;
       minDiff = Integer.MAX_VALUE;
-      for (int i = n; --i >= 0;)
+      for (int i = groupCount; --i >= 0;)
         if ((seqcode = groups[i].seqcode) > seqcodeA
             && (seqcode - seqcodeA) < minDiff) {
           indexA = i;
@@ -403,19 +404,19 @@
         return -1;
     }
     if (seqcodeB == Integer.MAX_VALUE) {
-      indexB = n - 1;
+      indexB = groupCount - 1;
       isInexact = true;
     } else {
-      for (indexB = indexA; indexB < n
+      for (indexB = indexA; indexB < groupCount
           && groups[indexB].seqcode != seqcodeB; indexB++) {
       }
-      if (indexB == n) {
+      if (indexB == groupCount) {
         // didn't find B exactly -- get the nearest that is LESS than this 
value
         if (index > 0)
           return -1;
         isInexact = true;
         minDiff = Integer.MAX_VALUE;
-        for (int i = indexA; i < n; i++)
+        for (int i = indexA; i < groupCount; i++)
           if ((seqcode = groups[i].seqcode) < seqcodeB
               && (seqcodeB - seqcode) < minDiff) {
             indexB = i;
@@ -836,7 +837,7 @@
 
 /////////////////////////////////////////////////////////////////////////  
   
-  
+
   BioModel(ModelSet modelSet, int modelIndex, int trajectoryBaseIndex, 
       String jmolData, Properties properties, Map<String, Object> 
auxiliaryInfo) {
     vwr = modelSet.vwr;
@@ -846,7 +847,29 @@
     clearBioPolymers();
   }
 
+  private void clearBioPolymers() {
+    bioPolymers = new BioPolymer[8];
+    bioPolymerCount = 0;
+  }
+
   @Override
+  public int getBioPolymerCount() {
+    return bioPolymerCount;
+  }
+
+  @Override
+  public void fixIndices(int modelIndex, int nAtomsDeleted, BS bsDeleted) {
+    fixIndicesM(modelIndex, nAtomsDeleted, bsDeleted);
+    recalculateLeadMidpointsAndWingVectors();
+  }
+
+  private void recalculateLeadMidpointsAndWingVectors() {
+    for (int ip = 0; ip < bioPolymerCount; ip++)
+      bioPolymers[ip].recalculateLeadMidpointsAndWingVectors();
+  }
+
+  
+  @Override
   public boolean freeze() {
     freezeM();
     bioPolymers = (BioPolymer[])AU.arrayCopyObject(bioPolymers, 
bioPolymerCount);
@@ -939,20 +962,11 @@
     if (bsConformation.nextSetBit(0) >= 0) {
       bsRet.or(bsConformation);      
       if (doSet)
-        setConformation(bsConformation);
+        for (int j = bioPolymerCount; --j >= 0;)
+          bioPolymers[j].setConformation(bsConformation);
     }
   }
 
-  private void setConformation(BS bsConformation) {
-    for (int j = bioPolymerCount; --j >= 0;)
-      bioPolymers[j].setConformation(bsConformation);
-  }
-
-  @Override
-  public int getBioPolymerCount() {
-    return bioPolymerCount;
-  }
-
   private void addBioPolymer(BioPolymer polymer) {
     if (bioPolymers.length == 0)
       clearBioPolymers();
@@ -962,55 +976,7 @@
     bioPolymers[bioPolymerCount++] = polymer;
   }
 
-  private void clearBioPolymers() {
-    bioPolymers = new BioPolymer[8];
-    bioPolymerCount = 0;
-  }
-
   @Override
-  public void getDefaultLargePDBRendering(SB sb, int maxAtoms) {
-    BS bs = new BS();
-    if (getBondCount() == 0)
-      bs = bsAtoms;
-    // all biopolymer atoms...
-    if (bs != bsAtoms)
-      for (int i = 0; i < bioPolymerCount; i++)
-        bioPolymers[i].getRange(bs, isMutated);
-    if (bs.nextSetBit(0) < 0)
-      return;
-    // ...and not connected to backbone:
-    BS bs2 = new BS();
-    if (bs == bsAtoms) {
-      bs2 = bs;
-    } else {
-      for (int i = 0; i < bioPolymerCount; i++)
-        if (bioPolymers[i].getType() == BioPolymer.TYPE_NOBONDING)
-          bioPolymers[i].getRange(bs2, isMutated);
-    }
-    if (bs2.nextSetBit(0) >= 0)
-      sb.append("select ").append(Escape.eBS(bs2)).append(";backbone only;");
-    if (ac <= maxAtoms)
-      return;
-    // ...and it's a large model, to wireframe:
-      sb.append("select ").append(Escape.eBS(bs)).append(" & connected; 
wireframe only;");
-    // ... and all non-biopolymer and not connected to stars...
-    if (bs != bsAtoms) {
-      bs2.clearAll();
-      bs2.or(bsAtoms);
-      bs2.andNot(bs);
-      if (bs2.nextSetBit(0) >= 0)
-        sb.append("select " + Escape.eBS(bs2) + " & !connected;stars 
0.5;spacefill off;");
-    }
-  }
-  
-  @Override
-  public void fixIndices(int modelIndex, int nAtomsDeleted, BS bsDeleted) {
-    fixIndicesM(modelIndex, nAtomsDeleted, bsDeleted);
-    for (int i = 0; i < bioPolymerCount; i++)
-      bioPolymers[i].recalculateLeadMidpointsAndWingVectors();
-  }
-
-  @Override
   public Lst<BS> getBioBranches(Lst<BS> biobranches) {
     // scan through biopolymers quickly -- 
     BS bsBranch;
@@ -1028,7 +994,7 @@
   }
 
   @Override
-  public void getAllPolymerInfo(
+  public void getPolymerInfo(
                                 BS bs,
                                 Map<String, Lst<Map<String, Object>>> 
finalInfo,
                                 Lst<Map<String, Object>> modelVector) {
@@ -1114,12 +1080,6 @@
           pdbCONECT, bsWritten, ptTemp);
   }
   
-  private void recalculateLeadMidpointsAndWingVectors() {
-    for (int ip = 0; ip < bioPolymerCount; ip++)
-      bioPolymers[ip].recalculateLeadMidpointsAndWingVectors();
-  }
-
-  
   /**
    * from ModelSet.setAtomPositions
    * 
@@ -1144,5 +1104,41 @@
     getRasmolHydrogenBonds(bs, bs, null, false, Integer.MAX_VALUE, false, 
null);
   }
 
+  @Override
+  public void getDefaultLargePDBRendering(SB sb, int maxAtoms) {
+    BS bs = new BS();
+    if (getBondCount() == 0)
+      bs = bsAtoms;
+    // all biopolymer atoms...
+    if (bs != bsAtoms)
+      for (int i = 0; i < bioPolymerCount; i++)
+        bioPolymers[i].getRange(bs, isMutated);
+    if (bs.nextSetBit(0) < 0)
+      return;
+    // ...and not connected to backbone:
+    BS bs2 = new BS();
+    if (bs == bsAtoms) {
+      bs2 = bs;
+    } else {
+      for (int i = 0; i < bioPolymerCount; i++)
+        if (bioPolymers[i].getType() == BioPolymer.TYPE_NOBONDING)
+          bioPolymers[i].getRange(bs2, isMutated);
+    }
+    if (bs2.nextSetBit(0) >= 0)
+      sb.append("select ").append(Escape.eBS(bs2)).append(";backbone only;");
+    if (ac <= maxAtoms)
+      return;
+    // ...and it's a large model, to wireframe:
+      sb.append("select ").append(Escape.eBS(bs)).append(" & connected; 
wireframe only;");
+    // ... and all non-biopolymer and not connected to stars...
+    if (bs != bsAtoms) {
+      bs2.clearAll();
+      bs2.or(bsAtoms);
+      bs2.andNot(bs);
+      if (bs2.nextSetBit(0) >= 0)
+        sb.append("select " + Escape.eBS(bs2) + " & !connected;stars 
0.5;spacefill off;");
+    }
+  }
+  
 
 }

Modified: trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java
===================================================================
--- trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java   2015-01-30 15:43:23 UTC 
(rev 20260)
+++ trunk/Jmol/src/org/jmol/modelsetbio/Resolver.java   2015-01-30 15:56:30 UTC 
(rev 20261)
@@ -1826,7 +1826,7 @@
           + "  load append "+fileName+"\n"
           + "  set appendNew " + b + "\n"
           + "  var res1 = {!atoms0};var r1 = res1[1];var r0 = res1[0]\n"
-          + "  if ({r1 & within(group, r0)}){" 
+          + "  if ({r1 & within(group, r0)}){\n" 
           + "    var haveHs = ({_H and connected(res0)} != 0)\n"
           + "    if (!haveHs) {delete _H and res1}\n"
           + "    var sm = '[*.N][*.CA][*.C][*.O]'\n"

Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java
===================================================================
--- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2015-01-30 15:43:23 UTC 
(rev 20260)
+++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2015-01-30 15:56:30 UTC 
(rev 20261)
@@ -1491,7 +1491,7 @@
     Model[] models = vwr.ms.am;
     for (int i = 0; i < modelCount; ++i)
       if (models[i].isBioModel)
-        ((JmolBioModel) models[i]).getAllPolymerInfo(bs, finalInfo, 
modelVector);
+        ((JmolBioModel) models[i]).getPolymerInfo(bs, finalInfo, modelVector);
     finalInfo.put("models", modelVector);
     return finalInfo;
   }

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


------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to