Revision: 20495 http://sourceforge.net/p/jmol/code/20495 Author: hansonr Date: 2015-05-13 04:19:26 +0000 (Wed, 13 May 2015) Log Message: ----------- Jmol.___JmolVersion="14.3.13_2015.05.12"
bug fix: re-entering functions loses if/else state bug fix: more issues with low-resolution linear-z index lines. Need to compromise for isosurfaces and nucleic cartoons -- which became very slow to render with precision Z placement. Modified Paths: -------------- trunk/Jmol/src/org/jmol/g3d/Graphics3D.java trunk/Jmol/src/org/jmol/g3d/TriangleRenderer.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/src/org/jmol/g3d/Graphics3D.java =================================================================== --- trunk/Jmol/src/org/jmol/g3d/Graphics3D.java 2015-05-13 03:24:53 UTC (rev 20494) +++ trunk/Jmol/src/org/jmol/g3d/Graphics3D.java 2015-05-13 04:19:26 UTC (rev 20495) @@ -1315,9 +1315,10 @@ public void fillCylinderScreen3I(byte endcaps, int diameter, P3 screenA, P3 screenB, P3 pt0f, P3 pt1f, float radius) { //nucleic cartoon, draw arrowhead + // this needs to be old style, not exact for performance in JavaScript. if (diameter <= ht3) - cylinder3d.renderBits(colixCurrent, colixCurrent, 0, endcaps, diameter, - screenA, screenB); + cylinder3d.renderOld(colixCurrent, colixCurrent, 0, endcaps, diameter, + (int) screenA.x, (int) screenA.y, (int) screenA.z, (int) screenB.x, (int) screenB.y, (int) screenB.z); } @Override @@ -1421,7 +1422,7 @@ // polyhedra setColorNoisy(getShadeIndex(normix)); ((TriangleRenderer) triangle3d).fillTriangleP3f(screenA, screenB, screenC, - false); + false, true); } @Override @@ -1434,7 +1435,7 @@ else setColor(shadesCurrent[i]); ((TriangleRenderer) triangle3d).fillTriangleP3f(screenA, screenB, screenC, - false); + false, true); } @Override @@ -1459,7 +1460,7 @@ setColorNoisy(shadeIndex); } ((TriangleRenderer) triangle3d).fillTriangleP3f(screenA, screenB, screenC, - false); + false, false); } @Override @@ -1476,7 +1477,7 @@ short normixC) { // mesh, isosurface ((TriangleRenderer) triangle3d).fillTriangleP3f(screenA, screenB, screenC, - checkGouraud(colixA, colixB, colixC, normixA, normixB, normixC)); + checkGouraud(colixA, colixB, colixC, normixA, normixB, normixC), true); } private boolean checkGouraud(short colixA, short colixB, short colixC, @@ -1530,12 +1531,12 @@ int i = getShadeIndexP3(screenA, screenB, screenC); setColorNoisy(i); ((TriangleRenderer) triangle3d).fillTriangleP3f(screenA, screenB, screenC, - false); + false, true); // don't do the following; it creates a moire pattern in cartoons // i = getShadeIndexP3(screenA, screenC, screenD); // setColorNoisy(i); ((TriangleRenderer) triangle3d).fillTriangleP3f(screenA, screenC, screenD, - false); + false, true); } @Override Modified: trunk/Jmol/src/org/jmol/g3d/TriangleRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/g3d/TriangleRenderer.java 2015-05-13 03:24:53 UTC (rev 20494) +++ trunk/Jmol/src/org/jmol/g3d/TriangleRenderer.java 2015-05-13 04:19:26 UTC (rev 20495) @@ -156,8 +156,8 @@ fillTriangleB(useGouraud); } - void fillTriangleP3f(P3 screenA, P3 screenB, P3 screenC, - boolean useGouraud) { + void fillTriangleP3f(P3 screenA, P3 screenB, P3 screenC, boolean useGouraud, + boolean isPrecise) { ax[0] = Math.round(screenA.x); ax[1] = Math.round(screenB.x); ax[2] = Math.round(screenC.x); @@ -167,9 +167,13 @@ az[0] = Math.round(screenA.z); az[1] = Math.round(screenB.z); az[2] = Math.round(screenC.z); - abc[0] = screenA; - abc[1] = screenB; - abc[2] = screenC; + if (isPrecise) { + abc[0] = screenA; + abc[1] = screenB; + abc[2] = screenC; + } else { + abc[0] = null; + } fillTriangleB(useGouraud); } Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2015-05-13 03:24:53 UTC (rev 20494) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2015-05-13 04:19:26 UTC (rev 20495) @@ -17,7 +17,9 @@ Jmol.___JmolVersion="14.3.13_2015.05.12" bug fix: re-entering functions loses if/else state -bug fix: more issues with low-resolution linear-z index lines. Need to rewrite these all, probably +bug fix: more issues with low-resolution linear-z index lines. + Need to compromise for isosurfaces and nucleic cartoons + -- which became very slow to render with precision Z placement. JmolVersion="14.3.13_2015.05.08" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits