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

Reply via email to