From: <ha...@us...> - 2008-05-20 22:55:44
|
Revision: 9398 http://jmol.svn.sourceforge.net/jmol/?rev=9398&view=rev Author: hansonr Date: 2008-05-20 15:55:41 -0700 (Tue, 20 May 2008) Log Message: ----------- version=11.5.38 # bug fix: select n-m:c chain selection inappropriately case sensitive # bug fix: draw ARROW {atom center} {xyz} draws arrow the wrong way # bug fix: draw CIRCLE for multiple models # bug fix: application -- "make crystal..." menu item does nothing -- removed # bug fix: zap of quaternion also zaps model inappropriately # bug fix: zap to one model assigns -1 to currentModelIndex instead of 0 # new feature: draw CIRCLE [FILL | MESH NOFILL] more intuitive open/filling syntax # new feature: draw VECTOR {atom center} {dx dy dz} # new feature: draw with mixed types processes them in order # (11.4 does {x,y,z}, then $xxx, then {atomExpression}, then @{{atoms}.split()}) # new feature: draw .... ">xxx" first character of title ">" forces title to # last point, not first # new feature: set quaternionFrame "c" "p" "q" Modified Paths: -------------- trunk/Jmol/src/org/jmol/modelset/ModelCollection.java trunk/Jmol/src/org/jmol/modelset/ModelSet.java trunk/Jmol/src/org/jmol/modelsetbio/AminoMonomer.java trunk/Jmol/src/org/jmol/modelsetbio/BioPolymer.java trunk/Jmol/src/org/jmol/modelsetbio/Monomer.java trunk/Jmol/src/org/jmol/modelsetbio/NucleicMonomer.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StateManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java Modified: trunk/Jmol/src/org/jmol/modelset/ModelCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelCollection.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/modelset/ModelCollection.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -995,6 +995,19 @@ return (index == null ? -1 : index.intValue()); } + protected void clearDataFrameReference(int modelIndex) { + for (int i = 0; i < modelCount; i++) { + Hashtable df = models[i].dataFrames; + if (df == null) + continue; + Object key; + Enumeration e = df.keys(); + while (e.hasMoreElements()) + if (((Integer)(df.get(key = e.nextElement()))).intValue() == modelIndex) + df.remove(key); + } + } + public String getJmolFrameType(int modelIndex) { return (modelIndex >= 0 && modelIndex < modelCount ? models[modelIndex].jmolFrameType : "modelSet"); Modified: trunk/Jmol/src/org/jmol/modelset/ModelSet.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -608,11 +608,11 @@ int j; for (int i = 0; i < modelCount; i++) { if (bsModels.get(i)) { - if (isJmolDataFrame(i) && !bsModels.get(j = models[i].dataSourceFrame)) { - bsModels.set(j); - includeAllRelatedFrames(bsModels); - return; - } + // if (isJmolDataFrame(i) && !bsModels.get(j = models[i].dataSourceFrame)) { + // bsModels.set(j); + // includeAllRelatedFrames(bsModels); + //return; + // } if (isTrajectory(i) && !bsModels.get(j = models[i].trajectoryBaseIndex)) { bsModels.set(j); includeAllRelatedFrames(bsModels); @@ -638,6 +638,13 @@ int nModelsDeleted = BitSetUtil.cardinalityOf(bsModels); if (nModelsDeleted == 0) return null; + + // clear references to this frame if it is a dataFrame + + for (int i = 0; i < modelCount; i++) + if (bsModels.get(i)) + clearDataFrameReference(i); + BitSet bsDeleted; if (nModelsDeleted == modelCount) { bsDeleted = getModelAtomBitSet(-1, true); Modified: trunk/Jmol/src/org/jmol/modelsetbio/AminoMonomer.java =================================================================== --- trunk/Jmol/src/org/jmol/modelsetbio/AminoMonomer.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/modelsetbio/AminoMonomer.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -174,7 +174,7 @@ closest[0] = alpha; } - Quaternion getQuaternion() { + Quaternion getQuaternion(char qType) { /* * also NucleicMonomer * @@ -212,33 +212,57 @@ * http://cnx.org/content/m11621/latest * */ - - Point3f ptC = getCarbonylCarbonAtomPoint(); + + Point3f ptC = getCarbonylCarbonAtomPoint(); Point3f ptCa = getLeadAtomPoint(); + Point3f ptN; + Vector3f vA, vB; + Monomer[] monomers; + AminoMonomer m; - //vA = ptC - ptCa - Vector3f vA = new Vector3f(ptC); + vA = new Vector3f(ptC); vA.sub(ptCa); - - //vB = ptN - ptCa - Point3f ptN = getNitrogenAtomPoint(); - Vector3f vB = new Vector3f(ptN); - vB.sub(ptCa); - - /* alternative frame: - - Point3f ptO = getCarbonylOxygenAtomPoint(); - //vA = ptO - ptC - Vector3f vA = new Vector3f(ptO); - vA.sub(ptC); - - //vB = ptCa - ptC - Vector3f vB = new Vector3f(ptCa); - vB.sub(ptC); - - */ - return Quaternion.getQuaternionFrame(vA, vB); + + switch (qType) { + default: + case 'c': + //vB = ptN - ptCa + ptN = getNitrogenAtomPoint(); + vB = new Vector3f(ptN); + vB.sub(ptCa); + break; + case 'p': + //Bob's idea for a peptide plane frame + //vB = ptN' - ptC + monomers = (Monomer[]) bioPolymer.getMonomers(); + if (monomerIndex == monomers.length - 1) + return null; + m = (AminoMonomer) monomers[monomerIndex + 1]; + ptN = m.getNitrogenAtomPoint(); + vB = new Vector3f(ptN); + vB.sub(ptC); + ptCa = getLeadAtomPoint(); + System.out.println("draw monomer"+monomerIndex +"vB VECTOR {" + ptCa.x + "," + ptCa.y + "," + ptCa.z + "} {" + vB.x + "," + vB.y + "," + vB.z + "}"); + break; + case 'q': + /* alternative frame from J.R.Quine, J. Mol. Struc. (Theochem) 460 (1999) 53-66 + * does not work, because Ca-->C and N'-->Ca' are almost colinear + */ + //vB = ptCa' - ptN' + monomers = (Monomer[]) bioPolymer.getMonomers(); + if (monomerIndex == monomers.length - 1) + return null; + m = (AminoMonomer) monomers[monomerIndex + 1]; + ptN = m.getNitrogenAtomPoint(); + ptCa = m.getLeadAtomPoint(); + vB = new Vector3f(ptCa); + vB.sub(ptN); + ptCa = getLeadAtomPoint(); + System.out.println("draw monomer"+monomerIndex +"vB VECTOR {" + ptCa.x + "," + ptCa.y + "," + ptCa.z + "} {" + vB.x + "," + vB.y + "," + vB.z + "}"); + break; + } + return Quaternion.getQuaternionFrame(vA, vB); } } Modified: trunk/Jmol/src/org/jmol/modelsetbio/BioPolymer.java =================================================================== --- trunk/Jmol/src/org/jmol/modelsetbio/BioPolymer.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/modelsetbio/BioPolymer.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -578,6 +578,7 @@ boolean isRamachandran = (ctype == 'r'); if (isRamachandran && !p.calcPhiPsiAngles()) return; + char qType = (isRamachandran ? 'c' : p.model.getModelSet().viewer.getQuaternionFrame()); for (int m = 0; m < p.monomerCount; m++) { Monomer monomer = p.monomers[m]; if (bsAtoms.get(monomer.getLeadAtomIndex())) { @@ -593,7 +594,7 @@ continue; w = a.getPartialCharge(); } else { - Quaternion q = monomer.getQuaternion(); + Quaternion q = monomer.getQuaternion(qType); if (q == null) { qlast = null; atomno = Integer.MIN_VALUE; Modified: trunk/Jmol/src/org/jmol/modelsetbio/Monomer.java =================================================================== --- trunk/Jmol/src/org/jmol/modelsetbio/Monomer.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/modelsetbio/Monomer.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -322,7 +322,7 @@ return true; } - Quaternion getQuaternion() { + Quaternion getQuaternion(char qType) { return null; } } Modified: trunk/Jmol/src/org/jmol/modelsetbio/NucleicMonomer.java =================================================================== --- trunk/Jmol/src/org/jmol/modelsetbio/NucleicMonomer.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/modelsetbio/NucleicMonomer.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -285,7 +285,7 @@ } } - Quaternion getQuaternion() { + Quaternion getQuaternion(char qType) { /* * also AminoMonomer * Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-05-20 22:55:41 UTC (rev 9398) @@ -6,12 +6,16 @@ # bug fix: select n-m:c chain selection inappropriately case sensitive # bug fix: draw ARROW {atom center} {xyz} draws arrow the wrong way # bug fix: draw CIRCLE for multiple models +# bug fix: application -- "make crystal..." menu item does nothing -- removed +# bug fix: zap of quaternion also zaps model inappropriately +# bug fix: zap to one model assigns -1 to currentModelIndex instead of 0 # new feature: draw CIRCLE [FILL | MESH NOFILL] more intuitive open/filling syntax # new feature: draw VECTOR {atom center} {dx dy dz} # new feature: draw with mixed types processes them in order # (11.4 does {x,y,z}, then $xxx, then {atomExpression}, then @{{atoms}.split()}) # new feature: draw .... ">xxx" first character of title ">" forces title to # last point, not first +# new feature: set quaternionFrame "c" "p" "q" # ----------------------------------------------------------------------------- Modified: trunk/Jmol/src/org/jmol/viewer/StateManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateManager.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/viewer/StateManager.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -600,6 +600,7 @@ boolean measurementLabels = true; int pickingSpinRate = 10; String propertyColorScheme = "roygb"; + String quaternionFrame = "c"; float solventProbeRadius = 1.2f; int scriptDelay = 0; boolean statusReporting = true; @@ -1128,6 +1129,7 @@ setParameterValue("propertyColorScheme",propertyColorScheme); setParameterValue("propertyDataField",0); setParameterValue("propertyAtomNumberField",0); + setParameterValue("quaternionFrame",quaternionFrame); setParameterValue("rangeSelected",rangeSelected); setParameterValue("refreshing",true); setParameterValue("ribbonAspectRatio",ribbonAspectRatio); Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -4029,6 +4029,13 @@ //Eval boolean notFound = false; while (true) { + + ///11.5.39// + if (key.equalsIgnoreCase("quaternionFrame")) { + setQuaternionFrame(value); + break; + } + ///11.5.11// if (key.equalsIgnoreCase("defaultVDW")) { setDefaultVdw(value); @@ -6561,12 +6568,13 @@ fileManager.addLoadScript("zap " + Escape.escape(bs)); setCurrentModelIndex(0, false); repaintManager.setAnimationOn(false); + BitSet bsDeleted = modelSet.deleteAtoms(bs, true); setAnimationRange(0, 0); - BitSet bsDeleted = modelSet.deleteAtoms(bs, true); eval.deleteAtomsInVariables(bsDeleted); repaintManager.clear(); repaintManager.initializePointers(1); - setCurrentModelIndex(-1, true); + if (getModelCount() > 1) + setCurrentModelIndex(-1, true); hoverAtomIndex = -1; setStatusFileLoaded(0, null, null, null, null); refreshMeasures(); @@ -6577,4 +6585,12 @@ return selectionManager.bsDeleted; } + public char getQuaternionFrame() { + return global.quaternionFrame.charAt(0); + } + + void setQuaternionFrame(String qType) { + global.quaternionFrame = "" + (qType.toLowerCase()+"c").charAt(0); + } + } Modified: trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties =================================================================== --- trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/openscience/jmol/Properties/Jmol-resources.properties 2008-05-20 22:55:41 UTC (rev 9398) @@ -46,7 +46,7 @@ # # Edit menu # -edit=editSelectAllScript selectMenu pasteClipboard copyImage - makecrystal - prefs +edit=editSelectAllScript selectMenu pasteClipboard copyImage - prefs editSelectAllScript=select thisModel Modified: trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java 2008-05-20 16:54:28 UTC (rev 9397) +++ trunk/Jmol/src/org/openscience/jmol/app/GuiMap.java 2008-05-20 22:55:41 UTC (rev 9398) @@ -59,7 +59,7 @@ labels.put("exit", GT._("E&xit")); labels.put("recentFiles", GT._("Recent Files...")); labels.put("edit", GT._("&Edit")); - labels.put("makecrystal", GT._("Make crystal...")); + //labels.put("makecrystal", GT. _("Make crystal...")); labels.put("selectall", GT._("Select All")); labels.put("deselectall", GT._("Deselect All")); labels.put("copyImage", GT._("Copy Image")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |