From: Miguel <mig...@us...> - 2005-09-08 12:04:10
|
Update of /cvsroot/jmol/Jmol/src/org/jmol/viewer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1579/src/org/jmol/viewer Modified Files: Chain.java Log Message: allow multiple ranges of duplicate residue numbers within the same chain 1TON Index: Chain.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/jmol/viewer/Chain.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Chain.java 31 May 2005 14:05:30 -0000 1.8 +++ Chain.java 8 Sep 2005 12:03:59 -0000 1.9 @@ -89,6 +89,37 @@ } void selectSeqcodeRange(int seqcodeA, int seqcodeB, BitSet bs) { + int i = 0; + do { + int groupIndexA = getNextSeqcodeIndex(i, seqcodeA); + if (groupIndexA < 0) + return; + int groupIndexB = getNextSeqcodeIndex(i, seqcodeB); + if (groupIndexB < 0) + return; + int indexFirst; + int indexLast; + if (groupIndexA <= groupIndexB) { + indexFirst = groupIndexA; + indexLast = groupIndexB; + } else { + indexFirst = groupIndexB; + indexLast = groupIndexA; + } + for (i = indexFirst; i <= indexLast; ++i) + groups[i].selectAtoms(bs); + } while (i < groupCount); + } + + int getNextSeqcodeIndex(int iStart, int seqcode) { + for (int i = iStart; i < groupCount; ++i) + if (groups[i].seqcode == seqcode) + return i; + return -1; + } + + /* + void selectSeqcodeRange(int seqcodeA, int seqcodeB, BitSet bs) { int indexA = getSeqcodeIndex(seqcodeA); if (indexA < 0) return; @@ -114,6 +145,7 @@ int getSelectedGroupCount() { return selectedGroupCount; } + */ int getSelectedGroupIndex(Group group) { int selectedGroupIndex = 0; |