Bugs 11801 & 11343 definetly (and correctly) fixed 85/11185/3
Calixte DENIZET [Tue, 2 Apr 2013 13:44:00 +0000 (15:44 +0200)]
Change-Id: I2016184347b9cffa8bad78a21d9a0287b68d8e23

scilab/CHANGES_5.5.X
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/AxesDrawer.java

index 5b4dde4..b0866c0 100644 (file)
@@ -48,4 +48,7 @@ Bug fixes
 * Bug #10862 fixed - Add a without internet connection installation
                      global configuration on the installer
 
+* Bug #11343 fixed - The "isoview" figure property did not work when the axes
+                     margins had been modified.
+
 * Bug #12473 fixed - Problems with "é" in french help page of mkdir.
index 82079ee..68b8cd5 100644 (file)
@@ -335,15 +335,13 @@ public class AxesDrawer {
         double w = (1 - margins[0] - margins[1]) * axesBounds[2];
         double h = (1 - margins[2] - margins[3]) * axesBounds[3];
 
-        // Don't know what's the goal of this code (finally w=h=minSize, so why a square ???)
-        // Comment it: that fixes bug 11801.
-        /*if (axes.getIsoview()) {
-          double minSize = Math.min(w, h);
-          y += (h - minSize);
-          h = minSize;
-          x += (w - minSize);
-          w = minSize;
-          }*/
+        if (axes.getIsoview()) {
+            double minSize = Math.min(w, h);
+            y += (h - minSize);
+            h = minSize;
+            x += (w - minSize);
+            w = minSize;
+        }
 
         return new Rectangle2D.Double(x, y, w, h);
     }
@@ -470,9 +468,10 @@ public class AxesDrawer {
         // Scale projected data to fit in the cube.
         Transformation isoScale;
         if (axes.getIsoview()) {
-            Double[] axesBounds = axes.getAxesBounds();
-            double minScale = Math.min(tmpX * axesBounds[2], tmpY * axesBounds[3]);
-            isoScale = TransformationFactory.getScaleTransformation(minScale / axesBounds[2], minScale / axesBounds[3], tmpZ);
+            double w = zone.getWidth();
+            double h = zone.getHeight();
+            double minScale = Math.min(tmpX * w, tmpY * h);
+            isoScale = TransformationFactory.getScaleTransformation(minScale / w, minScale / h, tmpZ);
         } else {
             isoScale = TransformationFactory.getScaleTransformation(tmpX, tmpY, tmpZ);
         }