changeset 22362:f3ce0015dd42

Draw tick marks in appropriate axes color (OpenGL renderers). * gl-render.cc (draw_axes_x_grid, draw_axes_y_grid, draw_axes_z_grid): Move drawing of minor grid and major grid to the beginning of function. Next, set color based on axes property and then add tick marks and text.
author Rik <rik@octave.org>
date Mon, 22 Aug 2016 14:30:37 -0700
parents a12f11e20c75
children 0ca341841198
files libinterp/corefcn/gl-render.cc
diffstat 1 files changed, 110 insertions(+), 110 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/gl-render.cc	Mon Aug 22 11:00:48 2016 +0900
+++ b/libinterp/corefcn/gl-render.cc	Mon Aug 22 14:30:37 2016 -0700
@@ -1345,7 +1345,12 @@
             do_xgrid = true;
           }
 
-        set_color (props.get_xcolor_rgb ());
+        // minor grid lines
+        if (do_xminorgrid)
+          render_grid (minorgridstyle, minorgridcolor, minorgridalpha,
+                       xmticks, x_min, x_max,
+                       yPlane, yPlaneN, layer2Dtop ? zPlaneN : zPlane,
+                       zPlaneN, 0, (zstate != AXE_DEPTH_DIR));
 
         // grid lines
         if (do_xgrid)
@@ -1353,6 +1358,23 @@
                        yPlane, yPlaneN, layer2Dtop ? zPlaneN : zPlane,
                        zPlaneN, 0, (zstate != AXE_DEPTH_DIR));
 
+        set_color (props.get_xcolor_rgb ());
+
+        // minor tick marks
+        if (do_xminortick)
+          {
+            if (tick_along_z)
+              render_tickmarks (xmticks, x_min, x_max, ypTick, ypTick,
+                                zpTick, zpTickN, 0., 0.,
+                                octave::math::signum (zpTick-zpTickN)*fz*xticklen/2,
+                                0, mirror);
+            else
+              render_tickmarks (xmticks, x_min, x_max, ypTick, ypTickN,
+                                zpTick, zpTick, 0.,
+                                octave::math::signum (ypTick-ypTickN)*fy*xticklen/2,
+                                0., 0, mirror);
+          }
+
         // tick marks
         if (tick_along_z)
           {
@@ -1385,28 +1407,6 @@
                                 zpTick, 0, halign, valign, wmax, hmax);
           }
 
-        // minor grid lines
-        if (do_xminorgrid)
-          render_grid (minorgridstyle, minorgridcolor, minorgridalpha,
-                       xmticks, x_min, x_max,
-                       yPlane, yPlaneN, layer2Dtop ? zPlaneN : zPlane,
-                       zPlaneN, 0, (zstate != AXE_DEPTH_DIR));
-
-        // minor tick marks
-        if (do_xminortick)
-          {
-            if (tick_along_z)
-              render_tickmarks (xmticks, x_min, x_max, ypTick, ypTick,
-                                zpTick, zpTickN, 0., 0.,
-                                octave::math::signum (zpTick-zpTickN)*fz*xticklen/2,
-                                0, mirror);
-            else
-              render_tickmarks (xmticks, x_min, x_max, ypTick, ypTickN,
-                                zpTick, zpTick, 0.,
-                                octave::math::signum (ypTick-ypTickN)*fy*xticklen/2,
-                                0., 0, mirror);
-          }
-
         gh_manager::get_object (props.get_xlabel ()).set ("visible", "on");
       }
     else
@@ -1470,7 +1470,12 @@
             do_ygrid = true;
           }
 
-        set_color (props.get_ycolor_rgb ());
+        // minor grid lines
+        if (do_yminorgrid)
+          render_grid (minorgridstyle, minorgridcolor, minorgridalpha,
+                       ymticks, y_min, y_max,
+                       xPlane, xPlaneN, layer2Dtop ? zPlaneN : zPlane,
+                       zPlaneN, 1, (zstate != AXE_DEPTH_DIR));
 
         // grid lines
         if (do_ygrid)
@@ -1478,6 +1483,23 @@
                        xPlane, xPlaneN, layer2Dtop ? zPlaneN : zPlane,
                        zPlaneN, 1, (zstate != AXE_DEPTH_DIR));
 
+        set_color (props.get_ycolor_rgb ());
+
+        // minor tick marks
+        if (do_yminortick)
+          {
+            if (tick_along_z)
+              render_tickmarks (ymticks, y_min, y_max, xpTick, xpTick,
+                                zpTick, zpTickN, 0., 0.,
+                                octave::math::signum (zpTick-zpTickN)*fz*yticklen/2,
+                                1, mirror);
+            else
+              render_tickmarks (ymticks, y_min, y_max, xpTick, xpTickN,
+                                zpTick, zpTick,
+                                octave::math::signum (xpTick-xpTickN)*fx*yticklen/2,
+                                0., 0., 1, mirror);
+          }
+
         // tick marks
         if (tick_along_z)
           render_tickmarks (yticks, y_min, y_max, xpTick, xpTick,
@@ -1507,28 +1529,6 @@
                                 zpTick, 1, halign, valign, wmax, hmax);
           }
 
-        // minor grid lines
-        if (do_yminorgrid)
-          render_grid (minorgridstyle, minorgridcolor, minorgridalpha,
-                       ymticks, y_min, y_max,
-                       xPlane, xPlaneN, layer2Dtop ? zPlaneN : zPlane,
-                       zPlaneN, 1, (zstate != AXE_DEPTH_DIR));
-
-        // minor tick marks
-        if (do_yminortick)
-          {
-            if (tick_along_z)
-              render_tickmarks (ymticks, y_min, y_max, xpTick, xpTick,
-                                zpTick, zpTickN, 0., 0.,
-                                octave::math::signum (zpTick-zpTickN)*fz*yticklen/2,
-                                1, mirror);
-            else
-              render_tickmarks (ymticks, y_min, y_max, xpTick, xpTickN,
-                                zpTick, zpTick,
-                                octave::math::signum (xpTick-xpTickN)*fx*yticklen/2,
-                                0., 0., 1, mirror);
-          }
-
         gh_manager::get_object (props.get_ylabel ()).set ("visible", "on");
       }
     else
@@ -1583,76 +1583,18 @@
             do_zgrid = true;
           }
 
-        set_color (props.get_zcolor_rgb ());
+        // minor grid lines
+        if (do_zminorgrid)
+          render_grid (minorgridstyle, minorgridcolor, minorgridalpha,
+                       zmticks, z_min, z_max,
+                       xPlane, xPlaneN, yPlane, yPlaneN, 2, true);
 
         // grid lines
         if (do_zgrid)
           render_grid (gridstyle, gridcolor, gridalpha, zticks, z_min, z_max,
                        xPlane, xPlaneN, yPlane, yPlaneN, 2, true);
 
-        // tick marks
-        if (xySym)
-          {
-            if (octave::math::isinf (fy))
-              render_tickmarks (zticks, z_min, z_max, xPlaneN, xPlane,
-                                yPlane, yPlane,
-                                octave::math::signum (xPlaneN-xPlane)*fx*zticklen,
-                                0., 0., 2, mirror);
-            else
-              render_tickmarks (zticks, z_min, z_max, xPlaneN, xPlaneN,
-                                yPlane, yPlane, 0.,
-                                octave::math::signum (yPlane-yPlaneN)*fy*zticklen,
-                                0., 2, false);
-          }
-        else
-          {
-            if (octave::math::isinf (fx))
-              render_tickmarks (zticks, z_min, z_max, xPlaneN, xPlane,
-                                yPlaneN, yPlane, 0.,
-                                octave::math::signum (yPlaneN-yPlane)*fy*zticklen,
-                                0., 2, mirror);
-            else
-              render_tickmarks (zticks, z_min, z_max, xPlane, xPlane,
-                                yPlaneN, yPlane,
-                                octave::math::signum (xPlane-xPlaneN)*fx*zticklen,
-                                0., 0., 2, false);
-          }
-
-        // FIXME: tick texts
-        if (zticklabels.numel () > 0)
-          {
-            int halign = 2;
-            int valign = (zstate == AXE_VERT_DIR ? 1 : (zSign ? 3 : 2));
-
-            if (xySym)
-              {
-                if (octave::math::isinf (fy))
-                  render_ticktexts (zticks, zticklabels, z_min, z_max,
-                                    xPlaneN+octave::math::signum (xPlaneN-xPlane)*fx*ztickoffset,
-                                    yPlane, 2, halign, valign, wmax, hmax);
-                else
-                  render_ticktexts (zticks, zticklabels, z_min, z_max, xPlaneN,
-                                    yPlane+octave::math::signum (yPlane-yPlaneN)*fy*ztickoffset,
-                                    2, halign, valign, wmax, hmax);
-              }
-            else
-              {
-                if (octave::math::isinf (fx))
-                  render_ticktexts (zticks, zticklabels, z_min, z_max, xPlane,
-                                    yPlaneN+octave::math::signum (yPlaneN-yPlane)*fy*ztickoffset,
-                                    2, halign, valign, wmax, hmax);
-                else
-                  render_ticktexts (zticks, zticklabels, z_min, z_max,
-                                    xPlane+octave::math::signum (xPlane-xPlaneN)*fx*ztickoffset,
-                                    yPlaneN, 2, halign, valign, wmax, hmax);
-              }
-          }
-
-        // minor grid lines
-        if (do_zminorgrid)
-          render_grid (minorgridstyle, minorgridcolor, minorgridalpha,
-                       zmticks, z_min, z_max,
-                       xPlane, xPlaneN, yPlane, yPlaneN, 2, true);
+        set_color (props.get_zcolor_rgb ());
 
         // minor tick marks
         if (do_zminortick)
@@ -1685,6 +1627,64 @@
               }
           }
 
+        // tick marks
+        if (xySym)
+          {
+            if (octave::math::isinf (fy))
+              render_tickmarks (zticks, z_min, z_max, xPlaneN, xPlane,
+                                yPlane, yPlane,
+                                octave::math::signum (xPlaneN-xPlane)*fx*zticklen,
+                                0., 0., 2, mirror);
+            else
+              render_tickmarks (zticks, z_min, z_max, xPlaneN, xPlaneN,
+                                yPlane, yPlane, 0.,
+                                octave::math::signum (yPlane-yPlaneN)*fy*zticklen,
+                                0., 2, false);
+          }
+        else
+          {
+            if (octave::math::isinf (fx))
+              render_tickmarks (zticks, z_min, z_max, xPlaneN, xPlane,
+                                yPlaneN, yPlane, 0.,
+                                octave::math::signum (yPlaneN-yPlane)*fy*zticklen,
+                                0., 2, mirror);
+            else
+              render_tickmarks (zticks, z_min, z_max, xPlane, xPlane,
+                                yPlaneN, yPlane,
+                                octave::math::signum (xPlane-xPlaneN)*fx*zticklen,
+                                0., 0., 2, false);
+          }
+
+        // tick texts
+        if (zticklabels.numel () > 0)
+          {
+            int halign = 2;
+            int valign = (zstate == AXE_VERT_DIR ? 1 : (zSign ? 3 : 2));
+
+            if (xySym)
+              {
+                if (octave::math::isinf (fy))
+                  render_ticktexts (zticks, zticklabels, z_min, z_max,
+                                    xPlaneN+octave::math::signum (xPlaneN-xPlane)*fx*ztickoffset,
+                                    yPlane, 2, halign, valign, wmax, hmax);
+                else
+                  render_ticktexts (zticks, zticklabels, z_min, z_max, xPlaneN,
+                                    yPlane+octave::math::signum (yPlane-yPlaneN)*fy*ztickoffset,
+                                    2, halign, valign, wmax, hmax);
+              }
+            else
+              {
+                if (octave::math::isinf (fx))
+                  render_ticktexts (zticks, zticklabels, z_min, z_max, xPlane,
+                                    yPlaneN+octave::math::signum (yPlaneN-yPlane)*fy*ztickoffset,
+                                    2, halign, valign, wmax, hmax);
+                else
+                  render_ticktexts (zticks, zticklabels, z_min, z_max,
+                                    xPlane+octave::math::signum (xPlane-xPlaneN)*fx*ztickoffset,
+                                    yPlaneN, 2, halign, valign, wmax, hmax);
+              }
+          }
+
         gh_manager::get_object (props.get_zlabel ()).set ("visible", "on");
       }
     else