From bea91552a84078997102dda2da1eeefcc3a3badb Mon Sep 17 00:00:00 2001 From: Calixte DENIZET Date: Thu, 21 Nov 2013 11:26:58 +0100 Subject: [PATCH] Bug 8133 fixed: Ticks disappeared in planar 3D view Change-Id: Idc939bebfd864539184d03cd22ac77cbeae0f54f --- scilab/CHANGES_5.5.X | 2 ++ .../graphics/tests/nonreg_tests/bug_8133.tst | 25 ++++++++++++++++++++ .../JoGLView/axes/ruler/AxesRulerDrawer.java | 20 +++++++--------- 3 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 scilab/modules/graphics/tests/nonreg_tests/bug_8133.tst diff --git a/scilab/CHANGES_5.5.X b/scilab/CHANGES_5.5.X index 985b100..cb082a5 100644 --- a/scilab/CHANGES_5.5.X +++ b/scilab/CHANGES_5.5.X @@ -51,6 +51,8 @@ Scilab Bug Fixes * Bug #8060 fixed - Display of a list improved in the variable browser. +* Bug #8133 fixed - Ticks disappeared in planar 3D view. + * Bug #8231 fixed - xrect help page did not say that clipping property was inherited. * Bug #8337 fixed - mtlb_rand now uses the "uniform" rule, whatever the random rule set is. diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_8133.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_8133.tst new file mode 100644 index 0000000..0e58ec1 --- /dev/null +++ b/scilab/modules/graphics/tests/nonreg_tests/bug_8133.tst @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- INTERACTIVE TEST --> + +// <-- Non-regression test for bug 8133 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/8133 +// +// <-- Short Description --> +// Ticks disappeared in planar 3D view + +clf(); +plot3d([1,2],[1,2],[1,2]); + +// ticks should be present on z-axis & x-axis +set(gca(),"rotation_angles",[90,90]); + +// ticks should be present on z-axis & y-axis +set(gca(),"rotation_angles",[90,0]); \ No newline at end of file diff --git a/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/AxesRulerDrawer.java b/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/AxesRulerDrawer.java index 1321332..942b340 100644 --- a/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/AxesRulerDrawer.java +++ b/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/AxesRulerDrawer.java @@ -227,23 +227,21 @@ public class AxesRulerDrawer { } // Draw Z ruler - if (axes.getViewAsEnum() == Camera.ViewType.VIEW_3D && axes.getRotationAngles()[1] != 90.0) { + if (axes.getViewAsEnum() == Camera.ViewType.VIEW_3D) { double txs, tys, xs, ys; - if (Math.abs(matrix[2]) < Math.abs(matrix[6])) { - xs = Math.signum(matrix[2]); - ys = -Math.signum(matrix[6]); + xs = matrix[2] > 0 ? 1 : -1; + ys = matrix[6] > 0 ? -1 : 1; txs = xs; tys = 0; } else { - xs = -Math.signum(matrix[2]); - ys = Math.signum(matrix[6]); + xs = matrix[2] > 0 ? -1 : 1; + ys = matrix[6] > 0 ? 1 : -1; txs = 0; tys = ys; } rulerModel = getDefaultRulerModel(axes, colorMap); - rulerModel.setFirstPoint(new Vector3d(xs, ys, -1)); rulerModel.setSecondPoint(new Vector3d(xs, ys, 1)); rulerModel.setTicksDirection(new Vector3d(txs, tys, 0)); @@ -281,7 +279,7 @@ public class AxesRulerDrawer { zAxisLabelPositioner.setTicksDirection(new Vector3d(txs, tys, 0.0)); zAxisLabelPositioner.setDistanceRatio(distanceRatio); - zAxisLabelPositioner.setProjectedTicksDirection(rulerDrawingResult.getNormalizedTicksDirection().setZ(0)); + zAxisLabelPositioner.setProjectedTicksDirection(rulerDrawingResult.getNormalizedTicksDirection().setZ(0).setY(1e-7)); } else { /* z-axis not visible: compute the projected ticks direction and distance ratio (see the x-axis case). */ Vector3d zTicksDirection = new Vector3d(txs, tys, 0); @@ -312,7 +310,7 @@ public class AxesRulerDrawer { RulerDrawer[] rulerDrawers = rulerDrawerManager.get(axes); ElementsBuffer vertexBuffer = drawingTools.getCanvas().getBuffersManager().createElementsBuffer(); - final boolean is3D = axes.getViewAsEnum() == Camera.ViewType.VIEW_3D && axes.getRotationAngles()[1] != 90.0; + final boolean is3D = axes.getViewAsEnum() == Camera.ViewType.VIEW_3D;// && axes.getRotationAngles()[1] != 90.0; if (rulerDrawers[0].getModel() == null || rulerDrawers[1].getModel() == null || (is3D && rulerDrawers[2].getModel() == null)) { computeRulers(axes, axesDrawer, colorMap, drawingTools, drawingTools.getTransformationManager().getModelViewStack().peek(), drawingTools.getTransformationManager().getCanvasProjection()); @@ -412,7 +410,7 @@ public class AxesRulerDrawer { if (axes.getZAxisVisible()) { rulerDrawers[2].draw(drawingTools); - if (axes.getZAxisGridColor() != -1 || !axes.getZAxisVisible()) { + if (axes.getZAxisGridColor() != -1) { FloatBuffer vertexData; if (axes.getZAxisLogFlag()) { List values = rulerDrawers[2].getSubTicksValue(); @@ -453,7 +451,7 @@ public class AxesRulerDrawer { drawingTools.getCanvas().getBuffersManager().dispose(vertexBuffer); } - private double getNonZeroSignum(double value) { + private static final double getNonZeroSignum(double value) { if (value < 0) { return -1; } else { -- 1.7.9.5