From: Miguel <mig...@us...> - 2005-07-15 20:04:19
|
Update of /cvsroot/jmol/Jmol/src/org/jmol/viewer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21582/src/org/jmol/viewer Modified Files: Pmesh.java Volumetric.java VolumetricRenderer.java Log Message: eliminated meshNegative on way to restructuring Index: Pmesh.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/jmol/viewer/Pmesh.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- Pmesh.java 15 Jul 2005 11:00:29 -0000 1.17 +++ Pmesh.java 15 Jul 2005 20:04:10 -0000 1.18 @@ -36,7 +36,7 @@ int meshCount; Mesh[] meshes = new Mesh[4]; Mesh currentMesh; - + void initShape() { colix = Graphics3D.ORANGE; } Index: Volumetric.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/jmol/viewer/Volumetric.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Volumetric.java 15 Jul 2005 13:00:41 -0000 1.9 +++ Volumetric.java 15 Jul 2005 20:04:10 -0000 1.10 @@ -55,14 +55,11 @@ int triangleIndexCount = 0; int[] triangleIndexes = new int[3 * 256]; - Mesh meshPositive; - Mesh meshNegative; - float isoCutoffPositive = 0.02f; - float isoCutoffNegative = -0.02f; + Mesh mesh; + float isoCutoff = 0.02f; void initShape() { - meshPositive = new Mesh("volumetric", g3d, Graphics3D.BLUE); - meshNegative = new Mesh("volumetric", g3d, Graphics3D.RED); + mesh = new Mesh("volumetric", g3d, Graphics3D.BLUE); } void setProperty(String propertyName, Object value, BitSet bs) { @@ -79,8 +76,17 @@ calcVoxelVertexVectors(); constructTessellatedSurface(); - meshPositive.initialize(); - meshNegative.initialize(); + mesh.initialize(); + return; + } + if ("color" == propertyName) { + if (value != null) + mesh.colix = Graphics3D.getColix(value); + return; + } + if ("translucency" == propertyName) { + boolean isTranslucent = ("translucent" == value); + mesh.colix = Graphics3D.setTranslucent(mesh.colix, isTranslucent); return; } } @@ -107,24 +113,18 @@ volumetricData[x][y][z]); */ - int insideCountPositive = 0, - outsideCountPositive = 0, surfaceCountPositive = 0; - int insideCountNegative = 0, - outsideCountNegative = 0, surfaceCountNegative = 0; + int insideCount = 0, outsideCount = 0, surfaceCount = 0; for (int x = volumetricCountX - 1; --x >= 0; ) { for (int y = volumetricCountY - 1; --y >= 0; ) { for (int z = volumetricCountZ - 1; --z >= 0; ) { - int insideMaskPositive = 0; - int insideMaskNegative = 0; + int insideMask = 0; for (int i = 8; --i >= 0; ) { Point3i offset = cubeVertexOffsets[i]; float vertexValue = volumetricData[x + offset.x][y + offset.y][z + offset.z]; vertexValues[i] = vertexValue; - if (vertexValue > isoCutoffPositive) - insideMaskPositive |= 1 << i; - if (vertexValue < isoCutoffNegative) - insideMaskNegative |= 1 << i; + if (vertexValue > isoCutoff) + insideMask |= 1 << i; } /* @@ -134,37 +134,19 @@ System.out.println("insideMask=" + Integer.toHexString(insideMask)); */ - boolean interestingPositive = false; - if (insideMaskPositive == 0) - ++outsideCountPositive; - else if (insideMaskPositive == 0xFF) - ++insideCountPositive; - else { - ++surfaceCountPositive; - interestingPositive = true; - } - - boolean interestingNegative = false; - if (insideMaskNegative == 0) - ++outsideCountNegative; - else if (insideMaskNegative == 0xFF) - ++insideCountNegative; - else { - ++surfaceCountNegative; - interestingNegative = true; + if (insideMask == 0) { + ++outsideCount; + continue; } - - if (! interestingPositive && ! interestingNegative) + if (insideMask == 0xFF) { + ++insideCount; continue; - + } + ++surfaceCount; calcVoxelOrigin(x, y, z); - if (interestingPositive) - processOneVoxel(insideMaskPositive, - isoCutoffPositive, meshPositive); - if (interestingNegative) - processOneVoxel(insideMaskNegative, - isoCutoffNegative, meshNegative); + processOneVoxel(insideMask, + isoCutoff, mesh); } } } @@ -175,19 +157,12 @@ " total=" + (volumetricCountX*volumetricCountY*volumetricCountZ) + "\n" + - " insideCountPositive=" + insideCountPositive + - " outsideCountPositive=" + outsideCountPositive + - " surfaceCountPositive=" + surfaceCountPositive + - " total=" + - (insideCountPositive+ - outsideCountPositive+surfaceCountPositive) + - "\n" + - " insideCountNegative=" + insideCountNegative + - " outsideCountNegative=" + outsideCountNegative + - " surfaceCountNegative=" + surfaceCountNegative + + " insideCount=" + insideCount + + " outsideCount=" + outsideCount + + " surfaceCount=" + surfaceCount + " total=" + - (insideCountNegative+ - outsideCountNegative+surfaceCountNegative)); + (insideCount+ + outsideCount+surfaceCount)); } void processOneVoxel(int insideMask, float isoCutoff, Mesh mesh) { Index: VolumetricRenderer.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/jmol/viewer/VolumetricRenderer.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- VolumetricRenderer.java 15 Jul 2005 11:00:29 -0000 1.5 +++ VolumetricRenderer.java 15 Jul 2005 20:04:10 -0000 1.6 @@ -37,14 +37,12 @@ void render() { System.out.println("VolumetricRenderer"); Volumetric volumetric = (Volumetric)shape; - render1(volumetric.meshPositive); - render1(volumetric.meshNegative); + render1(volumetric.mesh); /* renderVoxelOriginPoints(volumetric.voxelOriginPointCount, volumetric.voxelOriginPoints); */ - } void renderX() { |