From: <ha...@us...> - 2011-10-04 18:37:21
|
Revision: 16253 http://jmol.svn.sourceforge.net/jmol/?rev=16253&view=rev Author: hansonr Date: 2011-10-04 18:37:11 +0000 (Tue, 04 Oct 2011) Log Message: ----------- version=12.2.1_dev # CODE -- ?? Eclipse is refusing to set tabs to 2 spaces on this new project?? # bug fix: color isosurface {atomset} <color> does not work if isosurface has not already been mapped. Modified Paths: -------------- branches/v12_2/Jmol/src/org/jmol/shapesurface/Isosurface.java branches/v12_2/Jmol/src/org/jmol/shapesurface/IsosurfaceRenderer.java branches/v12_2/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v12_2/Jmol/src/org/jmol/shapesurface/Isosurface.java =================================================================== --- branches/v12_2/Jmol/src/org/jmol/shapesurface/Isosurface.java 2011-10-04 18:34:01 UTC (rev 16252) +++ branches/v12_2/Jmol/src/org/jmol/shapesurface/Isosurface.java 2011-10-04 18:37:11 UTC (rev 16253) @@ -198,416 +198,435 @@ //private boolean allowContourLines; boolean allowMesh = true; - @SuppressWarnings("unchecked") - @Override - public void setProperty(String propertyName, Object value, BitSet bs) { + @SuppressWarnings("unchecked") + @Override + public void setProperty(String propertyName, Object value, BitSet bs) { - //System.out.println("isosurface testing " + propertyName + " " + value + (propertyName == "token" ? " " + Token.nameOf(((Integer)value).intValue()) : "")); + // System.out.println("isosurface testing " + propertyName + " " + value + // + (propertyName == "token" ? " " + + // Token.nameOf(((Integer)value).intValue()) : "")); - //isosurface-only (no calculation required; no calc parameters to set) + // isosurface-only (no calculation required; no calc parameters to set) - if ("navigate" == propertyName) { - navigate(((Integer) value).intValue()); - return; - } - if ("delete" == propertyName) { - setPropertySuper(propertyName, value, bs); - if (!explicitID) - nLCAO = nUnnamed = 0; - currentMesh = thisMesh = null; - return; - } + if ("navigate" == propertyName) { + navigate(((Integer) value).intValue()); + return; + } + if ("delete" == propertyName) { + setPropertySuper(propertyName, value, bs); + if (!explicitID) + nLCAO = nUnnamed = 0; + currentMesh = thisMesh = null; + return; + } - if ("remapColor" == propertyName) { - if (thisMesh != null) { - thisMesh.remapColors((ColorEncoder) value, translucentLevel); - } - return; - } + if ("remapColor" == propertyName) { + if (thisMesh != null) { + thisMesh.remapColors((ColorEncoder) value, translucentLevel); + } + return; + } - if ("thisID" == propertyName) { - if (actualID != null) - value = actualID; - setPropertySuper("thisID", value, null); - return; - } + if ("thisID" == propertyName) { + if (actualID != null) + value = actualID; + setPropertySuper("thisID", value, null); + return; + } - if ("atomcolor" == propertyName) { - if (thisMesh != null) { - thisMesh.colorAtoms(Graphics3D.getColix(value), bs); - } - return; - } + if ("atomcolor" == propertyName) { + if (thisMesh != null) { + if (thisMesh.vertexSource == null) { + short colix = (!thisMesh.isColorSolid ? 0 : thisMesh.colix); + setProperty("init", null, null); + setProperty("map", Boolean.FALSE, null); + setProperty("property", new float[viewer.getAtomCount()], + null); + if (colix != 0) { + thisMesh.colorCommand = "color isosurface " + + Graphics3D.getHexCode(colix); + setProperty("color", new Integer(Graphics3D + .getArgb(colix)), null); + } + } + thisMesh.colorAtoms(Graphics3D.getColix(value), bs); + } + return; + } - if ("pointSize" == propertyName) { - if (thisMesh != null) { - thisMesh.volumeRenderPointSize = ((Float) value).floatValue(); - } - return; - } + if ("pointSize" == propertyName) { + if (thisMesh != null) { + thisMesh.volumeRenderPointSize = ((Float) value).floatValue(); + } + return; + } - if ("vertexcolor" == propertyName) { - if (thisMesh != null) { - thisMesh.colorVertices(Graphics3D.getColix(value), bs); - } - return; - } + if ("vertexcolor" == propertyName) { + if (thisMesh != null) { + thisMesh.colorVertices(Graphics3D.getColix(value), bs); + } + return; + } - if ("color" == propertyName) { - if (thisMesh != null) { - // thisMesh.vertexColixes = null; - thisMesh.isColorSolid = true; - thisMesh.polygonColixes = null; - thisMesh.colorEncoder = null; - thisMesh.vertexColorMap = null; - } else if (!TextFormat.isWild(previousMeshID)) { - for (int i = meshCount; --i >= 0;) { - // isomeshes[i].vertexColixes = null; - isomeshes[i].isColorSolid = true; - isomeshes[i].polygonColixes = null; - isomeshes[i].colorEncoder = null; - isomeshes[i].vertexColorMap = null; - } - } - setPropertySuper(propertyName, value, bs); - return; - } + if ("color" == propertyName) { + if (thisMesh != null) { + // thisMesh.vertexColixes = null; + thisMesh.isColorSolid = true; + thisMesh.polygonColixes = null; + thisMesh.colorEncoder = null; + thisMesh.vertexColorMap = null; + } else if (!TextFormat.isWild(previousMeshID)) { + for (int i = meshCount; --i >= 0;) { + // isomeshes[i].vertexColixes = null; + isomeshes[i].isColorSolid = true; + isomeshes[i].polygonColixes = null; + isomeshes[i].colorEncoder = null; + isomeshes[i].vertexColorMap = null; + } + } + setPropertySuper(propertyName, value, bs); + return; + } - if ("nocontour" == propertyName) { - // recontouring - if (thisMesh != null) { - thisMesh.deleteContours(); - } - return; - } - if ("fixed" == propertyName) { - isFixed = ((Boolean) value).booleanValue(); - setMesh(); - return; - } + if ("nocontour" == propertyName) { + // recontouring + if (thisMesh != null) { + thisMesh.deleteContours(); + } + return; + } + if ("fixed" == propertyName) { + isFixed = ((Boolean) value).booleanValue(); + setMesh(); + return; + } - if ("newObject" == propertyName) { - if (thisMesh != null) - thisMesh.clear(thisMesh.meshType, false); - return; - } + if ("newObject" == propertyName) { + if (thisMesh != null) + thisMesh.clear(thisMesh.meshType, false); + return; + } - if ("refreshTrajectories" == propertyName) { - for (int i = meshCount; --i >= 0;) - if (meshes[i].connections != null - && meshes[i].modelIndex == ((Integer) ((Object[]) value)[0]) - .intValue()) - meshes[i].updateCoordinates((Matrix4f) ((Object[]) value)[2], - (BitSet) ((Object[]) value)[1]); - return; - } + if ("refreshTrajectories" == propertyName) { + for (int i = meshCount; --i >= 0;) + if (meshes[i].connections != null + && meshes[i].modelIndex == ((Integer) ((Object[]) value)[0]) + .intValue()) + meshes[i].updateCoordinates( + (Matrix4f) ((Object[]) value)[2], + (BitSet) ((Object[]) value)[1]); + return; + } - if ("modelIndex" == propertyName) { - if (!iHaveModelIndex) { - modelIndex = ((Integer) value).intValue(); - isFixed = (modelIndex < 0); - sg.setModelIndex(Math.abs(modelIndex)); - } - return; - } + if ("modelIndex" == propertyName) { + if (!iHaveModelIndex) { + modelIndex = ((Integer) value).intValue(); + isFixed = (modelIndex < 0); + sg.setModelIndex(Math.abs(modelIndex)); + } + return; + } - if ("lcaoCartoon" == propertyName || "lonePair" == propertyName - || "radical" == propertyName) { - // z x center rotationAxis (only one of x, y, or z is nonzero; in radians) - Vector3f[] info = (Vector3f[]) value; - if (!explicitID) { - setPropertySuper("thisID", null, null); - } - // center (info[2]) is set in SurfaceGenerator - if (!sg.setParameter("lcaoCartoonCenter", info[2])) - drawLcaoCartoon( - info[0], - info[1], - info[3], - ("lonePair" == propertyName ? 2 : "radical" == propertyName ? 1 : 0)); - return; - } + if ("lcaoCartoon" == propertyName || "lonePair" == propertyName + || "radical" == propertyName) { + // z x center rotationAxis (only one of x, y, or z is nonzero; in + // radians) + Vector3f[] info = (Vector3f[]) value; + if (!explicitID) { + setPropertySuper("thisID", null, null); + } + // center (info[2]) is set in SurfaceGenerator + if (!sg.setParameter("lcaoCartoonCenter", info[2])) + drawLcaoCartoon(info[0], info[1], info[3], + ("lonePair" == propertyName ? 2 + : "radical" == propertyName ? 1 : 0)); + return; + } - if ("select" == propertyName) { - if (iHaveBitSets) - return; - } + if ("select" == propertyName) { + if (iHaveBitSets) + return; + } - if ("ignore" == propertyName) { - if (iHaveBitSets) - return; - } + if ("ignore" == propertyName) { + if (iHaveBitSets) + return; + } - if ("meshcolor" == propertyName) { - int rgb = ((Integer) value).intValue(); - meshColix = Graphics3D.getColix(rgb); - if (thisMesh != null) - thisMesh.meshColix = meshColix; - return; - } + if ("meshcolor" == propertyName) { + int rgb = ((Integer) value).intValue(); + meshColix = Graphics3D.getColix(rgb); + if (thisMesh != null) + thisMesh.meshColix = meshColix; + return; + } - if ("offset" == propertyName) { - offset = new Point3f((Point3f) value); - if (offset.equals(JmolConstants.center)) - offset = null; - if (thisMesh != null) { - thisMesh.ptOffset = offset; - thisMesh.altVertices = null; - } - return; - } + if ("offset" == propertyName) { + offset = new Point3f((Point3f) value); + if (offset.equals(JmolConstants.center)) + offset = null; + if (thisMesh != null) { + thisMesh.ptOffset = offset; + thisMesh.altVertices = null; + } + return; + } - if ("rotate" == propertyName) { - Point4f pt4 = (Point4f) value; - if (thisMesh != null) { - if (pt4 == null || thisMesh.q == null) - thisMesh.q = new Quaternion(); - thisMesh.q = thisMesh.q.mul(new Quaternion(pt4)); - thisMesh.altVertices = null; - } - return; - } + if ("rotate" == propertyName) { + Point4f pt4 = (Point4f) value; + if (thisMesh != null) { + if (pt4 == null || thisMesh.q == null) + thisMesh.q = new Quaternion(); + thisMesh.q = thisMesh.q.mul(new Quaternion(pt4)); + thisMesh.altVertices = null; + } + return; + } - if ("bsDisplay" == propertyName) { - bsDisplay = (BitSet) value; - return; - } - if ("displayWithin" == propertyName) { - Object[] o = (Object[]) value; - displayWithinDistance2 = ((Float) o[0]).floatValue(); - isDisplayWithinNot = (displayWithinDistance2 < 0); - displayWithinDistance2 *= displayWithinDistance2; - displayWithinPoints = (List<Point3f>) o[3]; - if (displayWithinPoints.size() == 0) - displayWithinPoints = viewer.getAtomPointVector((BitSet) o[2]); - return; - } + if ("bsDisplay" == propertyName) { + bsDisplay = (BitSet) value; + return; + } + if ("displayWithin" == propertyName) { + Object[] o = (Object[]) value; + displayWithinDistance2 = ((Float) o[0]).floatValue(); + isDisplayWithinNot = (displayWithinDistance2 < 0); + displayWithinDistance2 *= displayWithinDistance2; + displayWithinPoints = (List<Point3f>) o[3]; + if (displayWithinPoints.size() == 0) + displayWithinPoints = viewer.getAtomPointVector((BitSet) o[2]); + return; + } - if ("finalize" == propertyName) { - if (thisMesh != null) { - String cmd = (String) value; - if (cmd != null && !cmd.startsWith("; isosurface map")) { - thisMesh.setDiscreteColixes(sg.getParams().contoursDiscrete, sg - .getParams().contourColixes); - setJvxlInfo(); - } - setScriptInfo(cmd); - } - clearSg(); - return; - } + if ("finalize" == propertyName) { + if (thisMesh != null) { + String cmd = (String) value; + if (cmd != null && !cmd.startsWith("; isosurface map")) { + thisMesh.setDiscreteColixes( + sg.getParams().contoursDiscrete, + sg.getParams().contourColixes); + setJvxlInfo(); + } + setScriptInfo(cmd); + } + clearSg(); + return; + } - if ("privateKey" == propertyName) { - this.privateKey = ((Double) value).doubleValue(); - return; - } + if ("privateKey" == propertyName) { + this.privateKey = ((Double) value).doubleValue(); + return; + } - if ("connections" == propertyName) { - if (currentMesh != null) - connections = currentMesh.connections = (int[]) value; - return; - } + if ("connections" == propertyName) { + if (currentMesh != null) + connections = currentMesh.connections = (int[]) value; + return; + } - if ("cutoffRange" == propertyName) { - cutoffRange = (float[]) value; - return; - } + if ("cutoffRange" == propertyName) { + cutoffRange = (float[]) value; + return; + } - // Isosurface / SurfaceGenerator both interested + // Isosurface / SurfaceGenerator both interested - if ("slab" == propertyName) { - if (value instanceof Integer) { - if (thisMesh != null) - thisMesh.jvxlData.slabValue = ((Integer) value).intValue(); - return; - } - if (thisMesh != null) { - Object[] slabInfo = (Object[]) value; - int tok = ((Integer) slabInfo[0]).intValue(); - switch (tok) { - case Token.mesh: - Object[] data = (Object[]) slabInfo[1]; - Mesh m = getMesh((String) data[1]); - if (m == null) - return; - data[1] = m; - break; - } - slabPolygons(slabInfo); - return; - } - } + if ("slab" == propertyName) { + if (value instanceof Integer) { + if (thisMesh != null) + thisMesh.jvxlData.slabValue = ((Integer) value).intValue(); + return; + } + if (thisMesh != null) { + Object[] slabInfo = (Object[]) value; + int tok = ((Integer) slabInfo[0]).intValue(); + switch (tok) { + case Token.mesh: + Object[] data = (Object[]) slabInfo[1]; + Mesh m = getMesh((String) data[1]); + if (m == null) + return; + data[1] = m; + break; + } + slabPolygons(slabInfo); + return; + } + } - if ("cap" == propertyName) { - // for lcaocartoons? - if (thisMesh != null && thisMesh.polygonCount != 0) { - thisMesh.slabPolygons((Object[]) value, true); - thisMesh.initialize(thisMesh.lighting, null, null); - return; - } - } - if ("map" == propertyName) { - setProperty("squareData", Boolean.FALSE, null); - if (thisMesh == null || thisMesh.vertexCount == 0) - return; - } + if ("cap" == propertyName) { + // for lcaocartoons? + if (thisMesh != null && thisMesh.polygonCount != 0) { + thisMesh.slabPolygons((Object[]) value, true); + thisMesh.initialize(thisMesh.lighting, null, null); + return; + } + } + if ("map" == propertyName) { + setProperty("squareData", Boolean.FALSE, null); + if (thisMesh == null || thisMesh.vertexCount == 0) + return; + } - if ("deleteVdw" == propertyName) { - for (int i = meshCount; --i >= 0;) - if (isomeshes[i].bsVdw != null - && (bs == null || bs.intersects(isomeshes[i].bsVdw))) - deleteMesh(i); - currentMesh = thisMesh = null; - return; - } - if ("mapColor" == propertyName || "readFile" == propertyName) { - if (value == null) { - // ScriptEvaluator has passed the filename to us as the value of the - // "fileName" property. We retrieve that from the surfaceGenerator - // and open a BufferedReader for it. Or not. But that would be - // unlikely since we have just checked it in ScriptEvaluator - value = viewer.getBufferedReaderOrErrorMessageFromName( - sg.getFileName(), null, true); - if (value instanceof String) { - Logger.error("Isosurface: could not open file " + sg.getFileName() - + " -- " + value); - return; - } - try { - value = new BufferedReader(new InputStreamReader((InputStream) value, - "ISO-8859-1")); - } catch (UnsupportedEncodingException e) { - // ignore - } - } - } else if ("atomIndex" == propertyName) { - atomIndex = ((Integer) value).intValue(); - } else if ("center" == propertyName) { - center.set((Point3f) value); - } else if ("colorRGB" == propertyName) { - int rgb = ((Integer) value).intValue(); - defaultColix = Graphics3D.getColix(rgb); - } else if ("contour" == propertyName) { - explicitContours = true; - } else if ("functionXY" == propertyName) { - //allowContourLines = false; - if (sg.isStateDataRead()) - setScriptInfo(null); // for script DATA1 - } else if ("init" == propertyName) { - newSg(); - } else if ("getSurfaceSets" == propertyName) { - if (thisMesh != null) { - thisMesh.thisSet = ((Integer) value).intValue(); - thisMesh.calculatedVolume = null; - thisMesh.calculatedArea = null; - } - } else if ("localName" == propertyName) { - value = viewer.getOutputStream((String) value, null); - propertyName = "outputStream"; - } else if ("molecularOrbital" == propertyName) { - if (value instanceof Integer) { - moNumber = ((Integer) value).intValue(); - moLinearCombination = null; - } else { - moLinearCombination = (float[]) value; - moNumber = 0; - } - if (!isColorExplicit) - isPhaseColored = true; - } else if ("phase" == propertyName) { - isPhaseColored = true; - } else if ("plane" == propertyName) { - //allowContourLines = false; - } else if ("pocket" == propertyName) { - // Boolean pocket = (Boolean) value; - // lighting = (pocket.booleanValue() ? JmolConstants.FULLYLIT - // : JmolConstants.FRONTLIT); - } else if ("scale3d" == propertyName) { - scale3d = ((Float) value).floatValue(); - if (thisMesh != null) { - thisMesh.scale3d = thisMesh.jvxlData.scale3d = scale3d; - thisMesh.altVertices = null; - } - } else if ("title" == propertyName) { - if (value instanceof String && "-".equals(value)) - value = null; - setPropertySuper(propertyName, value, bs); - value = title; - } else if ("withinPoints" == propertyName) { - Object[] o = (Object[]) value; - withinDistance2 = ((Float) o[0]).floatValue(); - isWithinNot = (withinDistance2 < 0); - withinDistance2 *= withinDistance2; - withinPoints = (List<Point3f>) o[3]; - if (withinPoints.size() == 0) - withinPoints = viewer.getAtomPointVector((BitSet) o[2]); - } else if (("nci" == propertyName || "orbital" == propertyName) - && sg != null) { - sg.getParams().testFlags = (viewer.getTestFlag(2) ? 2 : 0); - } + if ("deleteVdw" == propertyName) { + for (int i = meshCount; --i >= 0;) + if (isomeshes[i].bsVdw != null + && (bs == null || bs.intersects(isomeshes[i].bsVdw))) + deleteMesh(i); + currentMesh = thisMesh = null; + return; + } + if ("mapColor" == propertyName || "readFile" == propertyName) { + if (value == null) { + // ScriptEvaluator has passed the filename to us as the value of + // the + // "fileName" property. We retrieve that from the + // surfaceGenerator + // and open a BufferedReader for it. Or not. But that would be + // unlikely since we have just checked it in ScriptEvaluator + value = viewer.getBufferedReaderOrErrorMessageFromName(sg + .getFileName(), null, true); + if (value instanceof String) { + Logger.error("Isosurface: could not open file " + + sg.getFileName() + " -- " + value); + return; + } + try { + value = new BufferedReader(new InputStreamReader( + (InputStream) value, "ISO-8859-1")); + } catch (UnsupportedEncodingException e) { + // ignore + } + } + } else if ("atomIndex" == propertyName) { + atomIndex = ((Integer) value).intValue(); + } else if ("center" == propertyName) { + center.set((Point3f) value); + } else if ("colorRGB" == propertyName) { + int rgb = ((Integer) value).intValue(); + defaultColix = Graphics3D.getColix(rgb); + } else if ("contour" == propertyName) { + explicitContours = true; + } else if ("functionXY" == propertyName) { + // allowContourLines = false; + if (sg.isStateDataRead()) + setScriptInfo(null); // for script DATA1 + } else if ("init" == propertyName) { + newSg(); + } else if ("getSurfaceSets" == propertyName) { + if (thisMesh != null) { + thisMesh.thisSet = ((Integer) value).intValue(); + thisMesh.calculatedVolume = null; + thisMesh.calculatedArea = null; + } + } else if ("localName" == propertyName) { + value = viewer.getOutputStream((String) value, null); + propertyName = "outputStream"; + } else if ("molecularOrbital" == propertyName) { + if (value instanceof Integer) { + moNumber = ((Integer) value).intValue(); + moLinearCombination = null; + } else { + moLinearCombination = (float[]) value; + moNumber = 0; + } + if (!isColorExplicit) + isPhaseColored = true; + } else if ("phase" == propertyName) { + isPhaseColored = true; + } else if ("plane" == propertyName) { + // allowContourLines = false; + } else if ("pocket" == propertyName) { + // Boolean pocket = (Boolean) value; + // lighting = (pocket.booleanValue() ? JmolConstants.FULLYLIT + // : JmolConstants.FRONTLIT); + } else if ("scale3d" == propertyName) { + scale3d = ((Float) value).floatValue(); + if (thisMesh != null) { + thisMesh.scale3d = thisMesh.jvxlData.scale3d = scale3d; + thisMesh.altVertices = null; + } + } else if ("title" == propertyName) { + if (value instanceof String && "-".equals(value)) + value = null; + setPropertySuper(propertyName, value, bs); + value = title; + } else if ("withinPoints" == propertyName) { + Object[] o = (Object[]) value; + withinDistance2 = ((Float) o[0]).floatValue(); + isWithinNot = (withinDistance2 < 0); + withinDistance2 *= withinDistance2; + withinPoints = (List<Point3f>) o[3]; + if (withinPoints.size() == 0) + withinPoints = viewer.getAtomPointVector((BitSet) o[2]); + } else if (("nci" == propertyName || "orbital" == propertyName) + && sg != null) { + sg.getParams().testFlags = (viewer.getTestFlag(2) ? 2 : 0); + } - // surface Export3D only (return TRUE) or shared (return FALSE) + // surface Export3D only (return TRUE) or shared (return FALSE) - if (sg != null && sg.setParameter(propertyName, value, bs)) { - if (sg.isValid()) - return; - propertyName = "delete"; - } + if (sg != null && sg.setParameter(propertyName, value, bs)) { + if (sg.isValid()) + return; + propertyName = "delete"; + } - // ///////////// isosurface LAST, shared + // ///////////// isosurface LAST, shared - if ("init" == propertyName) { - explicitID = false; - scriptAppendix = ""; - String script = (value instanceof String ? (String) value : null); - int pt = (script == null ? -1 : script.indexOf("# ID=")); - actualID = (pt >= 0 ? Parser.getNextQuotedString(script, pt) : null); - setPropertySuper("thisID", MeshCollection.PREVIOUS_MESH_ID, null); - if (script != null && !(iHaveBitSets = getScriptBitSets(script, null))) - sg.setParameter("select", bs); - initializeIsosurface(); - sg.setModelIndex(isFixed ? -1 : modelIndex); - return; - } + if ("init" == propertyName) { + explicitID = false; + scriptAppendix = ""; + String script = (value instanceof String ? (String) value : null); + int pt = (script == null ? -1 : script.indexOf("# ID=")); + actualID = (pt >= 0 ? Parser.getNextQuotedString(script, pt) : null); + setPropertySuper("thisID", MeshCollection.PREVIOUS_MESH_ID, null); + if (script != null + && !(iHaveBitSets = getScriptBitSets(script, null))) + sg.setParameter("select", bs); + initializeIsosurface(); + sg.setModelIndex(isFixed ? -1 : modelIndex); + return; + } - if ("clear" == propertyName) { - discardTempData(true); - return; - } + if ("clear" == propertyName) { + discardTempData(true); + return; + } - /* - * if ("background" == propertyName) { boolean doHide = !((Boolean) - * value).booleanValue(); if (thisMesh != null) thisMesh.hideBackground = - * doHide; else { for (int i = meshCount; --i >= 0;) - * meshes[i].hideBackground = doHide; } return; } - */ + /* + * if ("background" == propertyName) { boolean doHide = !((Boolean) + * value).booleanValue(); if (thisMesh != null) thisMesh.hideBackground + * = doHide; else { for (int i = meshCount; --i >= 0;) + * meshes[i].hideBackground = doHide; } return; } + */ - if (propertyName == "deleteModelAtoms") { - int modelIndex = ((int[]) ((Object[]) value)[2])[0]; - int firstAtomDeleted = ((int[]) ((Object[]) value)[2])[1]; - int nAtomsDeleted = ((int[]) ((Object[]) value)[2])[2]; - for (int i = meshCount; --i >= 0;) { - Mesh m = meshes[i]; - if (m == null) - continue; - if (m.modelIndex == modelIndex) { - meshCount--; - if (m == currentMesh) - currentMesh = thisMesh = null; - meshes = isomeshes = (IsosurfaceMesh[]) ArrayUtil.deleteElements( - meshes, i, 1); - } else if (m.modelIndex > modelIndex) { - m.modelIndex--; - if (m.atomIndex >= firstAtomDeleted) - m.atomIndex -= nAtomsDeleted; - } - } - return; - } + if (propertyName == "deleteModelAtoms") { + int modelIndex = ((int[]) ((Object[]) value)[2])[0]; + int firstAtomDeleted = ((int[]) ((Object[]) value)[2])[1]; + int nAtomsDeleted = ((int[]) ((Object[]) value)[2])[2]; + for (int i = meshCount; --i >= 0;) { + Mesh m = meshes[i]; + if (m == null) + continue; + if (m.modelIndex == modelIndex) { + meshCount--; + if (m == currentMesh) + currentMesh = thisMesh = null; + meshes = isomeshes = (IsosurfaceMesh[]) ArrayUtil + .deleteElements(meshes, i, 1); + } else if (m.modelIndex > modelIndex) { + m.modelIndex--; + if (m.atomIndex >= firstAtomDeleted) + m.atomIndex -= nAtomsDeleted; + } + } + return; + } - // processing by meshCollection: - setPropertySuper(propertyName, value, bs); - } + // processing by meshCollection: + setPropertySuper(propertyName, value, bs); + } protected void slabPolygons(Object[] slabInfo) { thisMesh.slabPolygons(slabInfo, false); Modified: branches/v12_2/Jmol/src/org/jmol/shapesurface/IsosurfaceRenderer.java =================================================================== --- branches/v12_2/Jmol/src/org/jmol/shapesurface/IsosurfaceRenderer.java 2011-10-04 18:34:01 UTC (rev 16252) +++ branches/v12_2/Jmol/src/org/jmol/shapesurface/IsosurfaceRenderer.java 2011-10-04 18:37:11 UTC (rev 16253) @@ -73,7 +73,7 @@ imesh = (IsosurfaceMesh) isosurface.meshes[i]; hasColorRange = false; if (renderMesh(mySlabValue, slabValue)) { - System.out.println("render isossurface " + i + " " + isosurface.meshCount); + //System.out.println("render isossurface " + i + " " + isosurface.meshCount); if (!isExport) renderInfo(); if (isExport && haveBsSlabGhost) { Modified: branches/v12_2/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v12_2/Jmol/src/org/jmol/viewer/Jmol.properties 2011-10-04 18:34:01 UTC (rev 16252) +++ branches/v12_2/Jmol/src/org/jmol/viewer/Jmol.properties 2011-10-04 18:37:11 UTC (rev 16253) @@ -4,6 +4,9 @@ version=12.2.1_dev +# CODE -- ?? Eclipse is refusing to set tabs to 2 spaces on this new project?? + +# bug fix: color isosurface {atomset} <color> does not work if isosurface has not already been mapped. # bug fix: PDB reader not reading Rasmol-style files with multiple bonding # CONECT 1 2 2 # or This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |