Revision: 5143
Author:   hansonr
Date:     2006-05-18 21:30:14 -0700 (Thu, 18 May 2006)
ViewCVS:  http://svn.sourceforge.net/jmol/?rev=5143&view=rev

Log Message:
-----------
bob200603 altloc/insertion wildcard finalization:

nnn    pure nnn, not insertion
nnn^*  any nnn or nnn^x
nnn^?  any insertion nnn^x

*%?    any altloc

Modified Paths:
--------------
    branches/bob200603/Jmol/src/org/jmol/viewer/Atom.java
    branches/bob200603/Jmol/src/org/jmol/viewer/Compiler.java
    branches/bob200603/Jmol/src/org/jmol/viewer/Frame.java
    branches/bob200603/Jmol/src/org/jmol/viewer/Group.java
Modified: branches/bob200603/Jmol/src/org/jmol/viewer/Atom.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/viewer/Atom.java       2006-05-19 
03:25:44 UTC (rev 5142)
+++ branches/bob200603/Jmol/src/org/jmol/viewer/Atom.java       2006-05-19 
04:30:14 UTC (rev 5143)
@@ -479,7 +479,10 @@
       return (alternateLocationID == 0);
     if (strPattern.length() != 1)
       return false;
-    return alternateLocationID == strPattern.charAt(0);
+    char ch = strPattern.charAt(0);
+    return (ch == '*' 
+        || ch == '?' && alternateLocationID != '\0' 
+        || alternateLocationID == ch);
   }
 
   int getAtomNumber() {

Modified: branches/bob200603/Jmol/src/org/jmol/viewer/Compiler.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/viewer/Compiler.java   2006-05-19 
03:25:44 UTC (rev 5142)
+++ branches/bob200603/Jmol/src/org/jmol/viewer/Compiler.java   2006-05-19 
04:30:14 UTC (rev 5143)
@@ -177,11 +177,8 @@
             Integer.parseInt(script.substring(ichToken,
                                               ichToken + cchToken - 2)));
           char insertionCode = script.charAt(ichToken + cchToken - 1);
-          if (insertionCode == '*')
-            insertionCode = '?';
           int seqcode = Group.getSeqcode(seqNum, insertionCode);
           ltoken.addElement(new Token(Token.seqcode, seqcode, "seqcode"));
-          System.out.println("compiler ins code "+insertionCode);
           continue;
         }
         if (lookingAtInteger((tokCommand & Token.negnums) != 0)) {
@@ -1527,15 +1524,12 @@
   boolean clauseAlternateSpec() {
     tokenNext();
     int tok = tokPeek();
-    if(isSpecTerminator(tok)) {
+    if(isSpecTerminator(tok))
       return generateResidueSpecCode(new Token(Token.spec_alternate, null));
-    }
-    if (tokPeek() == Token.asterisk) {
-      tokenNext();
-      return true;
-    }
     Token tokenAlternate = tokenNext();
+    String alternate = (String)tokenAlternate.value;
     switch (tokenAlternate.tok) {
+    case Token.asterisk:
     case Token.string:
     case Token.integer:
     case Token.identifier:
@@ -1546,7 +1540,6 @@
     default:
       return invalidModelSpecification();
     }
-    String alternate = (String)tokenAlternate.value;
     //System.out.println("alternate specification seen:" + alternate);
     return generateResidueSpecCode(new Token(Token.spec_alternate, alternate));
   }

Modified: branches/bob200603/Jmol/src/org/jmol/viewer/Frame.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/viewer/Frame.java      2006-05-19 
03:25:44 UTC (rev 5142)
+++ branches/bob200603/Jmol/src/org/jmol/viewer/Frame.java      2006-05-19 
04:30:14 UTC (rev 5143)
@@ -1961,18 +1961,23 @@
   BitSet getSpecSeqcode(int seqcode) {
     BitSet bsResno = new BitSet();
     int seqNum = (seqcode >> 8);
-    if (Group.getInsertionCode(seqcode) == '?') {
+    char insCode = Group.getInsertionCode(seqcode);
+    System.out.println("Frame altsp:"+insCode + " " + seqNum);
+    switch (insCode) {
+    case '?':
       for (int i = atomCount; --i >= 0;) {
         int atomSeqcode = atoms[i].getSeqcode();
         if ((seqNum == 0 || seqNum == (atomSeqcode >> 8))
             && (atomSeqcode & 0xFF) != 0)
           bsResno.set(i);
       }
-    } else {
+      break;
+    default:
       for (int i = atomCount; --i >= 0;) {
         int atomSeqcode = atoms[i].getSeqcode();
-        if (seqcode == atoms[i].getSeqcode() || seqNum == 0
-            && seqcode == (atomSeqcode & 0xFF))
+        if (seqcode == atoms[i].getSeqcode() 
+            || seqNum == 0 && seqcode == (atomSeqcode & 0xFF)
+            || insCode == '*' && seqNum == (atomSeqcode >> 8))
           bsResno.set(i);
       }
     }

Modified: branches/bob200603/Jmol/src/org/jmol/viewer/Group.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/viewer/Group.java      2006-05-19 
03:25:44 UTC (rev 5142)
+++ branches/bob200603/Jmol/src/org/jmol/viewer/Group.java      2006-05-19 
04:30:14 UTC (rev 5143)
@@ -192,8 +192,8 @@
       return sequenceNumber;
     if (! ((insertionCode >= 'A' && insertionCode <= 'Z') ||
            (insertionCode >= 'a' && insertionCode <= 'z') ||
-           (insertionCode >= '0' && insertionCode <= '9')) &&
-           insertionCode != '?') {
+           (insertionCode >= '0' && insertionCode <= '9') ||
+           insertionCode == '?' || insertionCode == '*')) {
       if (insertionCode != ' ' && insertionCode != '\0')
         System.out.println("unrecognized insertionCode:" + insertionCode);
       insertionCode = '\0';


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



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Jmol-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to