Fix (???) CACSD tests (6883 & 7828) 09/13209/1
Calixte DENIZET [Fri, 22 Nov 2013 15:22:14 +0000 (16:22 +0100)]
Change-Id: Ib8bb0a8bdc49ba95443ce0d12bee7968b1720858

scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/AxesDrawer.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/AxesRulerDrawer.java
scilab/modules/scirenderer/src/org/scilab/forge/scirenderer/ruler/RulerDrawer.java

index 4d7597b..fdcddba 100644 (file)
@@ -130,7 +130,12 @@ public class AxesDrawer {
         Transformation zoneProjection = computeZoneProjection(axes);
         Transformation transformation = computeBoxTransformation(axes, new Dimension(size[0], size[1]), false);
         Transformation dataTransformation = computeDataTransformation(axes);
-        Transformation windowTrans = drawingTools.getTransformationManager().getWindowTransformation().getInverseTransformation();
+        Transformation windowTrans;
+        if (drawingTools == null) {
+            windowTrans = TransformationFactory.getIdentity();
+        } else {
+            windowTrans = drawingTools.getTransformationManager().getWindowTransformation().getInverseTransformation();
+        }
         Transformation current = zoneProjection.rightTimes(transformation);
         current = current.rightTimes(dataTransformation);
 
@@ -142,7 +147,6 @@ public class AxesDrawer {
      * @param axes the axes
      */
     public void computeRulers(Axes axes) {
-        DrawingTools drawingTools = visitor.getDrawingTools();
         ColorMap colorMap = visitor.getColorMap();
         try {
             Integer[] size = visitor.getFigure().getAxesSize();
@@ -153,7 +157,7 @@ public class AxesDrawer {
             Transformation transformation = computeBoxTransformation(axes, new Dimension(size[0], size[1]), false);
             Transformation canvasTrans = windowTrans.rightTimes(zoneProjection).rightTimes(transformation);
 
-            rulerDrawer.computeRulers(axes, this, colorMap, drawingTools, transformation, canvasTrans);
+            rulerDrawer.computeRulers(axes, this, colorMap, transformation, canvasTrans);
         } catch (DegenerateMatrixException e) {
 
         }
@@ -602,6 +606,10 @@ public class AxesDrawer {
     private Transformation computeProjection(Axes axes, DrawingTools drawingTools, Dimension canvasDimension, boolean use2dView) {
         Transformation projection;
 
+        if (drawingTools == null) {
+            return TransformationFactory.getIdentity();
+        }
+
         try {
             /* Compute the zone projection. */
             Transformation zoneProjection = computeZoneProjection(axes);
index 942b340..5075369 100644 (file)
@@ -94,12 +94,11 @@ public class AxesRulerDrawer {
      * @param axes the current {@see Axes}
      * @param axesDrawer the drawer used to draw the current {@see Axes}
      * @param colorMap current {@see ColorMap}
-     * @param drawingTools the used {@see DrawingTools}
      * @param transformation the current modelView projection
      * @param canvasProjection the canvas projection
      * @throws org.scilab.forge.scirenderer.SciRendererException if draw fail.
      */
-    public void computeRulers(Axes axes, AxesDrawer axesDrawer, ColorMap colorMap, DrawingTools drawingTools, Transformation transformation, Transformation canvasProjection) {
+    public void computeRulers(Axes axes, AxesDrawer axesDrawer, ColorMap colorMap, Transformation transformation, Transformation canvasProjection) {
         Double[] bounds = axes.getDisplayedBounds();
         double[] matrix = transformation.getMatrix();
 
@@ -154,7 +153,7 @@ public class AxesRulerDrawer {
         xAxisLabelPositioner.setLabelPosition(xAxisPosition);
 
         if (axes.getXAxisVisible()) {
-            rulerDrawingResult = rulerDrawers[0].computeRuler(drawingTools, rulerModel, canvasProjection);
+            rulerDrawingResult = rulerDrawers[0].computeRuler(rulerModel, canvasProjection);
             values = rulerDrawingResult.getTicksValues();
 
             if (axes.getXAxisAutoTicks()) {
@@ -202,7 +201,7 @@ public class AxesRulerDrawer {
         yAxisLabelPositioner.setLabelPosition(yAxisPosition);
 
         if (axes.getYAxisVisible()) {
-            rulerDrawingResult = rulerDrawers[1].computeRuler(drawingTools, rulerModel, canvasProjection);
+            rulerDrawingResult = rulerDrawers[1].computeRuler(rulerModel, canvasProjection);
             values = rulerDrawingResult.getTicksValues();
             if (axes.getYAxisAutoTicks()) {
                 Arrays.sort(values);
@@ -264,7 +263,7 @@ public class AxesRulerDrawer {
             zAxisLabelPositioner.setLabelPosition(new Vector3d(xs, ys, 0));
 
             if (axes.getZAxisVisible()) {
-                rulerDrawingResult = rulerDrawers[2].computeRuler(drawingTools, rulerModel, canvasProjection);
+                rulerDrawingResult = rulerDrawers[2].computeRuler(rulerModel, canvasProjection);
                 values = rulerDrawingResult.getTicksValues();
                 if (axes.getZAxisAutoTicks()) {
                     Arrays.sort(values);
@@ -313,7 +312,7 @@ public class AxesRulerDrawer {
         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());
+            computeRulers(axes, axesDrawer, colorMap, drawingTools.getTransformationManager().getModelViewStack().peek(), drawingTools.getTransformationManager().getCanvasProjection());
         }
 
         int gridPosition;
index 743868f..bc58870 100644 (file)
@@ -113,12 +113,11 @@ public class RulerDrawer {
 
     /**
      * Compute different parameters on a ruler
-     * @param drawingTools the {@link DrawingTools} of the canvas where the ruler will be drawn.
      * @param rulerModel the {@link RulerModel} of the drawn ruler.
      * @param canvasProjection the canvas projection.
      */
-    public RulerDrawingResult computeRuler(DrawingTools drawingTools, RulerModel model, Transformation canvasProjection) {
-        return oneShotRulerDrawer.computeRuler(drawingTools, model, canvasProjection);
+    public RulerDrawingResult computeRuler(RulerModel model, Transformation canvasProjection) {
+        return oneShotRulerDrawer.computeRuler(model, canvasProjection);
     }
 
     /**
@@ -192,7 +191,7 @@ public class RulerDrawer {
          * @param rulerModel the {@link RulerModel} of the drawn ruler.
          * @param canvasProjection the canvas projection.
          */
-        public synchronized RulerDrawingResult computeRuler(DrawingTools drawingTools, RulerModel rulerModel, Transformation canvasProjection) {
+        public synchronized RulerDrawingResult computeRuler(RulerModel rulerModel, Transformation canvasProjection) {
             // Same code as drawWithResults (without drawing)
             // Historically, computations were made when drawing and they are made before drawing.
             // TODO: remove drawWithResults ??