From: <ha...@us...> - 2011-01-05 18:14:22
|
Revision: 14944 http://jmol.svn.sourceforge.net/jmol/?rev=14944&view=rev Author: hansonr Date: 2011-01-05 18:14:15 +0000 (Wed, 05 Jan 2011) Log Message: ----------- version=12.0.27_dev # bug fix: isosurface color mesh blue not working Modified Paths: -------------- branches/v12_0/Jmol/src/org/jmol/script/ScriptEvaluator.java branches/v12_0/Jmol/src/org/jmol/shape/Mesh.java branches/v12_0/Jmol/src/org/jmol/shape/MeshCollection.java branches/v12_0/Jmol/src/org/jmol/shapesurface/Isosurface.java branches/v12_0/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v12_0/Jmol/src/org/jmol/script/ScriptEvaluator.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2011-01-04 23:05:38 UTC (rev 14943) +++ branches/v12_0/Jmol/src/org/jmol/script/ScriptEvaluator.java 2011-01-05 18:14:15 UTC (rev 14944) @@ -7298,6 +7298,10 @@ getToken(++index); if (isBackground) prefix = "bg"; + else if (isIsosurface && theTok == Token.mesh) { + getToken(++index); + prefix = "mesh"; + } if (!isSyntaxCheck && shapeType == JmolConstants.SHAPE_MO && !mo(true)) return; boolean isTranslucent = (theTok == Token.translucent); @@ -15164,7 +15168,7 @@ i++; sbCommand.append(" mesh"); color = getArgbParam(++i); - addShapeProperty(propertyList, "colorMesh", new Integer(color)); + addShapeProperty(propertyList, "meshcolor", new Integer(color)); sbCommand.append(" ").append(Escape.escapeColor(color)); i = iToken; continue; Modified: branches/v12_0/Jmol/src/org/jmol/shape/Mesh.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/shape/Mesh.java 2011-01-04 23:05:38 UTC (rev 14943) +++ branches/v12_0/Jmol/src/org/jmol/shape/Mesh.java 2011-01-05 18:14:15 UTC (rev 14944) @@ -44,6 +44,7 @@ public String[] title; + public short meshColix; public short[] normixes; private int normixCount; public BitSet[] bitsets; // [0]bsSelected [1]bsIgnore [2]bsTrajectory @@ -240,6 +241,8 @@ s.append(" ID ").append(Escape.escape(thisID)); if (lattice != null) s.append(" lattice ").append(Escape.escape(lattice)); + if (meshColix != 0) + s.append(" color mesh ").append(Graphics3D.getHexCode(meshColix)); s.append(fillTriangles ? " fill" : " noFill"); s.append(drawTriangles ? " mesh" : " noMesh"); s.append(showPoints ? " dots" : " noDots"); Modified: branches/v12_0/Jmol/src/org/jmol/shape/MeshCollection.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/shape/MeshCollection.java 2011-01-04 23:05:38 UTC (rev 14943) +++ branches/v12_0/Jmol/src/org/jmol/shape/MeshCollection.java 2011-01-05 18:14:15 UTC (rev 14944) @@ -416,17 +416,6 @@ } return sb.toString(); } - if (property == "command") { - String key = previousMeshID.toUpperCase(); - boolean isWild = TextFormat.isWild(key); - StringBuffer sb = new StringBuffer(); - for (int i = meshCount; --i >= 0;) { - String id = meshes[i].thisID.toUpperCase(); - if (id.equals(key) || isWild && TextFormat.isMatch(id, key, true, true)) - getMeshCommand(sb, i); - } - return sb.toString(); - } if (property == "vertices") return getVertices(currentMesh); return null; @@ -523,84 +512,6 @@ currentMesh.scriptCommand = script; } - public String getShapeState() { - StringBuffer sb = new StringBuffer("\n"); - for (int i = 0; i < meshCount; i++) - getMeshCommand(sb, i); - return sb.toString(); - } - - private void getMeshCommand(StringBuffer sb, int i) { - Mesh mesh = meshes[i]; - String cmd = mesh.scriptCommand; - if (cmd == null) - return; - cmd = cmd.replace('\t', ' '); - cmd = TextFormat.simpleReplace(cmd, ";#", "; #"); - int pt = cmd.indexOf("; #"); - /* - not perfect -- user may have that in a title, I suppose... - String options = ""; - if (pt >= 0) { - options = cmd.substring(pt + 1); - cmd = cmd.substring(0, pt); - pt = options.indexOf("# ({"); - if (pt >= 0) - options = options.substring(0, pt); - pt = options.indexOf("# ID"); - if (pt >= 0) - options = options.substring(0, pt); - } - */ - if (pt >= 0) { - cmd = cmd.substring(0, pt); - } - cmd = TextFormat.trim(cmd, ";"); - if (mesh.linkedMesh != null) - cmd += " LINK"; // for lcaoCartoon state - /* - cmd = TextFormat.trim(cmd, ";") + ";" + options; - if (mesh.bitsets != null) { - cmd += "# " - + (mesh.bitsets[0] == null ? "({null})" : Escape - .escape(mesh.bitsets[0])) - + " " - + (mesh.bitsets[1] == null ? "({null})" : Escape - .escape(mesh.bitsets[1])) - + (mesh.bitsets[2] == null ? "" : "/" - + Escape.escape(mesh.bitsets[2])); - } - if (!myType.equals("mo")) - cmd += "# ID=\"" + mesh.thisID + "\""; - if (mesh.modelIndex >= 0) - cmd += "# MODEL({" + mesh.modelIndex + "})"; - if (mesh.cappingObject != null) - cmd += "# CAP=\"" + Escape.escape(mesh.cappingObject) + "\""; - if (mesh.slabbingObject != null) - cmd += "# SLAB=\"" + Escape.escape(mesh.slabbingObject) + "\""; - if (mesh.data1 != null) - cmd = encapsulateData(cmd, mesh.data1, ""); - if (mesh.data2 != null) - cmd = encapsulateData(cmd, mesh.data2, "2"); - */ - if (mesh.modelIndex >= 0 && modelCount > 1) - appendCmd(sb, "frame " + viewer.getModelNumberDotted(mesh.modelIndex)); - appendCmd(sb, cmd); - if (mesh.ptOffset != null) - appendCmd(sb, myType + " ID " + Escape.escape(mesh.thisID) + " offset " + Escape.escape(mesh.ptOffset)); - if (mesh.scale3d != 0) - appendCmd(sb, myType + " ID " + Escape.escape(mesh.thisID) + " scale3d " + mesh.scale3d); - if (cmd.charAt(0) != '#') { - if (allowMesh) - appendCmd(sb, mesh.getState(myType)); - if (mesh.colorCommand != null) { - if (!mesh.isColorSolid && Graphics3D.isColixTranslucent(mesh.colix)) - appendCmd(sb, getColorCommand(myType, mesh.colix)); - appendCmd(sb, mesh.colorCommand); - } - getColorState(sb, mesh); - } - } /* private String encapsulateData(String cmd, Vector data, String ext) { String name = ((String) data.elementAt(0)).toLowerCase(); @@ -614,11 +525,6 @@ return cmd; } */ -protected void getColorState(StringBuffer sb, Mesh mesh) { - getColorState(sb, mesh); - if (mesh.isColorSolid) - appendCmd(sb, getColorCommand(myType, mesh.colix)); -} public void setVisibilityFlags(BitSet bs) { /* Modified: branches/v12_0/Jmol/src/org/jmol/shapesurface/Isosurface.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/shapesurface/Isosurface.java 2011-01-04 23:05:38 UTC (rev 14943) +++ branches/v12_0/Jmol/src/org/jmol/shapesurface/Isosurface.java 2011-01-05 18:14:15 UTC (rev 14944) @@ -278,9 +278,11 @@ return; } - if ("colorMesh" == propertyName) { + if ("meshcolor" == propertyName) { int rgb = ((Integer) value).intValue(); meshColix = Graphics3D.getColix(rgb); + if (thisMesh != null) + thisMesh.meshColix = meshColix; return; } @@ -568,6 +570,17 @@ } if (property == "jvxlFileInfo") return JvxlCoder.jvxlGetInfo(jvxlData); + if (property == "command") { + String key = previousMeshID.toUpperCase(); + boolean isWild = TextFormat.isWild(key); + StringBuffer sb = new StringBuffer(); + for (int i = meshCount; --i >= 0;) { + String id = meshes[i].thisID.toUpperCase(); + if (id.equals(key) || isWild && TextFormat.isMatch(id, key, true, true)) + getMeshCommand(sb, i); + } + return sb.toString(); + } return null; } @@ -595,7 +608,49 @@ return list1.toString(); } - protected void getColorState(StringBuffer sb, Mesh mesh) { + public String getShapeState() { + StringBuffer sb = new StringBuffer("\n"); + for (int i = 0; i < meshCount; i++) + getMeshCommand(sb, i); + return sb.toString(); + } + + private void getMeshCommand(StringBuffer sb, int i) { + Mesh mesh = meshes[i]; + String cmd = mesh.scriptCommand; + if (cmd == null) + return; + cmd = cmd.replace('\t', ' '); + cmd = TextFormat.simpleReplace(cmd, ";#", "; #"); + int pt = cmd.indexOf("; #"); + if (pt >= 0) { + cmd = cmd.substring(0, pt); + } + cmd = TextFormat.trim(cmd, ";"); + if (mesh.linkedMesh != null) + cmd += " LINK"; // for lcaoCartoon state + if (mesh.modelIndex >= 0 && modelCount > 1) + appendCmd(sb, "frame " + viewer.getModelNumberDotted(mesh.modelIndex)); + appendCmd(sb, cmd); + if (mesh.ptOffset != null) + appendCmd(sb, myType + " ID " + Escape.escape(mesh.thisID) + " offset " + + Escape.escape(mesh.ptOffset)); + if (mesh.scale3d != 0) + appendCmd(sb, myType + " ID " + Escape.escape(mesh.thisID) + " scale3d " + + mesh.scale3d); + if (cmd.charAt(0) != '#') { + if (allowMesh) + appendCmd(sb, mesh.getState(myType)); + if (mesh.colorCommand != null) { + if (!mesh.isColorSolid && Graphics3D.isColixTranslucent(mesh.colix)) + appendCmd(sb, getColorCommand(myType, mesh.colix)); + appendCmd(sb, mesh.colorCommand); + } + getColorState(sb, mesh); + } + } + + private void getColorState(StringBuffer sb, Mesh mesh) { boolean colorArrayed = (mesh.isColorSolid && ((IsosurfaceMesh) mesh).polygonColixes != null); if (mesh.isColorSolid && !colorArrayed) appendCmd(sb, getColorCommand(myType, mesh.colix)); Modified: branches/v12_0/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java =================================================================== --- branches/v12_0/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java 2011-01-04 23:05:38 UTC (rev 14943) +++ branches/v12_0/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java 2011-01-05 18:14:15 UTC (rev 14944) @@ -441,7 +441,6 @@ float[] contourValues; short[] contourColixes; - short meshColix; public void setDiscreteColixes(float[] values, short[] colixes) { if (values != null) Modified: branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties 2011-01-04 23:05:38 UTC (rev 14943) +++ branches/v12_0/Jmol/src/org/jmol/viewer/Jmol.properties 2011-01-05 18:14:15 UTC (rev 14944) @@ -4,6 +4,7 @@ version=12.0.27_dev +# bug fix: isosurface color mesh blue not working # bug fix: (modelkit) load $PCl5; assign atom ({2}) "C" fails to place H atoms correctly # bug fix: isosurface sets not sorted by number of vertices # bug fix: logFile/logCommands/logGestures should not be saved in state This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |