From: <ha...@us...> - 2012-08-23 15:28:43
|
Revision: 17468 http://jmol.svn.sourceforge.net/jmol/?rev=17468&view=rev Author: hansonr Date: 2012-08-23 15:28:36 +0000 (Thu, 23 Aug 2012) Log Message: ----------- # NOTE: This is not the development trunk, this is the release branch. # No new features should be added, just bug fixes for 13.0. # Developers: to add a description of changes you have made, # add it on a line below the "___version=..." line. # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. ___version=13.0.2_dev bug fix: pngj storage of Spartan directory zip files or Spartan directories cannot be read because the PNGJ files created do not contain the necessary files from the directory Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/export/_IdtfExporter.java branches/v13_0/Jmol/src/org/jmol/export/_PovrayExporter.java branches/v13_0/Jmol/src/org/jmol/export/image/ImageCreator.java branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java Modified: branches/v13_0/Jmol/src/org/jmol/export/_IdtfExporter.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/export/_IdtfExporter.java 2012-08-22 22:11:55 UTC (rev 17467) +++ branches/v13_0/Jmol/src/org/jmol/export/_IdtfExporter.java 2012-08-23 15:28:36 UTC (rev 17468) @@ -342,7 +342,7 @@ + "\n\\end{center}" + "\n\\end{document}" +"\n\\begin{comment}" - + viewer.getWrappedState(null, true, false, 0, 0) + + viewer.getWrappedState(null, null, true, false, 0, 0) +"\n\\end{comment}"; } Modified: branches/v13_0/Jmol/src/org/jmol/export/_PovrayExporter.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/export/_PovrayExporter.java 2012-08-22 22:11:55 UTC (rev 17467) +++ branches/v13_0/Jmol/src/org/jmol/export/_PovrayExporter.java 2012-08-23 15:28:36 UTC (rev 17468) @@ -67,7 +67,7 @@ output("// This script was generated on " + getExportDate() + "\n"); output("// ******************************************************\n"); try { - output((String) viewer.getWrappedState(null, true, false, 0, 0)); + output((String) viewer.getWrappedState(null, null, true, false, 0, 0)); } catch (Exception e) { // tough luck } Modified: branches/v13_0/Jmol/src/org/jmol/export/image/ImageCreator.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/export/image/ImageCreator.java 2012-08-22 22:11:55 UTC (rev 17467) +++ branches/v13_0/Jmol/src/org/jmol/export/image/ImageCreator.java 2012-08-23 15:28:36 UTC (rev 17468) @@ -183,7 +183,7 @@ boolean includeState = (asBytes && type.equals("PNGJ") || !asBytes && appendText == null); if (type.equals("PNGJ") && includeState) - ret = viewer.getWrappedState(scripts, true, true, image.getWidth(null), image + ret = viewer.getWrappedState(fileName, scripts, true, true, image.getWidth(null), image .getHeight(null)); if (isOsTemp) os = new FileOutputStream(fileName); @@ -194,8 +194,8 @@ bytes = JpegEncoder.getBytes(viewer.getApiPlatform(), image, quality, Viewer.getJmolVersion()); } else { - String caption = (includeState ? (String) viewer.getWrappedState(null, true, false, image - .getWidth(null), image.getHeight(null)) : Viewer.getJmolVersion()); + String caption = (includeState ? (String) viewer.getWrappedState(null, null, true, false, image + .getWidth(null), image.getHeight(null)) : Viewer.getJmolVersion()); JpegEncoder.write(viewer.getApiPlatform(), image, quality, os, caption); } @@ -222,8 +222,8 @@ int nPNG = bytes.length; b = bytes; if (ret == null) - ret = viewer.getWrappedState(scripts, true, false, image.getWidth(null), - image.getHeight(null)); + ret = viewer.getWrappedState(null, scripts, true, false, + image.getWidth(null), image.getHeight(null)); bytes = (ret instanceof byte[] ? (byte[]) ret : ((String) ret) .getBytes()); int nState = bytes.length; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java 2012-08-22 22:11:55 UTC (rev 17467) +++ branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java 2012-08-23 15:28:36 UTC (rev 17468) @@ -80,6 +80,7 @@ void clear() { fullPathName = fileName = nameAsGiven = viewer.getZapName(); + spardirCache = null; } private void setLoadState(Map<String, Object> htParams) { @@ -530,6 +531,7 @@ String[] subFileList = null; String[] info = (doSpecialLoad ? viewer.getModelAdapter().specialLoad(name, "filesNeeded?") : null); + String name00 = name; if (info != null) { if (isTypeCheckOnly) return info; @@ -554,14 +556,19 @@ StringBuffer sb = new StringBuffer(); if (fileData.get("OUTPUT") != null) sb.append(fileData.get(fileData.get("OUTPUT"))); + String s; for (int i = 2; i < info.length; i++) { name = info[i]; name = getObjectAsSections(name, header, fileData); Logger.info("reading " + name); - String s = fileData.get(name); + s = fileData.get(name); sb.append(s); } - return getBufferedReaderForString(sb.toString()); + s = sb.toString(); + if (spardirCache == null) + spardirCache = new Hashtable<String, byte[]>(); + spardirCache.put(name00.replace('\\','/'), s.getBytes()); + return getBufferedReaderForString(s); } // continuing... // here, for example, for an SPT file load that is not just a type check @@ -1284,13 +1291,15 @@ newName = (name.indexOf("?") > 0 && name.indexOf("|") < 0 ? TextFormat.replaceAllCharacters(name, "/:?\"'=&", "_") : stripPath(name)); newName = TextFormat.replaceAllCharacters(newName, "[]", "_"); - if (isLocal && name.indexOf("|") < 0) { + boolean isSparDir = (spardirCache != null && spardirCache.containsKey(name)); + if (isLocal && name.indexOf("|") < 0 + && !isSparDir) { v.add(name); v.add(newName); v.add(null); // data will be gotten from disk } else { // all remote files, and any file that was opened from a ZIP collection - Object ret = getFileAsBytes(name, null); + Object ret = (isSparDir ? spardirCache.get(name) : getFileAsBytes(name, null)); if (!(ret instanceof byte[])) return ret; CRC32 crc = new CRC32(); @@ -1301,6 +1310,8 @@ // let newName point to the already added data newName = crcMap.get(crcValue); }else{ + if (isSparDir) + newName = newName.replace('.', '_'); if (crcMap.containsKey(newName)) { // now we have a conflict. To different files with the same name // append "[iFile]" to the new file name to ensure it's unique @@ -1919,11 +1930,14 @@ } private Map<String, byte[]> pngjCache; + private Map<String, byte[]> spardirCache; - void clearPngjCache() { - pngjCache = null; + void clearPngjCache(String fileName) { + if (fileName == null || pngjCache != null && pngjCache.containsKey(getCanonicalName(getZipRoot(fileName)))) + pngjCache = null; } - + + private byte[] getCachedPngjBytes(String pathName) { if (pathName.indexOf(".png") < 0) return null; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-08-22 22:11:55 UTC (rev 17467) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-08-23 15:28:36 UTC (rev 17468) @@ -1,6 +1,8 @@ ___date=$Date$ ___fullJmolProperties=is src/org/jmol/viewer/Jmol.properties +# NOTE: This is not the development trunk, this is the release branch. +# No new features should be added, just bug fixes for 13.0. # Developers: to add a description of changes you have made, # add it on a line below the "___version=..." line. @@ -9,7 +11,8 @@ ___version=13.0.2_dev -bug fix: pngj storage of Spartan zip files cannot be read. +bug fix: pngj storage of Spartan directory zip files or Spartan directories cannot be read + because the PNGJ files created do not contain the necessary files from the directory ============================================================================= Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java 2012-08-22 22:11:55 UTC (rev 17467) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java 2012-08-23 15:28:36 UTC (rev 17468) @@ -3417,13 +3417,18 @@ return modelSet.getAllPolymerInfo(getAtomBitSet(atomExpression)); } - public Object getWrappedState(String[] scripts, boolean isImage, boolean asJmolZip, int width, - int height) { + public Object getWrappedState(String fileName, String[] scripts, boolean isImage, boolean asJmolZip, + int width, int height) { if (isImage && !global.imageState && !asJmolZip || !global.preserveState) return ""; String s = getStateInfo(null, width, height); - if (asJmolZip) + if (asJmolZip) { + if (fileName != null) + fileManager.clearPngjCache(fileName); + // when writing a file, we need to make sure + // the pngj cache for that file is cleared return fileManager.createZipSet(null, s, scripts, true); + } // we remove local file references in the embedded states for images try { s = JmolConstants.embedScript(FileManager.setScriptFileReferences(s, ".", @@ -10509,7 +10514,7 @@ public void cacheClear() { statusManager.cacheClear(); - fileManager.clearPngjCache(); + fileManager.clearPngjCache(null); } public void setCurrentModelID(String id) { @@ -10586,6 +10591,6 @@ // ignore } return "OK " + nFiles + " files created"; - } + } +} -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-08-30 11:47:04
|
Revision: 17489 http://jmol.svn.sourceforge.net/jmol/?rev=17489&view=rev Author: hansonr Date: 2012-08-30 11:46:52 +0000 (Thu, 30 Aug 2012) Log Message: ----------- ___version=13.0.2_dev bug fix: PDB polymers of length 1 allow mad to be set and appear {visible} but are not Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShape.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shapebio/BioShape.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShape.java 2012-08-30 00:10:26 UTC (rev 17488) +++ branches/v13_0/Jmol/src/org/jmol/shapebio/BioShape.java 2012-08-30 11:46:52 UTC (rev 17489) @@ -190,6 +190,8 @@ } void setMad(short mad, BitSet bsSelected, float[] values) { + if (monomerCount < 2) + return; isActive = true; if (bsSizeSet == null) bsSizeSet = new BitSet(); @@ -202,7 +204,7 @@ continue; mad = (short) (values[leadAtomIndex] * 2000); } - boolean isVisible = ((mads[i] = setMad(i, mad)) > 0); + boolean isVisible = ((mads[i] = getMad(i, mad)) > 0); bsSizeSet.set(i, isVisible); monomers[i].setShapeVisibility(flag, isVisible); shape.atoms[leadAtomIndex].setShapeVisibility(flag,isVisible); @@ -213,8 +215,7 @@ mads[monomerCount] = mads[monomerCount - 1]; } - private short setMad(int groupIndex, short mad) { - //undocumented + private short getMad(int groupIndex, short mad) { bsSizeDefault.set(groupIndex, mad == -1 || mad == -2); if (mad >= 0) return mad; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-08-30 00:10:26 UTC (rev 17488) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-08-30 11:46:52 UTC (rev 17489) @@ -11,6 +11,7 @@ ___version=13.0.2_dev +bug fix: PDB polymers of length 1 allow mad to be set and appear {visible} but are not bug fix: OPEN dialog doesn't allow for no PDB cartoons. bug fix: open dialog for 1-residue PDB files does not show atoms. bug fix: pngj storage of Spartan directory zip files or Spartan directories cannot be read This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-09-03 13:44:20
|
Revision: 17496 http://jmol.svn.sourceforge.net/jmol/?rev=17496&view=rev Author: hansonr Date: 2012-09-03 13:44:09 +0000 (Mon, 03 Sep 2012) Log Message: ----------- ___version=13.0.2 FOR RELEASE bug fix: translate x 0 does not recenter the model in the window bug fix: PDB polymers of length 1 allow size to be set and appear {visible} but are not bug fix: OPEN dialog doesn't allow for no PDB cartoons. bug fix: open dialog for 1-residue PDB files does not show atoms. bug fix: pngj storage of Spartan directory zip files or Spartan directories cannot be read because the PNGJ files created do not contain the necessary files from the directory Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-09-03 13:11:54 UTC (rev 17495) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-09-03 13:44:09 UTC (rev 17496) @@ -10887,8 +10887,6 @@ if (xyz != Token.x && xyz != Token.y && xyz != Token.z) error(ERROR_axisExpected); float amount = floatParameter(++i); - if (amount == 0) - return; char type; switch (tokAt(++i)) { case Token.nada: @@ -10899,6 +10897,8 @@ default: type = (optParameterAsString(i).toLowerCase() + '\0').charAt(0); } + if (amount == 0 && type != '\0') + return; iToken = (type == '\0' ? 2 : 3); bs = (isSelected ? viewer.getSelectionSet(false) : iToken + 1 < statementLength ? atomExpression(++iToken) : null); Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-03 13:11:54 UTC (rev 17495) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-03 13:44:09 UTC (rev 17496) @@ -9,8 +9,9 @@ # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. -___version=13.0.2_dev +___version=13.0.2 +bug fix: translate x 0 does not recenter the model in the window bug fix: PDB polymers of length 1 allow size to be set and appear {visible} but are not bug fix: OPEN dialog doesn't allow for no PDB cartoons. bug fix: open dialog for 1-residue PDB files does not show atoms. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-09-06 11:00:35
|
Revision: 17516 http://jmol.svn.sourceforge.net/jmol/?rev=17516&view=rev Author: hansonr Date: 2012-09-06 11:00:24 +0000 (Thu, 06 Sep 2012) Log Message: ----------- ___version=13.0.3_dev bug fix: CUBE reader reading atom Z numbers as partial charge Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/adapter/readers/simple/CubeReader.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/adapter/readers/simple/CubeReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/adapter/readers/simple/CubeReader.java 2012-09-06 10:58:32 UTC (rev 17515) +++ branches/v13_0/Jmol/src/org/jmol/adapter/readers/simple/CubeReader.java 2012-09-06 11:00:24 UTC (rev 17516) @@ -94,7 +94,7 @@ readLine(); Atom atom = atomSetCollection.addNewAtom(); atom.elementNumber = (short)parseInt(line); //allowing atomicAndIsotope for JVXL format - atom.partialCharge = parseFloat(); + parseFloat(); setAtomCoord(atom, parseFloat() * f, parseFloat() * f, parseFloat() * f); } } Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-06 10:58:32 UTC (rev 17515) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-06 11:00:24 UTC (rev 17516) @@ -10,7 +10,9 @@ # the information saved in the JAR version of this file. ___version=13.0.3_dev - + +bug fix: CUBE reader reading atom Z numbers as partial charge + ============================================================================= version=13.0.2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-09-08 15:50:15
|
Revision: 17526 http://jmol.svn.sourceforge.net/jmol/?rev=17526&view=rev Author: hansonr Date: 2012-09-08 15:50:09 +0000 (Sat, 08 Sep 2012) Log Message: ----------- ___version=13.0.4 bug fix: ISOSURFACE saving in state broken 7/30/12 in 13.0.RC3 bug fix: simple isosurface PLANE not saved in state bug fix: isosurface command with MAP from state when saved to state may fail Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/jvxl/data/VolumeData.java branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/v13_0/Jmol/src/org/jmol/shapesurface/Isosurface.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/jvxl/data/VolumeData.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/jvxl/data/VolumeData.java 2012-09-08 15:49:14 UTC (rev 17525) +++ branches/v13_0/Jmol/src/org/jmol/jvxl/data/VolumeData.java 2012-09-08 15:50:09 UTC (rev 17526) @@ -376,15 +376,19 @@ int yUpper = indexUpper(ptXyzTemp.y, yLower, iMax); int zLower = indexLower(ptXyzTemp.z, iMax = voxelCounts[2] - 1); int zUpper = indexUpper(ptXyzTemp.z, zLower, iMax); - float v1 = getFractional2DValue(ptXyzTemp.x - xLower, ptXyzTemp.y - yLower, + float v1 = getFractional2DValue(mantissa(ptXyzTemp.x - xLower), mantissa(ptXyzTemp.y - yLower), getVoxelValue(xLower, yLower, zLower), getVoxelValue(xUpper, yLower, zLower), getVoxelValue(xLower, yUpper, zLower), getVoxelValue(xUpper, yUpper, zLower)); - float v2 = getFractional2DValue(ptXyzTemp.x - xLower, ptXyzTemp.y - yLower, + float v2 = getFractional2DValue(mantissa(ptXyzTemp.x - xLower), mantissa(ptXyzTemp.y - yLower), getVoxelValue(xLower, yLower, zUpper), getVoxelValue(xUpper, yLower, zUpper), getVoxelValue(xLower, yUpper, zUpper), getVoxelValue(xUpper, yUpper, zUpper)); - return v1 + (ptXyzTemp.z - zLower) * (v2 - v1); + return v1 + mantissa(ptXyzTemp.z - zLower) * (v2 - v1); } + private float mantissa(float f) { + return (isPeriodic ? f - (float) Math.floor(f) : f); + } + public float getVoxelValue(int x, int y, int z) { if (voxelMap == null) return voxelData[x][y][z]; @@ -426,7 +430,7 @@ } private int indexUpper(float x, int xLower, int xMax) { - return xLower + (!isPeriodic && x < 0 || xLower == xMax ? 0 : 1); + return (!isPeriodic && x < 0 || xLower == xMax ? xLower : xLower + 1); } void offsetCenter(Point3f center) { Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-09-08 15:49:14 UTC (rev 17525) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-09-08 15:50:09 UTC (rev 17526) @@ -16925,7 +16925,7 @@ if (mepOrMlp == null) { // not mlp or mep if (!surfaceObjectSeen && !isMapped && !planeSeen) { addShapeProperty(propertyList, "sasurface", Float.valueOf(0)); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" vdw"); surfaceObjectSeen = true; } @@ -16948,7 +16948,7 @@ propertyName = mepOrMlp; } str = parameterAsString(i); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" ").append(str); if (str.toLowerCase().indexOf("property_") == 0) { @@ -16975,7 +16975,7 @@ Parser.parseStringInfestedFloatArray("" + getParameter(vname, Token.string), null, data); } - if (!isSyntaxCheck && (surfaceObjectSeen)) + if (!isSyntaxCheck/* && (surfaceObjectSeen)*/) sbCommand.append(" \"\" ").append(Escape.escape(data)); } else { int tokProperty = getToken(++i).tok; @@ -17149,10 +17149,10 @@ continue; case Token.ionic: case Token.vanderwaals: - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" ").append(theToken.value); RadiusData rd = encodeRadiusParameter(i, false, true); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" ").append(rd); if (Float.isNaN(rd.value)) rd.value = 100; @@ -17169,7 +17169,7 @@ propertyName = "plane"; propertyValue = planeParameter(++i); i = iToken; - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" plane ").append(Escape.escape(propertyValue)); break; case Token.scale: @@ -17274,17 +17274,17 @@ offset = moOffset(i); moNumber = 0; i = iToken; - if (surfaceObjectSeen) { + //if (surfaceObjectSeen) { sbCommand.append(" mo " + (isNegOffset ? "-" : "") + "HOMO "); if (offset > 0) sbCommand.append("+"); if (offset != 0) sbCommand.append(offset); - } + //} break; case Token.integer: moNumber = intParameter(i); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" mo ").append(moNumber); break; default: @@ -17310,7 +17310,7 @@ continue; case Token.nci: propertyName = "nci"; - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" " + propertyName); int tok = tokAt(i + 1); boolean isPromolecular = (tok != Token.file && tok != Token.string && tok != Token.mrc); @@ -17322,7 +17322,7 @@ case Token.mlp: boolean isMep = (theTok == Token.mep); propertyName = (isMep ? "mep" : "mlp"); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" " + propertyName); String fname = null; int calcType = -1; @@ -17335,7 +17335,7 @@ } if (tokAt(i + 1) == Token.string) { fname = stringParameter(++i); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" /*file*/" + Escape.escape(fname)); } else if (tokAt(i + 1) == Token.property) { mepOrMlp = propertyName; @@ -17407,7 +17407,7 @@ nlmZprs[1] = intParameter(++i); nlmZprs[2] = intParameter(++i); nlmZprs[3] = (isFloatParameter(i + 1) ? floatParameter(++i) : 6f); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" atomicOrbital ").append((int) nlmZprs[0]).append( " ").append((int) nlmZprs[1]).append(" ") .append((int) nlmZprs[2]).append(" ").append(nlmZprs[3]); @@ -17417,7 +17417,7 @@ nlmZprs[5] = (tokAt(i + 1) == Token.decimal ? floatParameter(++i) : 0); nlmZprs[6] = (tokAt(i + 1) == Token.integer ? intParameter(++i) : ((int) -System.currentTimeMillis()) % 10000); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" points ").append((int) nlmZprs[4]).append(' ') .append(nlmZprs[5]).append(' ').append((int) nlmZprs[6]); } @@ -17513,13 +17513,13 @@ case Token.downsample: propertyName = "downsample"; propertyValue = Integer.valueOf(intParameter(++i)); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" downsample ").append(propertyValue); break; case Token.eccentricity: propertyName = "eccentricity"; propertyValue = getPoint4f(++i); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" eccentricity ").append( Escape.escape(propertyValue)); i = iToken; @@ -17557,21 +17557,21 @@ propertyName = "" + theToken.value; List<Object> vxy = new ArrayList<Object>(); propertyValue = vxy; - isFxy = true; - if (surfaceObjectSeen) + isFxy = surfaceObjectSeen = true; + //if (surfaceObjectSeen) sbCommand.append(" ").append(propertyName); String name = parameterAsString(++i); if (name.equals("=")) { - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" ="); name = parameterAsString(++i); - if (surfaceObjectSeen) + //if (surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(name)); vxy.add(name); if (!isSyntaxCheck) addShapeProperty(propertyList, "func", createFunction("__iso__", "x,y,z", name)); - surfaceObjectSeen = true; + //surfaceObjectSeen = true; break; } // override of function or data name when saved as a state @@ -17584,26 +17584,26 @@ boolean isXYZ = (name.indexOf("data2d_") == 0); boolean isXYZV = (name.indexOf("data3d_") == 0); isInline = name.equals("inline"); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" inline"); vxy.add(name); // (0) = name Point3f pt3 = getPoint3f(++i, false); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(pt3)); vxy.add(pt3); // (1) = {origin} Point4f pt4; ptX = ++iToken; vxy.add(pt4 = getPoint4f(ptX)); // (2) = {ni ix iy iz} - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(pt4)); nX = (int) pt4.x; ptY = ++iToken; vxy.add(pt4 = getPoint4f(ptY)); // (3) = {nj jx jy jz} - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(pt4)); nY = (int) pt4.x; vxy.add(pt4 = getPoint4f(++iToken)); // (4) = {nk kx ky kz} - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(pt4)); nZ = (int) pt4.x; @@ -17638,7 +17638,7 @@ + "] is not of size [" + nX + "][" + nY + "][" + nZ + "]"); } vxy.add(xyzdata); // (5) = float[][][] data - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(xyzdata)); } else { if (isInline) { @@ -17675,7 +17675,7 @@ } } vxy.add(fdata); // (5) = float[][] data - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(Escape.escape(fdata)); } } @@ -17698,7 +17698,7 @@ case Token.internal: case Token.interior: case Token.pocket: - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(theToken.value); propertyName = "pocket"; propertyValue = (theTok == Token.pocket ? Boolean.TRUE : Boolean.FALSE); @@ -17708,7 +17708,7 @@ propertyName = "lobe"; propertyValue = getPoint4f(++i); i = iToken; - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" lobe ").append(Escape.escape(propertyValue)); surfaceObjectSeen = true; break; @@ -17718,7 +17718,7 @@ propertyName = "lp"; propertyValue = getPoint4f(++i); i = iToken; - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" lp ").append(Escape.escape(propertyValue)); surfaceObjectSeen = true; break; @@ -17748,7 +17748,6 @@ } else if (!surfaceObjectSeen && !planeSeen) { error(ERROR_invalidArgument); } - //surfaceObjectSeen = !isCavity; sbCommand.append("; isosurface map"); propertyName = "map"; propertyValue = (surfaceObjectSeen ? Boolean.TRUE : Boolean.FALSE); @@ -17769,7 +17768,7 @@ propertyName = "rad"; propertyValue = getPoint4f(++i); i = iToken; - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" radical ").append(Escape.escape(propertyValue)); break; case Token.modelbased: @@ -17784,24 +17783,24 @@ float radius; if (theTok == Token.molecular) { propertyName = "molecular"; - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" molecular"); radius = 1.4f; } else { addShapeProperty(propertyList, "bsSolvent", lookupIdentifierValue("solvent")); propertyName = (theTok == Token.sasurface ? "sasurface" : "solvent"); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(theToken.value); radius = (isFloatParameter(i + 1) ? floatParameter(++i) : viewer .getSolventProbeRadius()); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" ").append(radius); } propertyValue = Float.valueOf(radius); if (tokAt(i + 1) == Token.full) { addShapeProperty(propertyList, "doFullMolecular", null); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" full"); i++; } @@ -17809,22 +17808,22 @@ break; case Token.mrc: addShapeProperty(propertyList, "fileType", "MRC"); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" mrc"); continue; case Token.object: case Token.obj: addShapeProperty(propertyList, "fileType", "Obj"); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" obj"); continue; case Token.msms: addShapeProperty(propertyList, "fileType", "Msms"); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" msms"); continue; case Token.phase: - if (surfaceObjectSeen) + //if (surfaceObjectSeen) error(ERROR_invalidArgument); propertyName = "phase"; isPhased = true; @@ -17852,7 +17851,7 @@ // sphere [radius] propertyName = "sphere"; propertyValue = Float.valueOf(floatParameter(++i)); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" sphere ").append(propertyValue); surfaceObjectSeen = true; break; @@ -17883,7 +17882,7 @@ Logger.debug("pmesh inline data:\n" + sType); propertyValue = (isSyntaxCheck ? null : sType); addShapeProperty(propertyList, "fileName", ""); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" INLINE"); surfaceObjectSeen = true; } else { @@ -17904,7 +17903,7 @@ addShapeProperty(propertyList, "sigma", Float.valueOf(sigma)); } addShapeProperty(propertyList, "cutoff", Float.valueOf(cutoff)); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" cutoff ").append(cutoff); } } @@ -17914,7 +17913,7 @@ modelIndex = viewer.getCurrentModelIndex(); bs = viewer.getModelUndeletedAtomsBitSet(modelIndex); getWithinDistanceVector(propertyList, 2.0f, null, bs, false); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" within 2.0 ").append(Escape.escape(bs)); } if (firstPass) @@ -17924,7 +17923,7 @@ && Float.isNaN(sigma) && Float.isNaN(cutoff)) { // negative sigma just indicates that addShapeProperty(propertyList, "sigma", Float.valueOf(-1)); - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" sigma -1.0"); } /* @@ -18000,15 +17999,15 @@ addShapeProperty(propertyList, "fileName", filename); if (localName != null) filename = localName; - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" /*file*/").append(Escape.escape(filename)); // null propertyValue indicates that we need a reader based on the fileName } - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) if (fileIndex >= 0) sbCommand.append(" ").append(fileIndex); } - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) if (sType != null) sbCommand.append(" ").append(Escape.escape(sType)); surfaceObjectSeen = true; @@ -18028,7 +18027,7 @@ break; case Token.link: propertyName = "link"; - if (!surfaceObjectSeen) + //if (!surfaceObjectSeen) sbCommand.append(" link"); break; default: @@ -18166,10 +18165,10 @@ setShapeProperty(iShape, "finalize", sbCommand.toString()); } else if (surfaceObjectSeen) { cmd = sbCommand.toString(); - setShapeProperty(iShape, "finalize", + setShapeProperty(iShape, "finalize", (cmd.indexOf("; isosurface map") == 0 ? "" : " select " - + Escape.escape(bsSelect) + " ") - + cmd); + + Escape.escape(bsSelect) + " ") + + cmd); String s = (String) getShapeProperty(iShape, "ID"); if (s != null && !tQuiet) { cutoff = ((Float) getShapeProperty(iShape, "cutoff")).floatValue(); Modified: branches/v13_0/Jmol/src/org/jmol/shapesurface/Isosurface.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapesurface/Isosurface.java 2012-09-08 15:49:14 UTC (rev 17525) +++ branches/v13_0/Jmol/src/org/jmol/shapesurface/Isosurface.java 2012-09-08 15:50:09 UTC (rev 17526) @@ -869,6 +869,7 @@ int modelCount = viewer.getModelCount(); if (modelCount > 1) appendCmd(sb, "frame " + viewer.getModelNumberDotted(imesh.modelIndex)); + cmd = TextFormat.simpleReplace(cmd, ";; isosurface map"," map"); cmd = TextFormat.simpleReplace(cmd, "; isosurface map", " map"); cmd = cmd.replace('\t', ' '); cmd = TextFormat.simpleReplace(cmd, ";#", "; #"); Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-08 15:49:14 UTC (rev 17525) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-08 15:50:09 UTC (rev 17526) @@ -9,8 +9,14 @@ # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. -___version=13.0.3_dev +___version=13.0.4 +bug fix: ISOSURFACE saving in state broken 7/30/12 in 13.0.RC3 +bug fix: simple isosurface PLANE not saved in state +bug fix: isosurface command with MAP from state when saved to state may fail + +version=13.0.3 + bug fix: CUBE reader reading atom Z numbers as partial charge ============================================================================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-09-08 16:15:54
|
Revision: 17531 http://jmol.svn.sourceforge.net/jmol/?rev=17531&view=rev Author: hansonr Date: 2012-09-08 16:15:48 +0000 (Sat, 08 Sep 2012) Log Message: ----------- ___version=13.0.4 CRITICAL UPDATE bug fix: ISOSURFACE saving in state broken 7/30/12 in 13.0.RC3 bug fix: simple isosurface PLANE not saved in state bug fix: isosurface command with MAP from state when saved to state may fail Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-09-08 16:12:17 UTC (rev 17530) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-09-08 16:15:48 UTC (rev 17531) @@ -17823,7 +17823,7 @@ sbCommand.append(" msms"); continue; case Token.phase: - //if (surfaceObjectSeen) + if (surfaceObjectSeen) error(ERROR_invalidArgument); propertyName = "phase"; isPhased = true; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-08 16:12:17 UTC (rev 17530) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-08 16:15:48 UTC (rev 17531) @@ -9,13 +9,8 @@ # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. -___version=13.0.4_HOLD +___version=13.0.4 - -TODO -- JUNIT monster test failure - - - bug fix: ISOSURFACE saving in state broken 7/30/12 in 13.0.RC3 bug fix: simple isosurface PLANE not saved in state bug fix: isosurface command with MAP from state when saved to state may fail This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-09-19 17:31:57
|
Revision: 17570 http://jmol.svn.sourceforge.net/jmol/?rev=17570&view=rev Author: hansonr Date: 2012-09-19 17:31:46 +0000 (Wed, 19 Sep 2012) Log Message: ----------- ___version=13.0.5_dev bug fix: CASTEP PHONON files not loading Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java 2012-09-18 12:56:17 UTC (rev 17569) +++ branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java 2012-09-19 17:31:46 UTC (rev 17570) @@ -1617,7 +1617,7 @@ Vector3f[] vibrations = (vibrationSteps == null ? null : vibrationSteps .get(0)); Vector3f v = new Vector3f(); - if (vibrationSteps != null && vibrations.length < atomCount + if (vibrationSteps != null && vibrations != null && vibrations.length < atomCount || trajectory.length < atomCount) { errorMessage = "File cannot be loaded as a trajectory"; return; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-18 12:56:17 UTC (rev 17569) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-09-19 17:31:46 UTC (rev 17570) @@ -11,6 +11,8 @@ ___version=13.0.5_dev +bug fix: CASTEP PHONON files not loading + ============================================================================= version=13.0.4 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-05 16:39:57
|
Revision: 17621 http://jmol.svn.sourceforge.net/jmol/?rev=17621&view=rev Author: hansonr Date: 2012-10-05 16:39:51 +0000 (Fri, 05 Oct 2012) Log Message: ----------- ___version=13.0.7_dev bug fix: DRAW {x y z} "title" can fail in multimodel cases with translucency Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shape/MeshRenderer.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shape/MeshRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shape/MeshRenderer.java 2012-10-05 16:39:23 UTC (rev 17620) +++ branches/v13_0/Jmol/src/org/jmol/shape/MeshRenderer.java 2012-10-05 16:39:51 UTC (rev 17621) @@ -135,11 +135,9 @@ isTranslucent = haveBsSlabGhost || Graphics3D.isColixTranslucent(mesh.colix); doRender = (setColix(mesh.colix) || mesh.showContourLines); - if (!doRender) + if (!doRender || haveBsSlabGhost && !(doRender = g3d.setColix(mesh.slabColix))) { + vertices = mesh.vertices; return true; - if (haveBsSlabGhost) { - if (!(doRender = g3d.setColix(mesh.slabColix))) - return true; } vertices = (mesh.scale3d == 0 && mesh.mat4 == null ? mesh.vertices : mesh.getOffsetVertices(thePlane)); if (mesh.lineData == null) { Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-05 16:39:23 UTC (rev 17620) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-05 16:39:51 UTC (rev 17621) @@ -11,6 +11,8 @@ ___version=13.0.7_dev +bug fix: DRAW {x y z} "title" can fail in multimodel cases with translucency + ============================================================================= version=13.0.6 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-08 11:01:53
|
Revision: 17639 http://jmol.svn.sourceforge.net/jmol/?rev=17639&view=rev Author: hansonr Date: 2012-10-08 11:01:46 +0000 (Mon, 08 Oct 2012) Log Message: ----------- ___version=13.0.7_dev bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth normals between segments (Alexander Rose) also, hermiteLevel >= 6 now gives ellipse cross-section recommended settings: set hermiteLevel 6;set ribbonAspectRatio 4 Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java branches/v13_0/Jmol/src/org/jmol/util/MeshSurface.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java 2012-10-08 00:29:41 UTC (rev 17638) +++ branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java 2012-10-08 11:01:46 UTC (rev 17639) @@ -155,22 +155,29 @@ this.meshType = meshType; } + private BitSet bsTemp; + public void initialize(int lighting, Point3f[] vertices, Point4f plane) { if (vertices == null) vertices = this.vertices; Vector3f[] normals = getNormals(vertices, plane); + setNormixes(normals); + this.lighting = Token.frontlit; + if (insideOut) + invertNormixes(); + setLighting(lighting); + } + + public void setNormixes(Vector3f[] normals) { normixes = new short[normixCount]; - BitSet bsTemp = new BitSet(); + if (bsTemp == null) + bsTemp = new BitSet(); if (haveXyPoints) for (int i = normixCount; --i >= 0;) normixes[i] = Graphics3D.NORMIX_NULL; else for (int i = normixCount; --i >= 0;) normixes[i] = Graphics3D.getNormix(normals[i], bsTemp); - this.lighting = Token.frontlit; - if (insideOut) - invertNormixes(); - setLighting(lighting); } public Vector3f[] getNormals(Point3f[] vertices, Point4f plane) { @@ -488,4 +495,9 @@ recalcAltVertices = true; } + public Vector3f[] getNormalsTemp() { + return (normalsTemp == null ? (normalsTemp = getNormals(vertices, null)) + : normalsTemp); + } + } Modified: branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java 2012-10-08 00:29:41 UTC (rev 17638) +++ branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java 2012-10-08 11:01:46 UTC (rev 17639) @@ -33,11 +33,9 @@ import org.jmol.constant.EnumStructure; import org.jmol.g3d.Graphics3D; import org.jmol.modelset.Atom; -import org.jmol.modelsetbio.AlphaMonomer; import org.jmol.modelsetbio.CarbohydratePolymer; import org.jmol.modelsetbio.Monomer; import org.jmol.modelsetbio.NucleicPolymer; -import org.jmol.modelsetbio.ProteinStructure; import org.jmol.script.Token; import org.jmol.shape.MeshRenderer; import org.jmol.shape.Mesh; @@ -58,9 +56,10 @@ private int aspectRatio; private int hermiteLevel; private float sheetSmoothing; - + private Mesh[] meshes; private boolean[] meshReady; + private BitSet bsRenderMesh; protected int monomerCount; protected Monomer[] monomers; @@ -85,7 +84,6 @@ protected void render() { if (shape == null) return; - invalidateMesh = false; boolean TF = isExport || viewer.getHighResolution(); if (TF != isHighRes) @@ -127,7 +125,9 @@ if ((bioShape.modelVisibilityFlags & myVisibilityFlag) == 0) continue; if (bioShape.monomerCount >= 2 && initializePolymer(bioShape)) { + bsRenderMesh.clear(); renderBioShape(bioShape); + renderMeshes(); freeTempArrays(); } } @@ -147,6 +147,7 @@ sheetSmoothing, invalidateSheets); } monomerCount = bioShape.monomerCount; + bsRenderMesh = new BitSet(monomerCount); monomers = bioShape.monomers; leadAtomIndices = bioShape.bioPolymer.getLeadAtomIndices(); @@ -322,10 +323,10 @@ if (setMads(i, thisTypeOnly)) { try { if ((meshes[i] == null || !meshReady[i]) - && !createMeshCylinder(i, madBeg, madMid, madEnd, 1)) + && !createMesh(i, madBeg, madMid, madEnd, 1)) return; meshes[i].setColix(colix); - render1(meshes[i]); + bsRenderMesh.set(i); return; } catch (Exception e) { Logger.error("render mesh error hermiteConic: " + e.toString()); @@ -349,10 +350,10 @@ if (setMads(i, thisTypeOnly)) { try { if ((meshes[i] == null || !meshReady[i]) - && !createMeshCylinder(i, madBeg, madMid, madEnd, aspectRatio)) + && !createMesh(i, madBeg, madMid, madEnd, aspectRatio)) return; meshes[i].setColix(colix); - render1(meshes[i]); + bsRenderMesh.set(i); return; } catch (Exception e) { Logger.error("render mesh error hermiteRibbon: " + e.toString()); @@ -385,11 +386,11 @@ doCap0 = true; doCap1 = false; if ((meshes[i] == null || !meshReady[i]) - && !createMeshCylinder(i, (int) (madBeg * 1.2), (int) (madBeg * 0.6), 0, - aspectRatio >> 1)) + && !createMesh(i, (int) (madBeg * 1.2), (int) (madBeg * 0.6), 0, + (aspectRatio == 1 ? aspectRatio : aspectRatio >> 1))) return; meshes[i].setColix(colix); - render1(meshes[i]); + bsRenderMesh.set(i); return; } catch (Exception e) { Logger.error("render mesh error hermiteArrowHead: " + e.toString()); @@ -464,9 +465,7 @@ private Point3f[] radiusHermites; private Vector3f norm = new Vector3f(); - private final Vector3f Z = new Vector3f(0.1345f, 0.5426f, 0.3675f); //random reference private final Vector3f wing = new Vector3f(); - private final Vector3f wing0 = new Vector3f(); private final Vector3f wing1 = new Vector3f(); private final Vector3f wingT = new Vector3f(); private final AxisAngle4f aa = new AxisAngle4f(); @@ -476,29 +475,11 @@ private final Point3f ptNext = new Point3f(); private final Matrix3f mat = new Matrix3f(); - private boolean createMeshCylinder(int i, int madBeg, int madMid, int madEnd, - int aspectRatio) { + private boolean createMesh(int i, int madBeg, int madMid, int madEnd, + int aspectRatio) { setNeighbors(i); if (controlPoints[i].distance(controlPoints[iNext]) == 0) return false; - if (isHelix(i)) { - ProteinStructure p = ((AlphaMonomer) monomers[i]).getProteinStructure(); - p.calcAxis(); - /* - * - dumpPoint(p.center, Graphics3D.YELLOW); - dumpPoint(p.axisA, Graphics3D.YELLOW); - dumpPoint(p.axisB, Graphics3D.YELLOW); - Vector3f v = new Vector3f(((Helix) p).vTemp); - v.scale(1); - dumpVector(p.center, v, Graphics3D.GREEN); - v.set(((Helix) p).m); - v.scale(1); - dumpVector(p.center, v, Graphics3D.WHITE); - dumpVector(p.center, new Vector3f(1, 1, 1), Graphics3D.BLUE); - dumpPoint(controlPoints[i], Graphics3D.WHITE); - */ - } boolean isEccentric = (aspectRatio != 1 && wingVectors != null); int nHermites = (hermiteLevel + 1) * 2 + 1; // 4 for hermiteLevel = 1 int nPer = (nHermites - 1) * 2 - 2; // 6 for hermiteLevel 1 @@ -510,18 +491,19 @@ Graphics3D.getHermiteList(isNucleic ? 4 : 7, controlPoints[iPrev], controlPoints[i], controlPoints[iNext], controlPoints[iNext2], controlPoints[iNext3], controlHermites, 0, nHermites); - //System.out.println("create mesh " + thisChain + " mesh_" + shapeID + "_"+i+controlPoints[i] + controlPoints[iNext]); - if (isEccentric) { - if (wingHermites == null || wingHermites.length < nHermites + 1) { - wingHermites = new Vector3f[nHermites + 1]; - } - wing.set(wingVectors[iPrev]); - if (madEnd == 0) - wing.scale(2.0f); //adds a flair to an arrow - Graphics3D.getHermiteList(isNucleic ? 4 : 7, wing, wingVectors[i], - wingVectors[iNext], wingVectors[iNext2], wingVectors[iNext3], - wingHermites, 0, nHermites); + // if (isEccentric) { + // wing hermites determine the orientation of the cartoon + if (wingHermites == null || wingHermites.length < nHermites + 1) { + wingHermites = new Vector3f[nHermites + 1]; } + wing.set(wingVectors[iPrev]); + if (madEnd == 0) + wing.scale(2.0f); //adds a flair to an arrow + Graphics3D.getHermiteList(isNucleic ? 4 : 7, wing, wingVectors[i], + wingVectors[iNext], wingVectors[iNext2], wingVectors[iNext3], + wingHermites, 0, nHermites); + // } + // radius hermites determine the thickness of the cartoon float radius1 = madBeg / 2000f; float radius2 = madMid / 2000f; float radius3 = madEnd / 2000f; @@ -538,11 +520,9 @@ Graphics3D.getHermiteList(4, ptPrev, pt, pt1, ptNext, ptNext, radiusHermites, 0, (nHermites + 1) >> 1); } - if (!isEccentric) { - norm.sub(controlHermites[1], controlHermites[0]); - wing0.cross(norm, Z); - wing0.cross(norm, wing0); - } + + // now create the cartoon polygon + int nPoints = 0; int iMid = nHermites >> 1; for (int p = 0; p < nHermites; p++) { @@ -550,31 +530,50 @@ if (isEccentric) { wing.set(wingHermites[p]); wing1.set(wing); - wing.scale(2f / aspectRatio); - //dumpVector(controlHermites[p],wing) + if (hermiteLevel < 6) { + wing.scale(2f / aspectRatio); + } else { + wing1.cross(norm, wing); + wing1.normalize(); + wing1.scale(wing.length() / aspectRatio); + } } else { - wing.cross(norm, wing0); + wing.set(wingHermites[p]); + wing.scale(2f); + wing.cross(norm, wing); + wing.cross(norm, wing); + wing.cross(norm, wing); wing.normalize(); } float scale = (!variableRadius ? radius1 : p < iMid ? radiusHermites[p].x : radiusHermites[p - iMid].y); wing.scale(scale); wing1.scale(scale); - aa.set(norm, (float) (2 * Math.PI / nPer)); + float angle = (float) (2 * Math.PI / nPer); + aa.set(norm, angle); mat.set(aa); pt1.set(controlHermites[p]); - for (int k = 0; k < nPer; k++) { - mat.transform(wing); - wingT.set(wing); + float theta = angle; + for (int k = 0; k < nPer; k++, theta += angle) { + if (hermiteLevel < 6 || !isEccentric) + mat.transform(wing); if (isEccentric) { - if (k == (nPer + 2) / 4 || k == (3 * nPer + 2) / 4) - wing1.scale(-1); - wingT.add(wing1); + if (hermiteLevel < 6) { + wingT.set(wing); + if (k == (nPer + 2) / 4 || k == (3 * nPer + 2) / 4) + wing1.scale(-1); + wingT.add(wing1); + } else { + float cos = (float) Math.cos(theta); + float sin = (float) Math.sin(theta); + wingT.set(wing1); + wingT.scale(sin); + wingT.scaleAdd(cos, wing, wingT); + } + pt.add(pt1, wingT); + } else { + pt.add(pt1, wing); } - pt.add(pt1, wingT); - if (isEccentric) { - //dumpVector(wingHermites[p], pt); - } mesh.addVertexCopy(pt); } if (p > 0) { @@ -592,11 +591,60 @@ for (int k = hermiteLevel * 2; --k >= 0;) mesh.addQuad(nPoints - k - 1, nPoints - nPer + (nPer - k) % nPer, nPoints - nPer + k + 1, nPoints - nPer + k + 2); - mesh.initialize(Token.frontlit, null, null); - //System.out.sprintln("mesh "+ mesh.thisID + " " + mesh.vertexCount+" "+mesh.vertices.length + " " + mesh.polygonCount + " " + mesh.polygonIndexes.length); + meshReady[i] = true; + adjustCartoonSeamNormals(i, nPer); mesh.setVisibilityFlags(1); - return (meshReady[i] = true); + return true; } + + private BitSet bsTemp; + private final Vector3f norml = new Vector3f(); + + /** + * Matches normals for adjacent mesh sections to create a seamless overall + * mesh. We use temporary normals here. We will convert normals to normixes + * later. + * + * @author Alexander Rose + * @author Bob Hanson + * + * @param i + * @param nPer + */ + void adjustCartoonSeamNormals(int i, int nPer) { + if (bsTemp == null) + bsTemp = new BitSet(); + if (i == iNext - 1 && iNext < monomerCount + && monomers[i].getStrucNo() == monomers[iNext].getStrucNo() + && meshReady[i] && meshReady[iNext]) { + try { + Vector3f[] normals2 = meshes[iNext].getNormalsTemp(); + Vector3f[] normals = meshes[i].getNormalsTemp(); + int normixCount = normals.length; + for (int j = 1; j <= nPer; ++j) { + norml.add(normals[normixCount - j], normals2[nPer - j]); + norml.normalize(); + meshes[i].normalsTemp[normixCount - j].set(norml); + meshes[iNext].normalsTemp[nPer - j].set(norml); + } + } catch (Exception e) { + } + } + } + + private void renderMeshes() { + for (int i = bsRenderMesh.nextSetBit(0); i >= 0; i = bsRenderMesh + .nextSetBit(i + 1)) { + if (meshes[i].normalsTemp != null) { + meshes[i].setNormixes(meshes[i].normalsTemp); + meshes[i].normalsTemp = null; + } else if (meshes[i].normixes == null) { + meshes[i].initialize(Token.frontlit, null, null); + } + render1(meshes[i]); + } + } + /* void createMeshCone(int i, Point3f pointBegin, Point3f pointEnd, int mad) { Modified: branches/v13_0/Jmol/src/org/jmol/util/MeshSurface.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/util/MeshSurface.java 2012-10-08 00:29:41 UTC (rev 17638) +++ branches/v13_0/Jmol/src/org/jmol/util/MeshSurface.java 2012-10-08 11:01:46 UTC (rev 17639) @@ -40,6 +40,7 @@ public short[] polygonColixes; public short[] vertexColixes; public Tuple3f[] normals; // for export only + public Vector3f[] normalsTemp; // for BioshapeRenderer public int normalCount; // for export only protected int normixCount; public BitSet bsPolygons; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-08 00:29:41 UTC (rev 17638) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-08 11:01:46 UTC (rev 17639) @@ -11,6 +11,10 @@ ___version=13.0.7_dev +bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth + normals between segments (Alexander Rose) + also, hermiteLevel >= 6 now gives ellipse cross-section + recommended settings: set hermiteLevel 6;set ribbonAspectRatio 4 bug fix: JmolControls.js had broken radio buttons bug fix: DRAW {x y z} "title" can fail in multimodel cases with translucency This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-08 11:34:51
|
Revision: 17641 http://jmol.svn.sourceforge.net/jmol/?rev=17641&view=rev Author: hansonr Date: 2012-10-08 11:34:41 +0000 (Mon, 08 Oct 2012) Log Message: ----------- ___version=13.0.7_dev bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine) Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-10-08 11:02:02 UTC (rev 17640) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-10-08 11:34:41 UTC (rev 17641) @@ -14315,37 +14315,36 @@ || type.equals("VIBRATION")) { type = (fileName != null && fileName.indexOf(".") >= 0 ? fileName .substring(fileName.lastIndexOf(".") + 1).toUpperCase() : "JPG"); - if (type.equals("MNU")) - type = "MENU"; - else if (type.equals("WRL") || type.equals("VRML")) { - type = "Vrml"; - isExport = true; - } else if (type.equals("X3D")) { - type = "X3d"; - isExport = true; - } else if (type.equals("IDTF")) { - type = "Idtf"; - isExport = true; - } else if (type.equals("MA")) { - type = "Maya"; - isExport = true; - } else if (type.equals("OBJ")) { - type = "Obj"; - isExport = true; - } else if (type.equals("JVXL")) { - type = "ISOSURFACE"; - } else if (type.equals("XJVXL")) { - type = "ISOSURFACE"; - } else if (type.equals("JMOL")) { - type = "ZIPALL"; - } else if (type.equals("HIS")) { - type = "HISTORY"; - } } + if (type.equals("MNU")) { + type = "MENU"; + } else if (type.equals("WRL") || type.equals("VRML")) { + type = "Vrml"; + isExport = true; + } else if (type.equals("X3D")) { + type = "X3d"; + isExport = true; + } else if (type.equals("IDTF")) { + type = "Idtf"; + isExport = true; + } else if (type.equals("MA")) { + type = "Maya"; + isExport = true; + } else if (type.equals("OBJ")) { + type = "Obj"; + isExport = true; + } else if (type.equals("JVXL")) { + type = "ISOSURFACE"; + } else if (type.equals("XJVXL")) { + type = "ISOSURFACE"; + } else if (type.equals("JMOL")) { + type = "ZIPALL"; + } else if (type.equals("HIS")) { + type = "HISTORY"; + } if (type.equals("COORD")) - type = (fileName != null && fileName.indexOf(".") >= 0 ? - fileName.substring(fileName.lastIndexOf(".") + 1) - .toUpperCase() : "XYZ"); + type = (fileName != null && fileName.indexOf(".") >= 0 ? fileName + .substring(fileName.lastIndexOf(".") + 1).toUpperCase() : "XYZ"); isImage = Parser.isOneOf(type, "GIF;JPEG64;JPEG;JPG64;JPG;PPM;PNG;PNGJ;PNGT;SCENE"); if (scripts != null) { @@ -14428,7 +14427,8 @@ if ("?".equals(fileName)) fileName = "?Jmol." + viewer.getParameter("_fileType"); } else if ((data == "SDF" || data == "MOL" || data == "V2000" - || data == "V3000" || data == "CD") && isCoord) { + || data == "V3000" || data == "CD") + && isCoord) { data = viewer.getModelExtract("selected", true, data); if (data.startsWith("ERROR:")) bytes = data; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-08 11:02:02 UTC (rev 17640) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-08 11:34:41 UTC (rev 17641) @@ -11,6 +11,7 @@ ___version=13.0.7_dev +bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine) bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth normals between segments (Alexander Rose) also, hermiteLevel >= 6 now gives ellipse cross-section This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-11 15:08:03
|
Revision: 17651 http://jmol.svn.sourceforge.net/jmol/?rev=17651&view=rev Author: hansonr Date: 2012-10-11 15:07:56 +0000 (Thu, 11 Oct 2012) Log Message: ----------- ___version=13.0.7_dev bug fix: set ribbonAspectRatio improperly widens ribbon Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java 2012-10-11 15:07:48 UTC (rev 17650) +++ branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java 2012-10-11 15:07:56 UTC (rev 17651) @@ -532,6 +532,7 @@ wing1.set(wing); if (hermiteLevel < 6) { wing.scale(2f / aspectRatio); + wing1.sub(wing); } else { wing1.cross(norm, wing); wing1.normalize(); Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-11 15:07:48 UTC (rev 17650) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-11 15:07:56 UTC (rev 17651) @@ -11,6 +11,7 @@ ___version=13.0.7_dev +bug fix: set ribbonAspectRatio improperly widens ribbon bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine) bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth normals between segments (Alexander Rose) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-11 15:47:17
|
Revision: 17654 http://jmol.svn.sourceforge.net/jmol/?rev=17654&view=rev Author: hansonr Date: 2012-10-11 15:47:06 +0000 (Thu, 11 Oct 2012) Log Message: ----------- ___version=13.0.7_dev bug fix: export may be missing protein cartoon turn Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java 2012-10-11 15:46:31 UTC (rev 17653) +++ branches/v13_0/Jmol/src/org/jmol/shapebio/BioShapeRenderer.java 2012-10-11 15:47:06 UTC (rev 17654) @@ -304,10 +304,10 @@ diameterBeg = viewer.scaleToScreen(controlPointScreens[i].z, madBeg); diameterMid = viewer.scaleToScreen(monomers[i].getLeadAtom().screenZ, madMid); diameterEnd = viewer.scaleToScreen(controlPointScreens[iNext].z, madEnd); - if ((aspectRatio <= 0 || (!checkDiameter(diameterBeg) - && !checkDiameter(diameterMid) && !checkDiameter(diameterEnd)))) - return false; - return true; + return ((aspectRatio > 0 && (exportType == Graphics3D.EXPORT_CARTESIAN + || checkDiameter(diameterBeg) + || checkDiameter(diameterMid) + || checkDiameter(diameterEnd)))); } private boolean checkDiameter(int d) { Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-11 15:46:31 UTC (rev 17653) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-11 15:47:06 UTC (rev 17654) @@ -11,6 +11,7 @@ ___version=13.0.7_dev +bug fix: export may be missing protein cartoon turn bug fix: set ribbonAspectRatio improperly widens ribbon bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine) bug fix: cartoons (with hermiteLevel > 1) adjusted to have smooth This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-13 03:06:21
|
Revision: 17660 http://jmol.svn.sourceforge.net/jmol/?rev=17660&view=rev Author: hansonr Date: 2012-10-13 03:06:14 +0000 (Sat, 13 Oct 2012) Log Message: ----------- ___version=13.0.7_dev bug fix: set multipleBondSpacing 0.35 not compatible with P=O, S=O or O=C=O Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shape/SticksRenderer.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shape/SticksRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shape/SticksRenderer.java 2012-10-13 03:03:10 UTC (rev 17659) +++ branches/v13_0/Jmol/src/org/jmol/shape/SticksRenderer.java 2012-10-13 03:06:14 UTC (rev 17660) @@ -243,11 +243,9 @@ boolean isEndOn = (dx == 0 && dy == 0); if (isEndOn && lineBond) return; - boolean doFixedSpacing = (bondOrder > 1 - && multipleBondSpacing > 0 - && (viewer.getHybridizationAndAxes(atomA.index, z, x, "pz") != null - || viewer.getHybridizationAndAxes(atomB.index, z, x, "pz") != null) - && !Float.isNaN(x.x)); + boolean doFixedSpacing = (bondOrder > 1 && multipleBondSpacing > 0); + boolean isPiBonded = doFixedSpacing && (viewer.getHybridizationAndAxes(atomA.index, z, x, "pz") != null || viewer + .getHybridizationAndAxes(atomB.index, z, x, "pz") != null) && !Float.isNaN(x.x); if (isEndOn && !doFixedSpacing) { // end-on view int space = width / 8 + 3; @@ -267,9 +265,18 @@ return; } if (doFixedSpacing) { + if (!isPiBonded) // obscure point + z.set((float) Math.PI, (float) Math.E, (float) (Math.PI * Math.E)); x.sub(atomB, atomA); y.cross(x, z); y.normalize(); + if (Float.isNaN(y.x)) { + // in case x and z are parallel (O=C=O) + z.set((float) Math.PI, (float) Math.E, (float) (Math.PI * Math.E)); + y.cross(x, z); + y.cross(y, x); + y.normalize(); + } y.scale(multipleBondSpacing); x.set(y); x.scale((bondOrder - 1) / 2f); Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-13 03:03:10 UTC (rev 17659) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-13 03:06:14 UTC (rev 17660) @@ -11,6 +11,7 @@ ___version=13.0.7_dev +bug fix: set multipleBondSpacing 0.35 not compatible with P=O, S=O or O=C=O bug fix: export may be missing protein cartoon turn bug fix: set ribbonAspectRatio improperly widens ribbon bug fix: write OBJ xxx.obj not working (but write xxx.obj is fine) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-18 22:46:55
|
Revision: 17671 http://jmol.svn.sourceforge.net/jmol/?rev=17671&view=rev Author: hansonr Date: 2012-10-18 22:46:49 +0000 (Thu, 18 Oct 2012) Log Message: ----------- ___version=13.0.8_dev bug fix: MRC surface file reader with symmetry error Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java 2012-10-18 14:04:08 UTC (rev 17670) +++ branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java 2012-10-18 22:46:49 UTC (rev 17671) @@ -203,7 +203,7 @@ } } - for (int i = 0; i < nsymbt; i++) { + for (int i = 0; i < nsymbt; i += 80) { long position = binarydoc.getPosition(); String s = binarydoc.readString(80).trim(); if (s.indexOf('\0') != s.lastIndexOf('\0')) { Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-18 14:04:08 UTC (rev 17670) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-18 22:46:49 UTC (rev 17671) @@ -9,8 +9,12 @@ # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. -___version=13.0.7_dev +___version=13.0.8_dev +bug fix: MRC surface file reader with symmetry error + +___version=13.0.7 + bug fix: set multipleBondSpacing 0.35 not compatible with P=O, S=O or O=C=O bug fix: export may be missing protein cartoon turn bug fix: set ribbonAspectRatio improperly widens ribbon This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-19 02:51:57
|
Revision: 17674 http://jmol.svn.sourceforge.net/jmol/?rev=17674&view=rev Author: hansonr Date: 2012-10-19 02:51:51 +0000 (Fri, 19 Oct 2012) Log Message: ----------- ___version=13.0.8_dev bug fix: MRC file reader not setting default cutoff correctly Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java 2012-10-19 02:48:55 UTC (rev 17673) +++ branches/v13_0/Jmol/src/org/jmol/jvxl/readers/MrcBinaryReader.java 2012-10-19 02:51:51 UTC (rev 17674) @@ -224,7 +224,7 @@ getVectorsAndOrigin(); if (params.thePlane == null && (params.cutoffAutomatic || !Float.isNaN(params.sigma))) { - float sigma = (Float.isNaN(params.sigma) ? 1 : params.sigma); + float sigma = (params.sigma < 0 || Float.isNaN(params.sigma) ? 1 : params.sigma); params.cutoff = rmsDeviation * sigma + dmean; Logger.info("Cutoff set to (mean + rmsDeviation*" + sigma + " = " + params.cutoff + ")\n"); } Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-19 02:48:55 UTC (rev 17673) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-19 02:51:51 UTC (rev 17674) @@ -11,6 +11,7 @@ ___version=13.0.8_dev +bug fix: MRC file reader not setting default cutoff correctly bug fix: MRC surface file reader with symmetry error ___version=13.0.7 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-10-28 03:24:13
|
Revision: 17688 http://jmol.svn.sourceforge.net/jmol/?rev=17688&view=rev Author: hansonr Date: 2012-10-28 03:24:04 +0000 (Sun, 28 Oct 2012) Log Message: ----------- ___version=13.0.8 FOR RELEASE code: clearing font cache upon zap. bug fix: boundbox $pmeshID, center $pmeshID, and zoomto $pmeshID not implemented bug fix: try/catch not working when embedded in another context bug fix: JmolData not producing output for PRINT commands bug fix: JmolData setting haveDisplay true, then failing to get mouse manager bug fix: MRC file reader not setting default cutoff correctly bug fix: MRC surface file reader with symmetry error Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/g3d/Graphics3D.java branches/v13_0/Jmol/src/org/jmol/script/ScriptContext.java branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties branches/v13_0/Jmol/src/org/jmol/viewer/TransformManager.java branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java Modified: branches/v13_0/Jmol/src/org/jmol/g3d/Graphics3D.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/g3d/Graphics3D.java 2012-10-28 03:13:01 UTC (rev 17687) +++ branches/v13_0/Jmol/src/org/jmol/g3d/Graphics3D.java 2012-10-28 03:24:04 UTC (rev 17688) @@ -829,7 +829,7 @@ boolean isClipped = x < r || x + r >= width || y < r || y + r >= height; if (isClipped && isClippedXY(diameter, x, y)) return; - if (colixRing != 0 && setColix(colixRing)) { + if (colixRing != 0) { if (isClipped) circle3d.plotCircleCenteredClipped(x, y, z, diameter); else Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptContext.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptContext.java 2012-10-28 03:13:01 UTC (rev 17687) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptContext.java 2012-10-28 03:24:04 UTC (rev 17688) @@ -48,6 +48,7 @@ public StringBuffer outputBuffer; public Map<String, ScriptVariable> contextVariables; public boolean isFunction; + public boolean isTryCatch; public boolean isStateScript; public String errorMessage; public String errorMessageUntranslated; Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-10-28 03:13:01 UTC (rev 17687) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2012-10-28 03:24:04 UTC (rev 17688) @@ -547,8 +547,10 @@ e.instructionDispatchLoop(false); } catch (Exception ex) { viewer.setStringProperty("_errormessage", "" + ex); - Logger.error("Error evaluating context"); - ex.printStackTrace(); + if (e.thisContext == null) { + Logger.error("Error evaluating context"); + ex.printStackTrace(); + } return false; } return true; @@ -2057,6 +2059,7 @@ pushContext(null); boolean isTry = (function.tok == Token.trycmd); thisContext.isFunction = !isTry; + thisContext.isTryCatch = isTry; functionName = name; if (function instanceof ParallelProcessor) { @@ -3050,11 +3053,11 @@ return; } String s = getScriptContext().getContextTrace(null, true).toString(); - while (thisContext != null) + while (thisContext != null && !thisContext.isTryCatch) popContext(false, false); message += s; this.untranslated += s; - if (isSyntaxCheck + if (thisContext != null || isSyntaxCheck || msg.indexOf("file recognized as a script file:") >= 0) return; Logger.error("eval ERROR: " + toString()); @@ -10345,6 +10348,7 @@ Integer.valueOf(modelIndex) }; return (getShapeProperty(JmolConstants.SHAPE_DRAW, "getCenter", data) || getShapeProperty(JmolConstants.SHAPE_ISOSURFACE, "getCenter", data) + || getShapeProperty(JmolConstants.SHAPE_PMESH, "getCenter", data) || getShapeProperty(JmolConstants.SHAPE_CONTACT, "getCenter", data) || getShapeProperty(JmolConstants.SHAPE_MO, "getCenter", data) ? (Point3f) data[2] : null); @@ -10354,6 +10358,7 @@ Object[] data = new Object[] { id, null, null }; return (getShapeProperty(JmolConstants.SHAPE_ISOSURFACE, "getBoundingBox", data) + || getShapeProperty(JmolConstants.SHAPE_PMESH, "getBoundingBox", data) || getShapeProperty(JmolConstants.SHAPE_CONTACT, "getBoundingBox", data) || getShapeProperty(JmolConstants.SHAPE_MO, "getBoundingBox", data) ? (Point3f[]) data[2] : null); Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-28 03:13:01 UTC (rev 17687) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-10-28 03:24:04 UTC (rev 17688) @@ -9,8 +9,13 @@ # Don't use ___ in your text, as that is the key for stripping out # the information saved in the JAR version of this file. -___version=13.0.8_dev +___version=13.0.8 +code: clearing font cache upon zap. +bug fix: boundbox $pmeshID, center $pmeshID, and zoomto $pmeshID not implemented +bug fix: try/catch not working when embedded in another context +bug fix: JmolData not producing output for PRINT commands +bug fix: JmolData setting haveDisplay true, then failing to get mouse manager bug fix: MRC file reader not setting default cutoff correctly bug fix: MRC surface file reader with symmetry error Modified: branches/v13_0/Jmol/src/org/jmol/viewer/TransformManager.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/TransformManager.java 2012-10-28 03:13:01 UTC (rev 17687) +++ branches/v13_0/Jmol/src/org/jmol/viewer/TransformManager.java 2012-10-28 03:24:04 UTC (rev 17688) @@ -162,6 +162,7 @@ depthPlane = null; zSlabPoint = null; resetNavigationPoint(true); + Text3D.clearFontCache(); } String getState(StringBuffer sfunc) { Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java 2012-10-28 03:13:01 UTC (rev 17687) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java 2012-10-28 03:24:04 UTC (rev 17688) @@ -353,7 +353,7 @@ apiPlatform.setViewer(this, display); g3d = new Graphics3D(apiPlatform); haveDisplay = (display != null && !isHeadless() && commandOptions - .indexOf("-n") < 0); + .indexOf("-n") < 0 && !commandOptions.startsWith("JmolData")); mustRender = haveDisplay; if (!haveDisplay) display = null; @@ -7031,7 +7031,7 @@ public void showString(String str, boolean isPrint) { if (isScriptQueued && (!isSilent || isPrint)) - Logger.info(str); + Logger.warn(str); scriptEcho(str); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-12 15:45:36
|
Revision: 17714 http://jmol.svn.sourceforge.net/jmol/?rev=17714&view=rev Author: hansonr Date: 2012-11-12 15:45:25 +0000 (Mon, 12 Nov 2012) Log Message: ----------- bug fix: select resno=@{n+3} fails in 12.2, 13.0, and 13.1 Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java 2012-11-12 15:39:10 UTC (rev 17713) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java 2012-11-12 15:45:25 UTC (rev 17714) @@ -927,7 +927,7 @@ } addTokenToPostfix(theToken); if (theToken.tok == Token.define) - return clauseDefine(false, false); + return clauseDefine(true, false); return true; } Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-12 15:39:10 UTC (rev 17713) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-12 15:45:25 UTC (rev 17714) @@ -11,6 +11,8 @@ ___version=13.0.9_dev +bug fix: select resno=@{n+3} fails in 12.2, 13.0, and 13.1 + ============================================================================= version=13.0.8 @@ -23,8 +25,6 @@ bug fix: MRC file reader not setting default cutoff correctly bug fix: MRC surface file reader with symmetry error -============================================================================= - version=13.0.7 bug fix: set multipleBondSpacing 0.35 not compatible with P=O, S=O or O=C=O This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-12 23:53:27
|
Revision: 17716 http://jmol.svn.sourceforge.net/jmol/?rev=17716&view=rev Author: hansonr Date: 2012-11-12 23:53:20 +0000 (Mon, 12 Nov 2012) Log Message: ----------- ___version=13.0.9_dev bug fix: set picking draw no longer works in Jmol 13.0 or 13.1 Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java branches/v13_0/Jmol/src/org/jmol/shapespecial/Draw.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java 2012-11-12 22:32:01 UTC (rev 17715) +++ branches/v13_0/Jmol/src/org/jmol/shape/Mesh.java 2012-11-12 23:53:20 UTC (rev 17716) @@ -139,7 +139,7 @@ lattice = null; mat4 = null; normixes = null; - scale3d = 1; + scale3d = 0; polygonIndexes = null; scale = 1; showContourLines = false; Modified: branches/v13_0/Jmol/src/org/jmol/shapespecial/Draw.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapespecial/Draw.java 2012-11-12 22:32:01 UTC (rev 17715) +++ branches/v13_0/Jmol/src/org/jmol/shapespecial/Draw.java 2012-11-12 23:53:20 UTC (rev 17716) @@ -1226,6 +1226,8 @@ bsMoved.set(k); mesh.vertices[k].add(move); } + if (mesh.altVertices != null) + mesh.recalcAltVertices = true; mesh.setCenters(); } Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-12 22:32:01 UTC (rev 17715) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-12 23:53:20 UTC (rev 17716) @@ -11,6 +11,7 @@ ___version=13.0.9_dev +bug fix: set picking draw no longer works in Jmol 13.0 or 13.1 bug fix: select resno=@{n+3} fails in 12.2, 13.0, and 13.1 ============================================================================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-13 19:02:30
|
Revision: 17720 http://jmol.svn.sourceforge.net/jmol/?rev=17720&view=rev Author: hansonr Date: 2012-11-13 19:02:20 +0000 (Tue, 13 Nov 2012) Log Message: ----------- ___version=13.0.9_dev bug fix: UTF files with BOM (byte order marker) present not read correctly bug fix: UTF files within GZIP or ZIP files not read correctly Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/script/ScriptCompiler.java branches/v13_0/Jmol/src/org/jmol/util/ZipUtil.java branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptCompiler.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptCompiler.java 2012-11-13 19:01:55 UTC (rev 17719) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptCompiler.java 2012-11-13 19:02:20 UTC (rev 17720) @@ -175,6 +175,12 @@ * @return cleaned script */ private String cleanScriptComments(String script) { + if (script.indexOf('\u201C') >= 0) + script = script.replace('\u201C', '"'); + if (script.indexOf('\u201D') >= 0) + script = script.replace('\u201D', '"'); + if (script.indexOf('\uFEFF') >= 0) + script = script.replace('\uFEFF', ' '); int pt = (script.indexOf("\1##")); if (pt >= 0) { // these are for jmolConsole and scriptEditor @@ -255,7 +261,6 @@ private boolean compile0(boolean isFull) { vFunctionStack = new ArrayList<ScriptFunction>(); htUserFunctions = new Hashtable<String, Boolean>(); - script = script.replace('\u201C', '"').replace('\u201D', '"'); script = cleanScriptComments(script); ichToken = script.indexOf(Viewer.STATE_VERSION_STAMP); isStateScript = (ichToken >= 0); Modified: branches/v13_0/Jmol/src/org/jmol/util/ZipUtil.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/util/ZipUtil.java 2012-11-13 19:01:55 UTC (rev 17719) +++ branches/v13_0/Jmol/src/org/jmol/util/ZipUtil.java 2012-11-13 19:02:20 UTC (rev 17720) @@ -27,9 +27,13 @@ import java.io.BufferedInputStream; +import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; //import java.net.URL; //import java.net.URLConnection; import java.util.ArrayList; @@ -39,8 +43,60 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +public class ZipUtil { + + + private static Encoding getUTFEncodingForStream(InputStream is) throws IOException { + byte[] abMagic = new byte[4]; + abMagic[3] = 1; + is.mark(5); + is.read(abMagic, 0, 4); + is.reset(); + return getUTFEncoding(abMagic); + } -public class ZipUtil { + public static String fixUTF(byte[] bytes) { + Encoding encoding = getUTFEncoding(bytes); + if (encoding != Encoding.NONE) + try { + String s = new String(bytes, encoding.name().replace('_', '-')); + switch (encoding) { + case UTF8: + case UTF_16BE: + case UTF_16LE: + // extra byte at beginning removed + s = s.substring(1); + break; + default: + break; + } + return s; + } catch (UnsupportedEncodingException e) { + System.out.println(e); + } + return new String(bytes); + } + + private enum Encoding { + NONE, UTF8, UTF_16BE, UTF_16LE, UTF_32BE, UTF_32LE + } + private static Encoding getUTFEncoding(byte[] bytes) { + if (bytes.length >= 3 && bytes[0] == (byte) 0xEF && bytes[1] == (byte) 0xBB && bytes[2] == (byte) 0xBF) + return Encoding.UTF8; + if (bytes.length >= 4 && bytes[0] == (byte) 0 && bytes[1] == (byte) 0 + && bytes[2] == (byte) 0xFE && bytes[3] == (byte) 0xFF) + return Encoding.UTF_32BE; + if (bytes.length >= 4 && bytes[0] == (byte) 0xFF && bytes[1] == (byte) 0xFE + && bytes[2] == (byte) 0 && bytes[3] == (byte) 0) + return Encoding.UTF_32LE; + if (bytes.length >= 2 && bytes[0] == (byte) 0xFF && bytes[1] == (byte) 0xFE) + return Encoding.UTF_16LE; + if (bytes.length >= 2 && bytes[0] == (byte) 0xFE && bytes[1] == (byte) 0xFF) + return Encoding.UTF_16BE; + return Encoding.NONE; + + } + /* public static boolean isZipFile(String filePath) { try { @@ -174,7 +230,7 @@ str = getBinaryStringForBytes(bytes); name += ":asBinaryString"; } else { - str = new String(bytes); + str = fixUTF(bytes); } str = "BEGIN Directory Entry " + name + "\n" + str + "\nEND Directory Entry " + name + "\n"; @@ -249,7 +305,7 @@ ret.append(Integer.toHexString(bytes[i] & 0xFF)).append(' '); return ret.toString(); } - return new String(bytes); + return fixUTF(bytes); } } catch (Exception e) { } @@ -330,12 +386,13 @@ private static String getZipEntryAsString(InputStream is) throws IOException { - StringBuffer sb = new StringBuffer(); - byte[] buf = new byte[1024]; - int len; - while (is.available() >= 1 && (len = is.read(buf)) > 0) - sb.append(new String(buf, 0, len)); - return sb.toString(); + return fixUTF(getStreamBytes(is, -1)); +// StringBuffer sb = new StringBuffer(); +// byte[] buf = new byte[1024]; +// int len; +// while (is.available() >= 1 && (len = is.read(buf)) > 0) +// sb.append(new String(buf, 0, len)); +// return sb.toString(); } public static byte[] getStreamBytes(InputStream is, long n) throws IOException { @@ -488,5 +545,24 @@ Logger.info("ZipUtil cached " + n + " bytes from " + fileName); return listing.toString(); } + + /** + * @param is + * @return Reader + * @throws IOException + */ + public static BufferedReader getInputStreamReader(InputStream is) + throws IOException { + Encoding encoding = getUTFEncodingForStream(is); + if (encoding == Encoding.NONE) + return new BufferedReader(new InputStreamReader(is, "UTF-8")); + byte[] bytes = getStreamBytes(is, -1); + is.close(); + return getBufferedReaderForString(fixUTF(bytes)); + } + + public static BufferedReader getBufferedReaderForString(String string) { + return new BufferedReader(new StringReader(string)); + } } Modified: branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java 2012-11-13 19:01:55 UTC (rev 17719) +++ branches/v13_0/Jmol/src/org/jmol/viewer/FileManager.java 2012-11-13 19:02:20 UTC (rev 17720) @@ -177,7 +177,7 @@ if (zipDirectory.indexOf("JmolManifest") >= 0) return "Jmol"; return viewer.getModelAdapter().getFileTypeName( - getBufferedReaderForString(zipDirectory)); + ZipUtil.getBufferedReaderForString(zipDirectory)); } if (br instanceof String[]) { return ((String[]) br)[0]; @@ -185,10 +185,6 @@ return null; } - static BufferedReader getBufferedReaderForString(String string) { - return new BufferedReader(new StringReader(string)); - } - private String getZipDirectoryAsString(String fileName) { return ZipUtil .getZipDirectoryAsStringAndClose((BufferedInputStream) getBufferedInputStreamOrErrorMessageFromName( @@ -287,7 +283,7 @@ boolean isAddH = (strModel.indexOf(JmolConstants.ADD_HYDROGEN_TITLE) >= 0); String[] fnames = (isAddH ? getFileInfo() : null); FileReader fileReader = new FileReader("string", "string", "string", null, - getBufferedReaderForString(strModel), htParams, isAppend); + ZipUtil.getBufferedReaderForString(strModel), htParams, isAppend); fileReader.run(); if (fnames != null) setFileInfo(fnames); @@ -568,7 +564,7 @@ if (spardirCache == null) spardirCache = new Hashtable<String, byte[]>(); spardirCache.put(name00.replace('\\','/'), s.getBytes()); - return getBufferedReaderForString(s); + return ZipUtil.getBufferedReaderForString(s); } // continuing... // here, for example, for an SPT file load that is not just a type check @@ -598,7 +594,7 @@ } while (ZipUtil.isGzip(bis)); } else if (CompoundDocument.isCompoundDocument(bis)) { CompoundDocument doc = new CompoundDocument(bis); - return getBufferedReaderForString(doc.getAllData("Molecule", "Input") + return ZipUtil.getBufferedReaderForString(doc.getAllData("Molecule", "Input") .toString()); } else { bis = ZipUtil.checkPngZipStream(bis); @@ -612,13 +608,13 @@ String s = (String) ZipUtil.getZipFileContents(bis, subFileList, 1, false); bis.close(); - return getBufferedReaderForString(s); + return ZipUtil.getBufferedReaderForString(s); } } if (asInputStream) return bis; - return new BufferedReader(new InputStreamReader(bis)); + return ZipUtil.getInputStreamReader(bis); } catch (Exception ioe) { return ioe.getMessage(); } @@ -830,7 +826,6 @@ } br.close(); data[1] = sb.toString(); - fixUnicode(data, 1); return true; } catch (Exception ioe) { data[1] = ioe.getMessage(); @@ -838,59 +833,6 @@ } } - private enum Encoding { - NONE, UTF8, UTF_16BE, UTF_16LE, UTF_32BE, UTF_32LE - } - private static void fixUnicode(String[] data, int i) { - String s = data[i]; - Encoding encoding = Encoding.NONE; - // try { - // System.out.println("16 " + new String(s.getBytes(), "UTF-16")); - // System.out.println("16LE " + new String(s.getBytes(), "UTF-16LE")); - // System.out.println("16BE " + new String(s.getBytes(), "UTF-16BE")); - // } catch (UnsupportedEncodingException e1) { - // // ignore - // } - - - if (s.indexOf("\357\273\277") == 0) //EF BB BF - encoding = Encoding.UTF8; - else if (s.indexOf("\0\0\376\377") == 0) // 0 0 FE FF - encoding = Encoding.UTF_32BE; - else if (s.indexOf("\377\376\0\0") == 0) // FF FE 0 0 - encoding = Encoding.UTF_32LE; - else if (s.indexOf("\377\376") == 0) // FF FE - encoding = Encoding.UTF_16LE; - else if (s.indexOf("\376\377") == 0) // FE FF - encoding = Encoding.UTF_16BE; - if (encoding == Encoding.NONE) - return; - Logger.info("FileManager found encoding " + encoding.name()); - try { - s = new String(s.getBytes(), encoding.name().replace('_', '-')); - switch (encoding) { - case UTF8: - case UTF_16BE: - // extra byte at beginning removed - s = s.substring(1); - break; - case UTF_16LE: - // extra bytes at beginning and end removed - s = s.substring(1, s.length() - 1); - break; - default: - break; - } - } catch (UnsupportedEncodingException e) { - System.out.println(e); - } - data[i] = s; -// System.out.println(s); -// for (int ii = 0; ii < s.length(); ii++) -// System.out.println(ii + " '" + s.charAt(ii) + "' " -// + Character.codePointAt(s, ii)); - } - Object getFileAsImage(String name, String[] retFileNameOrError) { if (name == null) { retFileNameOrError[0] = ""; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-13 19:01:55 UTC (rev 17719) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-13 19:02:20 UTC (rev 17720) @@ -11,6 +11,8 @@ ___version=13.0.9_dev +bug fix: UTF files with BOM (byte order marker) present not read correctly +bug fix: UTF files within GZIP or ZIP files not read correctly bug fix: set picking draw no longer works in Jmol 13.0 or 13.1 bug fix: select resno=@{n+3} fails in 12.2, 13.0, and 13.1 Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java 2012-11-13 19:01:55 UTC (rev 17719) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Viewer.java 2012-11-13 19:02:20 UTC (rev 17720) @@ -87,6 +87,7 @@ import org.jmol.util.Parser; import org.jmol.util.Rectangle; import org.jmol.util.SurfaceFileTyper; +import org.jmol.util.ZipUtil; import org.jmol.util.Measure; import org.jmol.util.Quaternion; @@ -2122,7 +2123,7 @@ Map<String, Object> htParams = new Hashtable<String, Object>(); htParams.put("modelOnly", Boolean.TRUE); model = getModelAdapter().getAtomSetCollectionReader("ligand", null, - FileManager.getBufferedReaderForString(data), htParams); + ZipUtil.getBufferedReaderForString(data), htParams); isError = (model instanceof String); if (!isError) { model = getModelAdapter().getAtomSetCollection(model); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-15 16:06:22
|
Revision: 17723 http://jmol.svn.sourceforge.net/jmol/?rev=17723&view=rev Author: hansonr Date: 2012-11-15 16:06:12 +0000 (Thu, 15 Nov 2012) Log Message: ----------- ___version=13.0.9_dev bug fix: CASTEP density reader fails to reset origin to 0 0 0 in mapping Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/jvxl/readers/CastepDensityReader.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/jvxl/readers/CastepDensityReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/jvxl/readers/CastepDensityReader.java 2012-11-15 16:04:14 UTC (rev 17722) +++ branches/v13_0/Jmol/src/org/jmol/jvxl/readers/CastepDensityReader.java 2012-11-15 16:06:12 UTC (rev 17723) @@ -70,6 +70,7 @@ voxelCounts[1] = (nPointsY = parseInt()) + 1; voxelCounts[2] = (nPointsZ = parseInt()) + 1; nFilePoints = (nPointsX++) * (nPointsY++) * (nPointsZ++); + volumetricOrigin.set(0, 0, 0); for (int i = 0; i < 3; i++) { volumetricVectors[i].scale(1f/(voxelCounts[i] - 1)); if (isAnisotropic) Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-15 16:04:14 UTC (rev 17722) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-15 16:06:12 UTC (rev 17723) @@ -11,6 +11,7 @@ ___version=13.0.9_dev +bug fix: CASTEP density reader fails to reset origin to 0 0 0 in mapping bug fix: UTF files with BOM (byte order marker) present not read correctly bug fix: UTF files within GZIP or ZIP files not read correctly bug fix: set picking draw no longer works in Jmol 13.0 or 13.1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-20 02:28:23
|
Revision: 17728 http://jmol.svn.sourceforge.net/jmol/?rev=17728&view=rev Author: hansonr Date: 2012-11-20 02:28:15 +0000 (Tue, 20 Nov 2012) Log Message: ----------- ___version=13.0.9_dev bug fix: ellipsoid rendering does not allow axes less than 0.2 Angstroms (changed to 0.02) Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java 2012-11-19 02:48:45 UTC (rev 17727) +++ branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java 2012-11-20 02:28:15 UTC (rev 17728) @@ -204,8 +204,8 @@ factoredLengths[i] = ellipsoid.lengths[i] * ellipsoid.scale; if (Float.isNaN(factoredLengths[i])) isOK = false; - else if (factoredLengths[i] < 0.2f) - factoredLengths[i] = 0.2f; // for extremely flat ellipsoids, we need at least some length + else if (factoredLengths[i] < 0.02f) + factoredLengths[i] = 0.02f; // for extremely flat ellipsoids, we need at least some length } axes = ellipsoid.vectors; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-19 02:48:45 UTC (rev 17727) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-20 02:28:15 UTC (rev 17728) @@ -11,6 +11,7 @@ ___version=13.0.9_dev +bug fix: ellipsoid rendering does not allow axes less than 0.2 Angstroms (changed to 0.02) bug fix: CASTEP density reader fails to reset origin to 0 0 0 in mapping bug fix: UTF files with BOM (byte order marker) present not read correctly bug fix: UTF files within GZIP or ZIP files not read correctly This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-26 17:19:38
|
Revision: 17777 http://jmol.svn.sourceforge.net/jmol/?rev=17777&view=rev Author: hansonr Date: 2012-11-26 17:19:26 +0000 (Mon, 26 Nov 2012) Log Message: ----------- ellipsoid command fixes Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/shapespecial/Ellipsoids.java branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/shapespecial/Ellipsoids.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapespecial/Ellipsoids.java 2012-11-26 17:17:43 UTC (rev 17776) +++ branches/v13_0/Jmol/src/org/jmol/shapespecial/Ellipsoids.java 2012-11-26 17:19:26 UTC (rev 17777) @@ -109,6 +109,7 @@ String id = (String) value; ellipsoid = new Ellipsoid(id, viewer.getCurrentModelIndex()); htEllipsoids.put(id, ellipsoid); + haveEllipsoids = true; } return; } @@ -122,13 +123,14 @@ else if (ellipsoid.modelIndex == modelIndex) e.remove(); } + haveEllipsoids = !htEllipsoids.isEmpty(); ellipsoid = null; return; } if (ellipsoid != null) { - haveEllipsoids = true; if ("delete" == propertyName) { htEllipsoids.remove(ellipsoid.id); + haveEllipsoids = !htEllipsoids.isEmpty(); return; } if ("modelindex" == propertyName) { @@ -258,7 +260,7 @@ } private void getStateID(StringBuffer sb) { - if (!isActive || madset == null) + if (!haveEllipsoids) return; Iterator<Ellipsoid> e = htEllipsoids.values().iterator(); Vector3f v1 = new Vector3f(); @@ -282,8 +284,10 @@ } private void getStateAtoms(StringBuffer sb) { + if (madset == null) + return; for (int ii = 0; ii < 3; ii++) { - if (madset == null || madset[ii] == null) + if (madset[ii] == null) continue; StateManager.appendCmd(sb, "Ellipsoids set " + (ii + 1) + "\n"); Map<String, BitSet> temp = new Hashtable<String, BitSet>(); @@ -307,6 +311,8 @@ * set all fixed objects visible; others based on model being displayed * */ + if (!haveEllipsoids) + return; Iterator<Ellipsoid> e = htEllipsoids.values().iterator(); while (e.hasNext()) { Ellipsoid ellipsoid = e.next(); Modified: branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java 2012-11-26 17:17:43 UTC (rev 17776) +++ branches/v13_0/Jmol/src/org/jmol/shapespecial/EllipsoidsRenderer.java 2012-11-26 17:19:26 UTC (rev 17777) @@ -218,7 +218,11 @@ setAxes(1.0f); if (g3d.isClippedXY(dx + dx, atom.screenX, atom.screenY)) return; - diameter = viewer.scaleToScreen(atom.screenZ, wireframeOnly ? 1 : diameter0); + renderOne(atom.screenZ, isOK); + } + + private void renderOne(int screenZ, boolean isOK) { + diameter = viewer.scaleToScreen(screenZ, wireframeOnly ? 1 : diameter0); if (!isOK || drawBall) { renderBall(); if (!isOK) @@ -229,19 +233,20 @@ if (drawAxes) renderAxes(); if (drawArcs) - renderArcs(atom); + renderArcs(); g3d.setColix(colix); } } else { if (drawAxes) renderAxes(); if (drawArcs) - renderArcs(atom); + renderArcs(); } if (drawDots) - renderDots(atom); + renderDots(); } + private void setMatrices() { Quadric.setEllipsoidMatrix(axes, factoredLengths, v1, mat); // make this screen coordinates to ellisoidal coordinates @@ -311,7 +316,7 @@ } - private void renderDots(Point3f ptAtom) { + private void renderDots() { for (int i = 0; i < coords.length;) { float fx = (float) Math.random(); float fy = (float) Math.random(); @@ -321,7 +326,7 @@ if (Float.isNaN(fz)) continue; fz = (Math.random() > 0.5 ? -1 : 1) * fz; - pt1.scaleAdd(fx * factoredLengths[0], axes[0], ptAtom); + pt1.scaleAdd(fx * factoredLengths[0], axes[0], center); pt1.scaleAdd(fy * factoredLengths[1], axes[1], pt1); pt1.scaleAdd(fz * factoredLengths[2], axes[2], pt1); viewer.transformPoint(pt1, s1); @@ -332,28 +337,28 @@ g3d.drawPoints(dotCount, coords, dotScale); } - private void renderArcs(Point3f ptAtom) { - if (g3d.drawEllipse(ptAtom, points[0], points[2], fillArc, wireframeOnly)) { - g3d.drawEllipse(ptAtom, points[2], points[5], fillArc, wireframeOnly); - g3d.drawEllipse(ptAtom, points[5], points[0], fillArc, wireframeOnly); + private void renderArcs() { + if (g3d.drawEllipse(center, points[0], points[2], fillArc, wireframeOnly)) { + g3d.drawEllipse(center, points[2], points[5], fillArc, wireframeOnly); + g3d.drawEllipse(center, points[5], points[0], fillArc, wireframeOnly); return; } for (int i = 1; i < 8; i += 2) { int pt = i*3; - renderArc(ptAtom, octants[pt], octants[pt + 1]); - renderArc(ptAtom, octants[pt + 1], octants[pt + 2]); - renderArc(ptAtom, octants[pt + 2], octants[pt]); + renderArc(octants[pt], octants[pt + 1]); + renderArc(octants[pt + 1], octants[pt + 2]); + renderArc(octants[pt + 2], octants[pt]); } } private boolean fillArc; private BitSet bsTemp = new BitSet(); - private void renderArc(Point3f ptAtom, int ptA, int ptB) { + private void renderArc(int ptA, int ptB) { v1.set(points[ptA]); - v1.sub(ptAtom); + v1.sub(center); v2.set(points[ptB]); - v2.sub(ptAtom); + v2.sub(center); float d1 = v1.length(); float d2 = v2.length(); v1.normalize(); @@ -365,7 +370,7 @@ if (!fillArc && !wireframeOnly) screens[6].set(s1); for (int i = 0, pt = 0; i < 18; i++, pt += 2) { - pt2.scaleAdd(cossin[pt] * d1, v1, ptAtom); + pt2.scaleAdd(cossin[pt] * d1, v1, center); pt2.scaleAdd(cossin[pt + 1] * d2, v2, pt2); viewer.transformPoint(pt2, s2); if (fillArc) @@ -400,7 +405,7 @@ colix = ellipsoid.colix; if (!g3d.setColix(colix)) return; - renderBall(); + renderOne(s0.z, true); } protected void renderBall() { Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-26 17:17:43 UTC (rev 17776) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-26 17:19:26 UTC (rev 17777) @@ -11,6 +11,8 @@ ___version=13.0.10_dev +bug fix: setEllipsoid... options not implemented for nonthermal ellipsoids in 13.0 or 13.1 + ============================================================================= version=13.0.9 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-11-29 22:54:52
|
Revision: 17780 http://jmol.svn.sourceforge.net/jmol/?rev=17780&view=rev Author: hansonr Date: 2012-11-29 22:54:43 +0000 (Thu, 29 Nov 2012) Log Message: ----------- ___version=13.0.10_dev bug fix: 13.0.9 breaks Gaussian reader, MagRes reader, NAME= load option broken in applet due to ref to jspecview.util.TextFormat Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java branches/v13_0/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java branches/v13_0/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java 2012-11-29 13:40:21 UTC (rev 17779) +++ branches/v13_0/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java 2012-11-29 22:54:43 UTC (rev 17780) @@ -30,7 +30,7 @@ import java.util.BitSet; import java.util.List; -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; import org.jmol.adapter.readers.molxyz.MolReader; import org.jmol.adapter.smarter.AtomSetCollectionReader; Modified: branches/v13_0/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2012-11-29 13:40:21 UTC (rev 17779) +++ branches/v13_0/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2012-11-29 22:54:43 UTC (rev 17780) @@ -35,7 +35,7 @@ import javax.vecmath.Vector3f; -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; import org.jmol.api.JmolAdapter; import org.jmol.util.ArrayUtil; Modified: branches/v13_0/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java 2012-11-29 13:40:21 UTC (rev 17779) +++ branches/v13_0/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java 2012-11-29 22:54:43 UTC (rev 17780) @@ -12,7 +12,7 @@ * @version 1.0 */ -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; import org.jmol.adapter.smarter.AtomSetCollectionReader; import org.jmol.adapter.smarter.Atom; Modified: branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java 2012-11-29 13:40:21 UTC (rev 17779) +++ branches/v13_0/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java 2012-11-29 22:54:43 UTC (rev 17780) @@ -46,7 +46,7 @@ import javax.vecmath.Point3f; import javax.vecmath.Vector3f; -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; /* * Notes 9/2006 Bob Hanson Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-29 13:40:21 UTC (rev 17779) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-11-29 22:54:43 UTC (rev 17780) @@ -11,6 +11,7 @@ ___version=13.0.10_dev +bug fix: 13.0.9 breaks Gaussian reader, MagRes reader, NAME= load option broken in applet due to ref to jspecview.util.TextFormat bug fix: setEllipsoid... options not implemented for nonthermal ellipsoids in 13.0 or 13.1 ============================================================================= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-12-06 03:19:15
|
Revision: 17787 http://jmol.svn.sourceforge.net/jmol/?rev=17787&view=rev Author: hansonr Date: 2012-12-06 03:19:07 +0000 (Thu, 06 Dec 2012) Log Message: ----------- ___version=13.0.10_dev bug fix: select *W does not work Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java 2012-12-03 13:51:51 UTC (rev 17786) +++ branches/v13_0/Jmol/src/org/jmol/script/ScriptCompilationTokenParser.java 2012-12-06 03:19:07 UTC (rev 17787) @@ -1054,7 +1054,7 @@ tok = tokPeek(); } if (tok == Token.colon || tok == Token.times || tok == Token.identifier - || tok == Token.x || tok == Token.y || tok == Token.z + || tok == Token.x || tok == Token.y || tok == Token.z || tok == Token.w || tok == Token.integer && !wasInteger) { if (!clauseChainSpec(tok)) return false; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-12-03 13:51:51 UTC (rev 17786) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-12-06 03:19:07 UTC (rev 17787) @@ -11,6 +11,7 @@ ___version=13.0.10_dev +bug fix: select *W does not work bug fix: !quit was not stopping animation and vibration bug fix: 13.0.9 breaks Gaussian reader, MagRes reader, NAME= load option broken in applet due to ref to jspecview.util.TextFormat bug fix: setEllipsoid... options not implemented for nonthermal ellipsoids in 13.0 or 13.1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-12-06 22:37:58
|
Revision: 17790 http://jmol.svn.sourceforge.net/jmol/?rev=17790&view=rev Author: hansonr Date: 2012-12-06 22:48:53 +0000 (Thu, 06 Dec 2012) Log Message: ----------- ___version=13.0.10_dev bug fix: PDB occupancies for first atoms may be 0.0 instead of 1.0 Modified Paths: -------------- branches/v13_0/Jmol/src/org/jmol/modelset/AtomCollection.java branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v13_0/Jmol/src/org/jmol/modelset/AtomCollection.java =================================================================== --- branches/v13_0/Jmol/src/org/jmol/modelset/AtomCollection.java 2012-12-06 16:56:07 UTC (rev 17789) +++ branches/v13_0/Jmol/src/org/jmol/modelset/AtomCollection.java 2012-12-06 22:48:53 UTC (rev 17790) @@ -728,6 +728,8 @@ if (occupancy == 100) return false; // 100 is the default; occupancies = new byte[atoms.length]; + for (int i = atoms.length; --i >= 0;) + occupancies[i] = 100; } occupancies[atomIndex] = (byte) (occupancy > 255 ? 255 : occupancy < 0 ? 0 : occupancy); return true; Modified: branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-12-06 16:56:07 UTC (rev 17789) +++ branches/v13_0/Jmol/src/org/jmol/viewer/Jmol.properties 2012-12-06 22:48:53 UTC (rev 17790) @@ -11,6 +11,7 @@ ___version=13.0.10_dev +bug fix: PDB occupancies for first atoms may be 0.0 instead of 1.0 bug fix: select *W does not work bug fix: !quit was not stopping animation and vibration bug fix: 13.0.9 breaks Gaussian reader, MagRes reader, NAME= load option broken in applet due to ref to jspecview.util.TextFormat This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |