Revert "Fix slow rendering with new graphics" 14/7114/2
Vincent COUVERT [Thu, 10 May 2012 12:37:58 +0000 (14:37 +0200)]
This reverts commit cdc2ebf26173a393a8b72e11d49a1fa5e7dcbde8.

Change-Id: Ieb9bc79eef37b1c796af414ce25642076c5ec85e

49 files changed:
scilab/modules/graphic_objects/includes/CurrentFigure.h
scilab/modules/graphic_objects/src/cpp/CurrentFigure.cpp
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/CallGraphicController.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/TicksProperty.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/Figure.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicController/GraphicController.java
scilab/modules/graphic_objects/src/jni/CallGraphicController.cpp
scilab/modules/graphic_objects/src/jni/CallGraphicController.hxx
scilab/modules/graphic_objects/src/jni/graphic_objects.giws.xml
scilab/modules/graphics/Makefile.am
scilab/modules/graphics/macros/colorbar.sci
scilab/modules/graphics/sci_gateway/c/sci_delete.c
scilab/modules/graphics/sci_gateway/c/sci_drawaxis.c
scilab/modules/graphics/sci_gateway/c/sci_fec.c
scilab/modules/graphics/sci_gateway/c/sci_grayplot.c
scilab/modules/graphics/sci_gateway/c/sci_matplot.c
scilab/modules/graphics/sci_gateway/c/sci_matplot1.c
scilab/modules/graphics/sci_gateway/c/sci_move.c
scilab/modules/graphics/sci_gateway/c/sci_newaxes.c
scilab/modules/graphics/sci_gateway/c/sci_param3d.c
scilab/modules/graphics/sci_gateway/c/sci_param3d1.c
scilab/modules/graphics/sci_gateway/c/sci_plot2d.c
scilab/modules/graphics/sci_gateway/c/sci_plot2d1.c
scilab/modules/graphics/sci_gateway/c/sci_plot3d.c
scilab/modules/graphics/sci_gateway/c/sci_show_pixmap.c
scilab/modules/graphics/sci_gateway/c/sci_unzoom.c
scilab/modules/graphics/sci_gateway/c/sci_xarc.c
scilab/modules/graphics/sci_gateway/c/sci_xarcs.c
scilab/modules/graphics/sci_gateway/c/sci_xarrows.c
scilab/modules/graphics/sci_gateway/c/sci_xdel.c
scilab/modules/graphics/sci_gateway/c/sci_xfarcs.c
scilab/modules/graphics/sci_gateway/c/sci_xfpoly.c
scilab/modules/graphics/sci_gateway/c/sci_xfpolys.c
scilab/modules/graphics/sci_gateway/c/sci_xgrid.c
scilab/modules/graphics/sci_gateway/c/sci_xpoly.c
scilab/modules/graphics/sci_gateway/c/sci_xpolys.c
scilab/modules/graphics/sci_gateway/c/sci_xrect.c
scilab/modules/graphics/sci_gateway/c/sci_xrects.c
scilab/modules/graphics/sci_gateway/c/sci_xsegs.c
scilab/modules/graphics/sci_gateway/c/sci_xset.c
scilab/modules/graphics/sci_gateway/c/sci_xstring.c
scilab/modules/graphics/sci_gateway/c/sci_xstringb.c
scilab/modules/graphics/sci_gateway/c/sci_xtitle.c
scilab/modules/graphics/src/c/Champ.c
scilab/modules/graphics/src/c/DrawObjects.c
scilab/modules/graphics/src/c/Plo2dn.c
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/canvas/SwingScilabCanvas.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DrawerVisitor.java
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/AxesRulerSpriteFactory.java

index 0889753..864ef3d 100644 (file)
@@ -29,12 +29,4 @@ GRAPHIC_OBJECTS_IMPEXP void setCurrentFigure(char* UID);
  */
 GRAPHIC_OBJECTS_IMPEXP BOOL isCurrentFigure(char* UID);
 
-GRAPHIC_OBJECTS_IMPEXP void startFigureDataWriting(char * UID);
-
-GRAPHIC_OBJECTS_IMPEXP void endFigureDataWriting(char * UID);
-
-GRAPHIC_OBJECTS_IMPEXP void startCurrentFigureDataWriting();
-
-GRAPHIC_OBJECTS_IMPEXP void endCurrentFigureDataWriting();
-
 #endif /* !__CURRENT_FIGURE_H__ */
index 9d28e37..8310220 100644 (file)
@@ -16,13 +16,8 @@ extern "C"
 {
 #include "BOOL.h"
 #include "CurrentFigure.h"
-#include "setGraphicObjectProperty.h"
-#include "graphicObjectProperties.h"
-#include "getScilabJavaVM.h"
 }
 
-#include "CallGraphicController.hxx"
-
 char* getCurrentFigure(void)
 {
     return ScilabView::getCurrentFigure();
@@ -41,24 +36,3 @@ BOOL isCurrentFigure(char* UID)
     }
     return FALSE;
 }
-
-
-void startCurrentFigureDataWriting()
-{
-    startFigureDataWriting(getCurrentFigure());
-}
-
-void endCurrentFigureDataWriting()
-{
-    endFigureDataWriting(getCurrentFigure());
-}
-
-void startFigureDataWriting(char * UID)
-{
-    org_scilab_modules_graphic_objects::CallGraphicController::disableDrawing(getScilabJavaVM(), UID);
-}
-
-void endFigureDataWriting(char * UID)
-{
-    org_scilab_modules_graphic_objects::CallGraphicController::enableDrawing(getScilabJavaVM(), UID);
-}
index d026f73..289b923 100644 (file)
@@ -25,14 +25,6 @@ import org.scilab.modules.graphic_objects.utils.MenuBarBuilder;
  **/
 public final class CallGraphicController {
 
-    public static void disableDrawing(String id) {
-        GraphicController.getController().disableDrawing(id);
-    }
-
-    public static void enableDrawing(String id) {
-        GraphicController.getController().enableDrawing(id);
-    }
-
     public static void setGraphicObjectRelationship(String parentId, String childId) {
         GraphicController.getController().setGraphicObjectRelationship(parentId, childId);
     }
index 94e0ea9..29ab827 100644 (file)
@@ -22,541 +22,525 @@ import org.scilab.modules.graphic_objects.textObject.FormattedText;
  * @author Manuel JULIACHS
  */
 public class TicksProperty {
-    /** TicksProperty properties names */
-    public enum TicksPropertyProperty { AUTO, LOCATIONS, LABELS,
-            FONT_SIZE, FONT_STYLE, FONT_COLOR, SUBTICKS };
-
-    /** Default number of ticks */
-    private static final int DEFAULT_NUMBER_OF_TICKS = 11;
-
-    /** Specifies whether ticks are automatically computed or not */
-    private boolean auto;
-
-    /** Number of subticks between two main ticks */
-    private int subticks;
-
-    /** Default font */
-    private Font defaultFont;
-
-    /** TicksArrays class */
-    private class TicksArrays {
-        /** Ticks locations */
-        private double[] locations;
-
-        /** Ticks labels */
-        private ArrayList <FormattedText> labels;
-
-        /** Number of ticks */
-        private int number;
-
-        /**
-         * Constructor
-         */
-        public TicksArrays(int number) {
-            locations = new double[number];
-            labels = new ArrayList<FormattedText>(number);
-
-            for (int i = 0; i < number; i++) {
-                labels.add(i, new FormattedText());
-            }
-
-            this.number = number;
-        }
-
-        /**
-         * @return the number of ticks
-         */
-        public Integer getNumber() {
-            return number;
-        }
-
-        /**
-         * @return the labels
-         */
-        public ArrayList<FormattedText> getLabels() {
-            return labels;
-        }
-
-        /**
-         * @param labels the labels to set
-         */
-        public void setLabels(ArrayList<FormattedText> labels) {
-            if (!this.labels.isEmpty()) {
-                this.labels.clear();
-            }
-
-            for (int i = 0; i < labels.size(); i++) {
-                this.labels.add(i, new FormattedText(labels.get(i)));
-            }
-        }
-
-        /**
-         * @return the labels strings
-         */
-        public String[] getLabelsStrings() {
-            String[] labelsStrings;
-
-            labelsStrings = new String[number];
-
-            for (int i = 0; i < number; i++) {
-                labelsStrings[i] = new String(labels.get(i).getText());
-            }
-
-            return labelsStrings;
-        }
-
-        /**
-         * Sets the ticks labels strings
-         * Requires the corresponding ticks locations to have previously been set.
-         * @param labels the labels to set
-         */
-        public void setLabelsStrings(String[] labels) {
-            if (labels.length != number) {
-                return;
-            }
-
-            if (this.labels == null || this.labels.size() != labels.length) {
-                this.labels = new ArrayList<FormattedText>(0);
-
-                for (int i = 0; i < labels.length; i++) {
-                    FormattedText newText = new FormattedText();
-
-                    newText.setFont(new Font(defaultFont));
-                    this.labels.add(i, newText);
-                }
-            }
-
-            for (int i = 0; i < number; i++) {
-                this.labels.get(i).setText(labels[i]);
-            }
-        }
-
-        /**
-         * @return the locations
-         */
-        public Double[] getLocations() {
-            Double[] retLocations;
-
-            retLocations = new Double[number];
-
-            for (int i = 0; i < number; i++) {
-                retLocations[i] = locations[i];
-            }
-
-            return retLocations;
-        }
-
-        /**
-         * Sets the ticks locations
-         * Also sets the current number of ticks to the size of the locations array
-         * if the latter is resized.
-         * @param locations the locations to set
-         */
-        public void setLocations(Double[] locations) {
-            if (this.locations == null || number != locations.length) {
-                this.locations = new double[locations.length];
-                number = locations.length;
-            }
-
-            for (int i = 0; i < locations.length; i++) {
-                this.locations[i] = locations[i];
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font style.
-         * To be corrected.
-         * @return the ticks labels font style
-         */
-        public Integer getFontStyle() {
-            if (!labels.isEmpty()) {
-                return labels.get(0).getFont().getStyle();
-            } else {
-                return 0;
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font style.
-         * To be corrected.
-         * @param fontStyle the ticks labels font style to set
-         */
-        public void setFontStyle(Integer fontStyle) {
-            for (int i = 0; i < labels.size(); i++) {
-                labels.get(i).getFont().setStyle(fontStyle);
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font size.
-         * To be corrected.
-         * @return the ticks labels font size
-         */
-        public Double getFontSize() {
-            if (!labels.isEmpty()) {
-                return labels.get(0).getFont().getSize();
-            } else {
-                return 1.0;
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font size.
-         * To be corrected.
-         * @param fontSize the ticks labels font size to set
-         */
-        public void setFontSize(Double fontSize) {
-            for (int i = 0; i < labels.size(); i++) {
-                labels.get(i).getFont().setSize(fontSize);
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font color.
-         * To be corrected.
-         * @return the ticks labels font color
-         */
-        public Integer getFontColor() {
-            if (!labels.isEmpty()) {
-                return labels.get(0).getFont().getColor();
-            } else {
-                return 0;
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font color.
-         * To be corrected.
-         * @param fontColor the ticks labels font color to set
-         */
-        public void setFontColor(Integer fontColor) {
-            for (int i = 0; i < labels.size(); i++) {
-                labels.get(i).getFont().setColor(fontColor);
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font fractional.
-         * To be corrected.
-         * @return the ticks labels font fractional
-         */
-        public Boolean getFontFractional() {
-            if (!labels.isEmpty()) {
-                return labels.get(0).getFont().getFractional();
-            } else {
-                return false;
-            }
-        }
-
-        /**
-         * Supposes all ticks labels have the same font fractional.
-         * To be corrected.
-         * @param fontFractional the ticks labels font fractional to set
-         */
-        public void setFontFractional(Boolean fontFractional) {
-            for (int i = 0; i < labels.size(); i++) {
-                labels.get(i).getFont().setFractional(fontFractional);
-            }
-        }
-
-
-    }
-
-    /** Automatic ticks */
-    TicksArrays automaticTicks;
-
-    /** User ticks */
-    TicksArrays userTicks;
-
-    /** Constructor */
-    public TicksProperty() {
-        auto = false;
-
-        subticks = 0;
-
-        defaultFont = new Font();
-
-        automaticTicks = new TicksArrays(DEFAULT_NUMBER_OF_TICKS);
-        userTicks = new TicksArrays(0);
-    }
-
-    /**
-     * Copy constructor
-     * @param ticksProperty the TicksProperty to copy
-     */
-    public TicksProperty(TicksProperty ticksProperty) {
-        auto = ticksProperty.auto;
-
-        subticks = ticksProperty.subticks;
-
-        defaultFont = new Font(ticksProperty.defaultFont);
-
-        automaticTicks = new TicksArrays(0);
-        userTicks = new TicksArrays(0);
-
-        automaticTicks.setLocations(ticksProperty.automaticTicks.getLocations());
-        userTicks.setLocations(ticksProperty.userTicks.getLocations());
-
-        automaticTicks.setLabels(ticksProperty.automaticTicks.getLabels());
-        userTicks.setLabels(ticksProperty.userTicks.getLabels());
-    }
-
-    /**
-     * @return the auto
-     */
-    public Boolean getAuto() {
-        return auto;
-    }
-
-    /**
-     * @param auto the auto to set
-     */
-    public void setAuto(Boolean auto) {
-        this.auto = auto;
-    }
-
-    /**
-     * @return the labels
-     */
-    public ArrayList<FormattedText> getLabels() {
-        if (auto) {
-            return automaticTicks.getLabels();
-        } else {
-            return userTicks.getLabels();
-        }
-    }
-
-    /**
-     * @param labels the labels to set
-     */
-    public void setLabels(ArrayList<FormattedText> labels) {
-        if (auto) {
-            automaticTicks.setLabels(labels);
-        } else {
-            userTicks.setLabels(labels);
-        }
-    }
-
-    /**
-     * @return the labels strings
-     */
-    public String[] getLabelsStrings() {
-        if (auto) {
-            return automaticTicks.getLabelsStrings();
-        } else  {
-            return userTicks.getLabelsStrings();
-        }
-    }
-
-    /**
-     * Sets the ticks labels strings
-     * Requires the corresponding ticks locations to have previously been set.
-     * @param labels the labels to set
-     */
-    public void setLabelsStrings(String[] labels) {
-        if (auto) {
-            automaticTicks.setLabelsStrings(labels);
-        } else {
-            userTicks.setLabelsStrings(labels);
-        }
-    }
-
-    /**
-     * @return the number of ticks
-     */
-    public Integer getNumber() {
-        if (auto) {
-            return automaticTicks.getNumber();
-        } else {
-            return userTicks.getNumber();
-        }
-    }
-
-    /**
-     * @return the locations
-     */
-    public Double[] getLocations() {
-        if (auto) {
-            return automaticTicks.getLocations();
-        } else {
-            return userTicks.getLocations();
-        }
-    }
-
-    /**
-     * Sets the ticks locations
-     * Also sets the current number of ticks to the size of the locations array
-     * if the latter is resized.
-     * @param locations the locations to set
-     */
-    public void setLocations(Double[] locations) {
-        if (auto) {
-            automaticTicks.setLocations(locations);
-        } else {
-            userTicks.setLocations(locations);
-        }
-    }
-
-    /**
-     * @return the subticks
-     */
-    public Integer getSubticks() {
-        return subticks;
-    }
-
-    /**
-     * @param subticks the subticks to set
-     */
-    public void setSubticks(Integer subticks) {
-        this.subticks = subticks;
-    }
-
-    /**
-     * Supposes that all automatic and user ticks labels have the same font style.
-     * To be corrected (commented out block) when the associated C get function is completed.
-     * @return the ticks labels font style
-     */
-    public Integer getFontStyle() {
-        return automaticTicks.getFontStyle();
-
-        /*
-          if (auto) {
-          return automaticTicks.getFontStyle();
-          } else {
-          return userTicks.getFontStyle();
-          }
-        */
-    }
-
-    /**
-     * Supposes that all automatic and user ticks labels have the same font style.
-     * To be corrected (commented out block) when the associated C set function is completed.
-     * @param fontStyle the ticks labels font style to set
-     */
-    public void setFontStyle(Integer fontStyle) {
-        defaultFont.setStyle(fontStyle);
-
-        automaticTicks.setFontStyle(fontStyle);
-        userTicks.setFontStyle(fontStyle);
-
-        /*
-          if (auto) {
-          automaticTicks.setFontStyle(fontStyle);
-          } else {
-          userTicks.setFontStyle(fontStyle);
-          }
-        */
-    }
-
-    /**
-     * Supposes that all automatic and user ticks labels have the same font size.
-     * To be corrected (commented out block) when the associated C get function is completed.
-     * @return the ticks labels font size
-     */
-    public Double getFontSize() {
-        return automaticTicks.getFontSize();
-
-        /*
-          if (auto) {
-          return automaticTicks.getFontSize();
-          } else {
-          return userTicks.getFontSize();
-          }
-        */
-    }
-
-    /**
-     * Supposes that all automatic and user ticks labels have the same font size.
-     * To be corrected (commented out block) when the associated C set function is completed.
-     * @param fontSize the ticks labels font size to set
-     */
-    public void setFontSize(Double fontSize) {
-        defaultFont.setSize(fontSize);
-
-        automaticTicks.setFontSize(fontSize);
-        userTicks.setFontSize(fontSize);
-
-        /*
-          if (auto) {
-          automaticTicks.setFontSize(fontSize);
-          } else {
-          userTicks.setFontSize(fontSize);
-          }
-        */
-    }
-
-    /**
-     * Supposes that all automatic and user ticks labels have the same font color.
-     * To be corrected (commented out block) when the associated C get function is completed.
-     * @return the ticks labels font color
-     */
-    public Integer getFontColor() {
-        return automaticTicks.getFontColor();
-
-        /*
-          if (auto) {
-          return automaticTicks.getFontColor();
-          } else {
-          return userTicks.getFontColor();
-          }
-        */
-    }
-
-    /**
-     * Supposes that all automatic and user ticks labels have the same font color.
-     * To be corrected (commented out block) when the associated C set function is completed.
-     * @param fontColor the ticks labels font color to set
-     */
-    public void setFontColor(Integer fontColor) {
-        defaultFont.setColor(fontColor);
-
-        automaticTicks.setFontColor(fontColor);
-        userTicks.setFontColor(fontColor);
-
-        /*
-          if (auto) {
-          automaticTicks.setFontColor(fontColor);
-          } else {
-          userTicks.setFontColor(fontColor);
-          }
-        */
-    }
-
-    /**
-     * Supposes all automatic and user ticks labels have the same font fractional.
-     * To be corrected (commented out block) when the associated C get function is completed.
-     * @return the ticks labels font fractional
-     */
-    public Boolean getFontFractional() {
-        return automaticTicks.getFontFractional();
-
-        /*
-          if (auto) {
-          return automaticTicks.getFontFractional();
-          } else {
-          return userTicks.getFontFractional();
-          }
-        */
-    }
-
-    /**
-     * Supposes all automatic and user ticks labels have the same font fractional.
-     * To be corrected (commented out block) when the associated C set function is completed.
-     * @param fontFractional the ticks labels font fractional to set
-     */
-    public void setFontFractional(Boolean fontFractional) {
-        defaultFont.setFractional(fontFractional);
-
-        automaticTicks.setFontFractional(fontFractional);
-        userTicks.setFontFractional(fontFractional);
-
-        /*
-          if (auto) {
-          automaticTicks.setFontFractional(fontFractional);
-          } else {
-          userTicks.setFontFractional(fontFractional);
-          }
-        */
-    }
+       /** TicksProperty properties names */
+       public enum TicksPropertyProperty { AUTO, LOCATIONS, LABELS,
+               FONT_SIZE, FONT_STYLE, FONT_COLOR, SUBTICKS };
+
+       /** Default number of ticks */
+       private static final int DEFAULT_NUMBER_OF_TICKS = 11;
+
+       /** Specifies whether ticks are automatically computed or not */
+       private boolean auto;
+
+       /** Number of subticks between two main ticks */
+       private int subticks;
+
+       /** Default font */
+       private Font defaultFont;
+
+       /** TicksArrays class */
+       private class TicksArrays {
+               /** Ticks locations */
+               private double[] locations;
+
+               /** Ticks labels */
+               private ArrayList <FormattedText> labels;
+
+               /** Number of ticks */
+               private int number;
+
+               /**
+                * Constructor
+                */
+               public TicksArrays(int number) {
+                       locations = new double[number];
+                       labels = new ArrayList<FormattedText>(number);
+
+                       for (int i = 0; i < number; i++) {
+                               labels.add(i, new FormattedText());
+                       }
+
+                       this.number = number;
+               }
+
+               /**
+                * @return the number of ticks
+                */
+               public Integer getNumber() {
+                       return number;
+               }
+
+               /**
+                * @return the labels
+                */
+               public ArrayList<FormattedText> getLabels() {
+                       return labels;
+               }
+
+               /**
+                * @param labels the labels to set
+                */
+               public void setLabels(ArrayList<FormattedText> labels) {
+                       if (!this.labels.isEmpty()) {
+                               this.labels.clear();
+                       }
+
+                       for (int i = 0; i < labels.size(); i++) {
+                               this.labels.add(i, new FormattedText(labels.get(i)));
+                       }
+               }
+
+               /**
+                * @return the labels strings
+                */
+               public String[] getLabelsStrings() {
+                       String[] labelsStrings;
+
+                       labelsStrings = new String[number];
+
+                       for (int i = 0; i < number; i++) {
+                               labelsStrings[i] = new String(labels.get(i).getText());
+                       }
+
+                       return labelsStrings;
+               }
+
+               /**
+                * Sets the ticks labels strings
+                * Requires the corresponding ticks locations to have previously been set.
+                * @param labels the labels to set
+                */
+               public void setLabelsStrings(String[] labels) {
+                       if (labels.length != number) {
+                               return;
+                       }
+
+                       if (this.labels == null || this.labels.size() != labels.length) {
+                               this.labels = new ArrayList<FormattedText>(0);
+
+                               for (int i = 0; i < labels.length; i++) {
+                                       FormattedText newText = new FormattedText();
+
+                                       newText.setFont(new Font(defaultFont));
+                                       this.labels.add(i, newText);
+                               }
+                       }
+
+                       for (int i = 0; i < number; i++) {
+                               this.labels.get(i).setText(labels[i]);
+                       }
+               }
+
+               /**
+                * @return the locations
+                */
+               public Double[] getLocations() {
+                       Double[] retLocations;
+
+                       retLocations = new Double[number];
+
+                       for (int i = 0; i < number; i++) {
+                               retLocations[i] = locations[i];
+                       }
+
+                       return retLocations;
+               }
+
+               /**
+                * Sets the ticks locations
+                * Also sets the current number of ticks to the size of the locations array
+                * if the latter is resized.
+                * @param locations the locations to set
+                */
+               public void setLocations(Double[] locations) {
+                       if (this.locations == null || number != locations.length) {
+                               this.locations = new double[locations.length];
+                               number = locations.length;
+                       }
+
+                       for (int i = 0; i < locations.length; i++) {
+                               this.locations[i] = locations[i];
+                       }
+               }
+
+               /**
+                * Supposes all ticks labels have the same font style.
+                * To be corrected.
+                * @return the ticks labels font style
+                */
+               public Integer getFontStyle() {
+                       return labels.get(0).getFont().getStyle();
+               }
+
+               /**
+                * Supposes all ticks labels have the same font style.
+                * To be corrected.
+                * @param fontStyle the ticks labels font style to set
+                */
+               public void setFontStyle(Integer fontStyle) {
+                       for (int i = 0; i < labels.size(); i++) {
+                               labels.get(i).getFont().setStyle(fontStyle);
+                       }
+               }
+
+               /**
+                * Supposes all ticks labels have the same font size.
+                * To be corrected.
+                * @return the ticks labels font size
+                */
+               public Double getFontSize() {
+                       return labels.get(0).getFont().getSize();
+               }
+
+               /**
+                * Supposes all ticks labels have the same font size.
+                * To be corrected.
+                * @param fontSize the ticks labels font size to set
+                */
+               public void setFontSize(Double fontSize) {
+                       for (int i = 0; i < labels.size(); i++) {
+                               labels.get(i).getFont().setSize(fontSize);
+                       }
+               }
+
+               /**
+                * Supposes all ticks labels have the same font color.
+                * To be corrected.
+                * @return the ticks labels font color
+                */
+               public Integer getFontColor() {
+                       return labels.get(0).getFont().getColor();
+               }
+
+               /**
+                * Supposes all ticks labels have the same font color.
+                * To be corrected.
+                * @param fontColor the ticks labels font color to set
+                */
+               public void setFontColor(Integer fontColor) {
+                       for (int i = 0; i < labels.size(); i++) {
+                               labels.get(i).getFont().setColor(fontColor);
+                       }
+               }
+
+               /**
+                * Supposes all ticks labels have the same font fractional.
+                * To be corrected.
+                * @return the ticks labels font fractional
+                */
+               public Boolean getFontFractional() {
+                       return labels.get(0).getFont().getFractional();
+               }
+
+               /**
+                * Supposes all ticks labels have the same font fractional.
+                * To be corrected.
+                * @param fontFractional the ticks labels font fractional to set
+                */
+               public void setFontFractional(Boolean fontFractional) {
+                       for (int i = 0; i < labels.size(); i++) {
+                               labels.get(i).getFont().setFractional(fontFractional);
+                       }
+               }
+
+
+       }
+
+       /** Automatic ticks */
+       TicksArrays automaticTicks;
+
+       /** User ticks */
+       TicksArrays userTicks;
+
+       /** Constructor */
+       public TicksProperty() {
+               auto = false;
+
+               subticks = 0;
+
+               defaultFont = new Font();
+
+               automaticTicks = new TicksArrays(DEFAULT_NUMBER_OF_TICKS);
+               userTicks = new TicksArrays(0);
+       }
+
+       /**
+        * Copy constructor
+        * @param ticksProperty the TicksProperty to copy
+        */
+       public TicksProperty(TicksProperty ticksProperty) {
+               auto = ticksProperty.auto;
+
+               subticks = ticksProperty.subticks;
+
+               defaultFont = new Font(ticksProperty.defaultFont);
+
+               automaticTicks = new TicksArrays(0);
+               userTicks = new TicksArrays(0);
+
+               automaticTicks.setLocations(ticksProperty.automaticTicks.getLocations());
+               userTicks.setLocations(ticksProperty.userTicks.getLocations());
+
+               automaticTicks.setLabels(ticksProperty.automaticTicks.getLabels());
+               userTicks.setLabels(ticksProperty.userTicks.getLabels());
+       }
+
+       /**
+        * @return the auto
+        */
+       public Boolean getAuto() {
+               return auto;
+       }
+
+       /**
+        * @param auto the auto to set
+        */
+       public void setAuto(Boolean auto) {
+               this.auto = auto;
+       }
+
+       /**
+        * @return the labels
+        */
+       public ArrayList<FormattedText> getLabels() {
+               if (auto) {
+                       return automaticTicks.getLabels();
+               } else {
+                       return userTicks.getLabels();
+               }
+       }
+
+       /**
+        * @param labels the labels to set
+        */
+       public void setLabels(ArrayList<FormattedText> labels) {
+               if (auto) {
+                       automaticTicks.setLabels(labels);
+               } else {
+                       userTicks.setLabels(labels);
+               }
+       }
+
+       /**
+        * @return the labels strings
+        */
+       public String[] getLabelsStrings() {
+               if (auto) {
+                       return automaticTicks.getLabelsStrings();
+               } else  {
+                       return userTicks.getLabelsStrings();
+               }
+       }
+
+       /**
+        * Sets the ticks labels strings
+        * Requires the corresponding ticks locations to have previously been set.
+        * @param labels the labels to set
+        */
+       public void setLabelsStrings(String[] labels) {
+               if (auto) {
+                       automaticTicks.setLabelsStrings(labels);
+               } else {
+                       userTicks.setLabelsStrings(labels);
+               }
+       }
+
+       /**
+        * @return the number of ticks
+        */
+       public Integer getNumber() {
+               if (auto) {
+                       return automaticTicks.getNumber();
+               } else {
+                       return userTicks.getNumber();
+               }
+       }
+
+       /**
+        * @return the locations
+        */
+       public Double[] getLocations() {
+               if (auto) {
+                       return automaticTicks.getLocations();
+               } else {
+                       return userTicks.getLocations();
+               }
+       }
+
+       /**
+        * Sets the ticks locations
+        * Also sets the current number of ticks to the size of the locations array
+        * if the latter is resized.
+        * @param locations the locations to set
+        */
+       public void setLocations(Double[] locations) {
+               if (auto) {
+                       automaticTicks.setLocations(locations);
+               } else {
+                       userTicks.setLocations(locations);
+               }
+       }
+
+       /**
+        * @return the subticks
+        */
+       public Integer getSubticks() {
+               return subticks;
+       }
+
+       /**
+        * @param subticks the subticks to set
+        */
+       public void setSubticks(Integer subticks) {
+               this.subticks = subticks;
+       }
+
+       /**
+        * Supposes that all automatic and user ticks labels have the same font style.
+        * To be corrected (commented out block) when the associated C get function is completed.
+        * @return the ticks labels font style
+        */
+       public Integer getFontStyle() {
+               return automaticTicks.getFontStyle();
+
+               /*
+               if (auto) {
+                       return automaticTicks.getFontStyle();
+               } else {
+                       return userTicks.getFontStyle();
+               }
+               */
+       }
+
+       /**
+        * Supposes that all automatic and user ticks labels have the same font style.
+        * To be corrected (commented out block) when the associated C set function is completed.
+        * @param fontStyle the ticks labels font style to set
+        */
+       public void setFontStyle(Integer fontStyle) {
+               defaultFont.setStyle(fontStyle);
+
+               automaticTicks.setFontStyle(fontStyle);
+               userTicks.setFontStyle(fontStyle);
+
+               /*
+               if (auto) {
+                       automaticTicks.setFontStyle(fontStyle);
+               } else {
+                       userTicks.setFontStyle(fontStyle);
+               }
+               */
+       }
+
+       /**
+        * Supposes that all automatic and user ticks labels have the same font size.
+        * To be corrected (commented out block) when the associated C get function is completed.
+        * @return the ticks labels font size
+        */
+       public Double getFontSize() {
+               return automaticTicks.getFontSize();
+
+               /*
+               if (auto) {
+                       return automaticTicks.getFontSize();
+               } else {
+                       return userTicks.getFontSize();
+               }
+               */
+       }
+
+       /**
+        * Supposes that all automatic and user ticks labels have the same font size.
+        * To be corrected (commented out block) when the associated C set function is completed.
+        * @param fontSize the ticks labels font size to set
+        */
+       public void setFontSize(Double fontSize) {
+               defaultFont.setSize(fontSize);
+
+               automaticTicks.setFontSize(fontSize);
+               userTicks.setFontSize(fontSize);
+
+               /*
+               if (auto) {
+                       automaticTicks.setFontSize(fontSize);
+               } else {
+                       userTicks.setFontSize(fontSize);
+               }
+               */
+       }
+
+       /**
+        * Supposes that all automatic and user ticks labels have the same font color.
+        * To be corrected (commented out block) when the associated C get function is completed.
+        * @return the ticks labels font color
+        */
+       public Integer getFontColor() {
+               return automaticTicks.getFontColor();
+
+               /*
+               if (auto) {
+                       return automaticTicks.getFontColor();
+               } else {
+                       return userTicks.getFontColor();
+               }
+               */
+       }
+
+       /**
+        * Supposes that all automatic and user ticks labels have the same font color.
+        * To be corrected (commented out block) when the associated C set function is completed.
+        * @param fontColor the ticks labels font color to set
+        */
+       public void setFontColor(Integer fontColor) {
+               defaultFont.setColor(fontColor);
+
+               automaticTicks.setFontColor(fontColor);
+               userTicks.setFontColor(fontColor);
+
+               /*
+               if (auto) {
+                       automaticTicks.setFontColor(fontColor);
+               } else {
+                       userTicks.setFontColor(fontColor);
+               }
+               */
+       }
+
+       /**
+        * Supposes all automatic and user ticks labels have the same font fractional.
+        * To be corrected (commented out block) when the associated C get function is completed.
+        * @return the ticks labels font fractional
+        */
+       public Boolean getFontFractional() {
+               return automaticTicks.getFontFractional();
+
+               /*
+               if (auto) {
+                       return automaticTicks.getFontFractional();
+               } else {
+                       return userTicks.getFontFractional();
+               }
+               */
+       }
+
+       /**
+        * Supposes all automatic and user ticks labels have the same font fractional.
+        * To be corrected (commented out block) when the associated C set function is completed.
+        * @param fontFractional the ticks labels font fractional to set
+        */
+       public void setFontFractional(Boolean fontFractional) {
+               defaultFont.setFractional(fontFractional);
+
+               automaticTicks.setFontFractional(fontFractional);
+               userTicks.setFontFractional(fontFractional);
+
+               /*
+               if (auto) {
+                       automaticTicks.setFontFractional(fontFractional);
+               } else {
+                       userTicks.setFontFractional(fontFractional);
+               }
+               */
+       }
 
 }
index f793cc9..cc40013 100644 (file)
@@ -345,8 +345,6 @@ public class Figure extends GraphicObject {
     /** Rotation type */
     private RotationType rotation;
 
-    private boolean drawingEnabled;
-
     /** Constructor */
     public Figure() {
         super();
@@ -361,7 +359,6 @@ public class Figure extends GraphicObject {
         eventHandler = new EventHandler();
         tag = "";
         rotation = RotationType.UNARY;
-       drawingEnabled = false;//true;
     }
 
     @Override
@@ -386,18 +383,6 @@ public class Figure extends GraphicObject {
         visitor.visit(this);
     }
 
-    public void enableDrawing() {
-       drawingEnabled = true;
-    }
-
-    public void disableDrawing() {
-       drawingEnabled = false;
-    }
-
-    public boolean canDraw() {
-       return drawingEnabled && getImmediateDrawing() && !getPixmap();
-    }
-
     /**
      * Returns the enum associated to a property name
      * @param propertyName the property name
@@ -868,7 +853,7 @@ public class Figure extends GraphicObject {
      * @param immediateDrawing the immediateDrawing to set
      */
     public void setImmediateDrawing(Boolean immediateDrawing) {
-       renderingMode.immediateDrawing = immediateDrawing;
+        renderingMode.immediateDrawing = immediateDrawing;
     }
 
     /**
index aa07a1b..93f5779 100644 (file)
@@ -20,7 +20,6 @@ import java.util.HashSet;
 import java.util.Set;
 import java.util.Vector;
 
-import org.scilab.modules.graphic_objects.figure.Figure;
 import org.scilab.modules.graphic_objects.graphicModel.GraphicModel;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
@@ -119,23 +118,6 @@ public class GraphicController {
         return new UID();
     }
 
-    public void enableDrawing(String id) {
-       GraphicObject go = GraphicModel.getModel().getObjectFromId(id);
-       if (go instanceof Figure) {
-           Figure figure = (Figure) go;
-           figure.enableDrawing(); 
-           objectUpdate(id, "");
-       }
-    }
-
-    public void disableDrawing(String id) {
-       GraphicObject go = GraphicModel.getModel().getObjectFromId(id);
-       if (go instanceof Figure) {
-           Figure figure = (Figure) go;
-           figure.disableDrawing(); 
-       }
-    }
-
     /**
      * Returns the object associated to an id
      * @param id the object id
index 5d6b8c9..f3ec4ef 100644 (file)
@@ -1,6 +1,6 @@
 #include "CallGraphicController.hxx"
 /* Generated by GIWS (version 2.0.0) with command:
-giws -e -r -f graphic_objects.giws.xml 
+giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/graphic_objects.giws.xml 
 */
 /*
 
@@ -110,8 +110,6 @@ throw GiwsException::JniObjectCreationException(curEnv, this->className());
 curEnv->DeleteLocalRef(localInstance);
 
                 /* Methods ID set to NULL */
-voiddisableDrawingjstringjava_lang_StringID=NULL;
-voidenableDrawingjstringjava_lang_StringID=NULL;
 voiddeleteGraphicObjectjstringjava_lang_StringID=NULL;
 jstringcloneGraphicObjectjstringjava_lang_StringID=NULL;
 jstringaskGraphicObjectjstringjava_lang_StringID=NULL;
@@ -159,9 +157,7 @@ throw GiwsException::JniObjectCreationException(curEnv, this->className());
 throw GiwsException::JniObjectCreationException(curEnv, this->className());
         }
         /* Methods ID set to NULL */
-        voiddisableDrawingjstringjava_lang_StringID=NULL;
-voidenableDrawingjstringjava_lang_StringID=NULL;
-voiddeleteGraphicObjectjstringjava_lang_StringID=NULL;
+        voiddeleteGraphicObjectjstringjava_lang_StringID=NULL;
 jstringcloneGraphicObjectjstringjava_lang_StringID=NULL;
 jstringaskGraphicObjectjstringjava_lang_StringID=NULL;
 voidsetGraphicObjectRelationshipjstringjava_lang_Stringjstringjava_lang_StringID=NULL;
@@ -205,58 +201,6 @@ throw GiwsException::JniMonitorException(getCurrentEnv(), "CallGraphicController
 }
 // Method(s)
 
-void CallGraphicController::disableDrawing (JavaVM * jvm_, char const* id){
-
-JNIEnv * curEnv = NULL;
-jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
-jclass cls = curEnv->FindClass( className().c_str() );
-
-jmethodID voiddisableDrawingjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "disableDrawing", "(Ljava/lang/String;)V" ) ;
-if (voiddisableDrawingjstringjava_lang_StringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "disableDrawing");
-}
-
-jstring id_ = curEnv->NewStringUTF( id );
-if (id != NULL && id_ == NULL)
-{
-throw GiwsException::JniBadAllocException(curEnv);
-}
-
-
-                         curEnv->CallStaticVoidMethod(cls, voiddisableDrawingjstringjava_lang_StringID ,id_);
-                        curEnv->DeleteLocalRef(id_);
-curEnv->DeleteLocalRef(cls);
-if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
-}
-}
-
-void CallGraphicController::enableDrawing (JavaVM * jvm_, char const* id){
-
-JNIEnv * curEnv = NULL;
-jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
-jclass cls = curEnv->FindClass( className().c_str() );
-
-jmethodID voidenableDrawingjstringjava_lang_StringID = curEnv->GetStaticMethodID(cls, "enableDrawing", "(Ljava/lang/String;)V" ) ;
-if (voidenableDrawingjstringjava_lang_StringID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "enableDrawing");
-}
-
-jstring id_ = curEnv->NewStringUTF( id );
-if (id != NULL && id_ == NULL)
-{
-throw GiwsException::JniBadAllocException(curEnv);
-}
-
-
-                         curEnv->CallStaticVoidMethod(cls, voidenableDrawingjstringjava_lang_StringID ,id_);
-                        curEnv->DeleteLocalRef(id_);
-curEnv->DeleteLocalRef(cls);
-if (curEnv->ExceptionCheck()) {
-throw GiwsException::JniCallMethodException(curEnv);
-}
-}
-
 void CallGraphicController::deleteGraphicObject (JavaVM * jvm_, char const* id){
 
 JNIEnv * curEnv = NULL;
index aca9c11..c8fcb86 100644 (file)
@@ -1,5 +1,5 @@
 /* Generated by GIWS (version 2.0.0) with command:
-giws -e -r -f graphic_objects.giws.xml 
+giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/graphic_objects.giws.xml 
 */
 /*
 
@@ -82,8 +82,6 @@ private:
 JavaVM * jvm;
 
 protected:
-jmethodID voiddisableDrawingjstringjava_lang_StringID; // cache method id
-jmethodID voidenableDrawingjstringjava_lang_StringID; // cache method id
 jmethodID voiddeleteGraphicObjectjstringjava_lang_StringID; // cache method id
 jmethodID jstringcloneGraphicObjectjstringjava_lang_StringID; // cache method id
 jmethodID jstringaskGraphicObjectjstringjava_lang_StringID; // cache method id
@@ -169,10 +167,6 @@ void synchronize();
 void endSynchronize();
 
 // Methods
-static void disableDrawing(JavaVM * jvm_, char const* id);
-
-static void enableDrawing(JavaVM * jvm_, char const* id);
-
 static void deleteGraphicObject(JavaVM * jvm_, char const* id);
 
 static char* cloneGraphicObject(JavaVM * jvm_, char const* id);
index 88cc906..20c0d13 100644 (file)
@@ -1,12 +1,6 @@
 <?xml version="1.0"?>
 <package name="org.scilab.modules.graphic_objects">
   <object name="CallGraphicController">
-    <method name="disableDrawing" returnType="void" modifier="static">
-      <parameter name="id" type="String"/>
-    </method>
-    <method name="enableDrawing" returnType="void" modifier="static">
-      <parameter name="id" type="String"/>
-    </method>
     <method name="deleteGraphicObject" returnType="void" modifier="static">
       <parameter name="id" type="String"/>
     </method>
index 420245b..406c638 100644 (file)
@@ -40,7 +40,6 @@ libscigraphics_la_CFLAGS = -I$(top_srcdir)/libs/doublylinkedlist/includes/ \
        -I$(top_srcdir)/modules/graphic_objects/includes/
 
 
-
 GRAPHICS_C_SOURCES = src/c/GetCommandArg.c \
 src/c/loadTextRenderingAPI.c \
 src/c/getHandleProperty/get_figure_position_property.c \
index 8308dff..7c00ab8 100644 (file)
@@ -68,7 +68,7 @@ function colorbar(varargin)
   
   //defer the drawing to avoid binking
   id=f.immediate_drawing=='on';
-  if id then f.immediate_drawing='off',end
+  if id then f.immediate_drawing=='off',end
    // get current axes and properties
   a=gca(); 
   fg_color=a.foreground
index a7b867b..e04fe2e 100644 (file)
@@ -93,10 +93,7 @@ int sci_delete(char *fname, unsigned long fname_len)
 
                 for (i = 0; i < iFigureNumber; ++i)
                 {
-                    char * UID = getFigureFromIndex(piFigureIds[i]);
-                    startFigureDataWriting(UID);
-                    deleteGraphicObject(UID);
-                    endFigureDataWriting(UID);
+                    deleteGraphicObject(getFigureFromIndex(piFigureIds[i]));
                 }
                 FREE(piFigureIds);
                 LhsVar(1) = 0;
@@ -154,14 +151,12 @@ int sci_delete(char *fname, unsigned long fname_len)
             Scierror(999, _("A Label object cannot be deleted.\n"));
             return 0;
         }
-        startFigureDataWriting(pobjUID);
         deleteGraphicObject(pobjUID);
-        endFigureDataWriting(pobjUID);
 
         /*
-        ** All figure must have at least one axe child.
-        ** If the last one is removed, add a new default one.
-        */
+         ** All figure must have at least one axe child.
+         ** If the last one is removed, add a new default one.
+         */
         if ((strcmp(pstObjType, __GO_AXES__) == 0) && (strcmp(pstParentType, __GO_FIGURE__) == 0))
         {
             int iChild = 0;
index 3ed532a..9b2b1d8 100644 (file)
@@ -29,7 +29,6 @@
 #include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
 #include "CurrentSubwin.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 static int check_xy(char *fname, char dir, int mn, int xpos, int xm, int xn,
@@ -206,9 +205,7 @@ int sci_drawaxis(char *fname, unsigned long fname_len)
         nb_tics_labels = opts[8].m * opts[8].n;
     }
 
-    startCurrentFigureDataWriting();
     Objdrawaxis(dir, tics, x, &nx, y, &ny, val, sub_int, format, fontsize, textcolor, ticscolor, 'n', seg_flag, nb_tics_labels);
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 1ab028c..71ad45d 100644 (file)
@@ -25,7 +25,6 @@
 #include "DefaultCommandArg.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_fec(char *fname,unsigned long fname_len)
@@ -55,8 +54,8 @@ int sci_fec(char *fname,unsigned long fname_len)
 
     if (Rhs <= 0)
     {
-        sci_demo(fname, fname_len);
-        return 0;
+               sci_demo(fname, fname_len);
+               return 0;
     }
 
     CheckRhs(4,12);
@@ -121,9 +120,7 @@ int sci_fec(char *fname,unsigned long fname_len)
     }
     mn1 = m1 * n1;
 
-    startCurrentFigureDataWriting();
     Objfec (stk(l1),stk(l2),stk(l3),stk(l4),&mn1,&m3,strf,legend,rect,nax,zminmax,colminmax,colOut,withMesh,flagNax);
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 5d69589..f65748c 100644 (file)
@@ -24,7 +24,6 @@
 #include "sciCall.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_grayplot( char *fname, unsigned long fname_len )
@@ -110,9 +109,7 @@ int sci_grayplot( char *fname, unsigned long fname_len )
         }
     }
 
-    startCurrentFigureDataWriting();
     Objgrayplot (stk(l1), stk(l2), stk(l3), &m3, &n3, strf, rect, nax, flagNax);
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index f21a674..1cd4f5e 100644 (file)
@@ -2,11 +2,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
 #include "stack-c.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_matplot(char *fname,unsigned long fname_len)
 {
-    int m1, n1, l1;
-    int frame_def=8;
-    int *frame=&frame_def;
-    int axes_def=1;
-    int *axes=&axes_def;
-    static rhs_opts opts[]= { {-1,"axesflag","?",0,0,0},
-                              {-1,"frameflag","?",0,0,0},
-                              {-1,"nax","?",0,0,0},
-                              {-1,"rect","?",0,0,0},
-                              {-1,"strf","?",0,0,0},
-                              {-1,NULL,NULL,0,0}};
+  int m1, n1, l1;
+  int frame_def=8;
+  int *frame=&frame_def;
+  int axes_def=1;
+  int *axes=&axes_def;
+  static rhs_opts opts[]= { {-1,"axesflag","?",0,0,0},
+  {-1,"frameflag","?",0,0,0},
+  {-1,"nax","?",0,0,0},
+  {-1,"rect","?",0,0,0},
+  {-1,"strf","?",0,0,0},
+  {-1,NULL,NULL,0,0}};
 
-    char   * strf    = NULL  ;
-    double * rect    = NULL  ;
-    int    * nax     = NULL  ;
-    BOOL     flagNax = FALSE ;
+  char   * strf    = NULL  ;
+  double * rect    = NULL  ;
+  int    * nax     = NULL  ;
+  BOOL     flagNax = FALSE ;
 
-    if ( Rhs <= 0 )
-    {
-        sci_demo(fname, fname_len);
-        return 0;
-    }
-    CheckRhs(1,5);
+  if ( Rhs <= 0 )
+  {
+    sci_demo(fname, fname_len);
+    return 0;
+  }
+  CheckRhs(1,5);
 
-    if ( get_optionals(fname,opts) == 0 )
+  if ( get_optionals(fname,opts) == 0 ) 
+  {
+         PutLhsVar();
+         return 0 ; 
+  }
+  if ( FirstOpt() < 2)
+  {
+    Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),
+      fname,1,2);
+    return(0);
+  }
+  GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
+  if (m1 * n1 == 0) 
+  {  
+         LhsVar(1) = 0;
+         PutLhsVar();
+         return 0;
+  }
+
+  GetStrf(fname,2,opts,&strf);
+  GetRect(fname,3,opts,&rect);
+  GetNax(4,opts,&nax,&flagNax);
+
+  getOrCreateDefaultSubwin();
+
+  if ( isDefStrf( strf ) ) {
+    char strfl[4];
+   
+    strcpy(strfl,DEFSTRFN) ;
+   
+    strf = strfl;
+    if ( !isDefRect( rect ) )
     {
-        PutLhsVar();
-        return 0 ;
+      strfl[1]='7';
     }
-    if ( FirstOpt() < 2)
+
+    GetOptionalIntArg(fname,5,"frameflag",&frame,1,opts);
+    if(frame != &frame_def)
     {
-        Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),
-                 fname,1,2);
-        return(0);
+      strfl[1] = (char)(*frame+48);
     }
-    GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
-    if (m1 * n1 == 0)
+    GetOptionalIntArg(fname,5,"axesflag",&axes,1,opts);
+    if(axes != &axes_def)
     {
-        LhsVar(1) = 0;
-        PutLhsVar();
-        return 0;
+      strfl[2] = (char)(*axes+48);
     }
+  }
 
-    GetStrf(fname,2,opts,&strf);
-    GetRect(fname,3,opts,&rect);
-    GetNax(4,opts,&nax,&flagNax);
+  Objmatplot( stk(l1), &m1, &n1, strf, rect, nax, flagNax ) ;
 
-    getOrCreateDefaultSubwin();
-
-    if ( isDefStrf( strf ) ) {
-        char strfl[4];
-
-        strcpy(strfl,DEFSTRFN) ;
-
-        strf = strfl;
-        if ( !isDefRect( rect ) )
-        {
-            strfl[1]='7';
-        }
-
-        GetOptionalIntArg(fname,5,"frameflag",&frame,1,opts);
-        if(frame != &frame_def)
-        {
-            strfl[1] = (char)(*frame+48);
-        }
-        GetOptionalIntArg(fname,5,"axesflag",&axes,1,opts);
-        if(axes != &axes_def)
-        {
-            strfl[2] = (char)(*axes+48);
-        }
-    }
-
-    startCurrentFigureDataWriting();
-    Objmatplot( stk(l1), &m1, &n1, strf, rect, nax, flagNax );
-    endCurrentFigureDataWriting();
-
-    /* NG end */
-    LhsVar(1) = 0;
-    PutLhsVar();
-    return 0;
+  /* NG end */
+  LhsVar(1) = 0;
+  PutLhsVar();
+  return 0;
 }
 /*--------------------------------------------------------------------------*/
index 990d3ea..4bb9d97 100644 (file)
@@ -3,11 +3,11 @@
  * Copyright (C) 2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
  * Copyright (C) 2012 - DIGITEO - Manuel Juliachs
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
@@ -20,7 +20,6 @@
 #include "gw_graphics.h"
 #include "BuildObjects.h"
 #include "sciCall.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_matplot1( char * fname, unsigned long fname_len )
@@ -46,12 +45,10 @@ int sci_matplot1( char * fname, unsigned long fname_len )
     getOrCreateDefaultSubwin();
 
     /* NG beg */
-    startCurrentFigureDataWriting();
     Objmatplot1 (stk(l1), &m1, &n1,stk(l2));
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
     return 0;
-}
+} 
 /*--------------------------------------------------------------------------*/
index 20fd912..d2f4afe 100644 (file)
@@ -26,7 +26,6 @@
 #include "Scierror.h"
 #include "HandleManagement.h"
 #include "getPropertyAssignedValue.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_move( char * fname, unsigned long fname_len )
@@ -75,9 +74,7 @@ int sci_move( char * fname, unsigned long fname_len )
     }
     moveVector = getDoubleMatrixFromStack(l2);
 
-    startCurrentFigureDataWriting();
     Objmove(pobjUID, moveVector, nbDim, alone);
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 50d8d0f..436f7ff 100644 (file)
@@ -41,7 +41,6 @@ int sci_newaxes( char * fname,unsigned long fname_len )
 
     psubwinUID = getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     if ((psubwinUID = ConstructSubWin (getCurrentFigure())) != NULL)
     {
         setCurrentObject(psubwinUID);
@@ -59,8 +58,6 @@ int sci_newaxes( char * fname,unsigned long fname_len )
     {
         Scierror(999,_("%s: No more memory.\n"),fname);
     }
-    endCurrentFigureDataWriting();
-
     return 0;
 }
 /*--------------------------------------------------------------------------*/
index 1a1cb49..0a36ec3 100644 (file)
@@ -2,11 +2,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
 #include "stack-c.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 /*------------------------------------------------------------------------*/
 int sci_param3d( char * fname, unsigned long fname_len )
 {
-    int izcol, isfac;
-    static double  ebox_def[6]= { 0,1,0,1,0,1};
-    double *ebox = ebox_def ;
-    static int iflag_def[3]= {1,2,4};
-    int iflag[3], *ifl, ix1, one=1;
-    double  alpha_def=35.0 , theta_def=45.0 ;
-    double *alpha=&alpha_def, *theta=&theta_def;
-    int m1, n1, l1, m2, n2, l2, m3, n3, l3;
-    int m3n = 0, n3n = 0; /* F.Leray 19.03.04*/
-
-    static rhs_opts opts[]= { {-1,"alpha","?",0,0,0},
-                              {-1,"ebox","?",0,0,0},
-                              {-1,"flag","?",0,0,0},
-                              {-1,"leg","?",0,0,0},
-                              {-1,"theta","?",0,0,0},
-                              {-1,NULL,NULL,0,0}     };
+  int izcol, isfac;
+  static double  ebox_def[6]= { 0,1,0,1,0,1};
+  double *ebox = ebox_def ;
+  static int iflag_def[3]= {1,2,4};
+  int iflag[3], *ifl, ix1, one=1;
+  double  alpha_def=35.0 , theta_def=45.0 ;
+  double *alpha=&alpha_def, *theta=&theta_def;
+  int m1, n1, l1, m2, n2, l2, m3, n3, l3;
+  int m3n = 0, n3n = 0; /* F.Leray 19.03.04*/
 
-    char * labels = NULL ;
+  static rhs_opts opts[]= { {-1,"alpha","?",0,0,0},
+                            {-1,"ebox","?",0,0,0},
+                            {-1,"flag","?",0,0,0},
+                            {-1,"leg","?",0,0,0},
+                            {-1,"theta","?",0,0,0},
+                            {-1,NULL,NULL,0,0}     };
 
-    if (Rhs <= 0)
-    {
-        sci_demo(fname, fname_len);
-        return 0;
-    }
+  char * labels = NULL ;
 
-    CheckRhs(3,8);
+  if (Rhs <= 0)
+  {
+    sci_demo(fname, fname_len);
+    return 0;
+  }
 
-    if ( get_optionals(fname,opts) == 0)
-    {
-        PutLhsVar();
-        return 0;
-    }
-    if ( FirstOpt() < 4)
-    {
-        Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"), fname,1, 4);
-        return(0);
-    }
+  CheckRhs(3,8);
 
-    GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
-    if (m1 * n1 == 0)
-    {
-        LhsVar(1) = 0;
-        PutLhsVar();
-        return 0;
-    }
-    GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
-    GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE, &m3, &n3, &l3);
-    CheckSameDims(1,2,m1,n1,m2,n2);
-    CheckSameDims(2,3,m2,n2,m3,n3);
+  if ( get_optionals(fname,opts) == 0) 
+  {
+         PutLhsVar();
+         return 0;
+  }
+  if ( FirstOpt() < 4) 
+  {
+    Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"), fname,1, 4);
+    return(0);
+  }
 
-    GetOptionalDoubleArg(fname,4,"theta",&theta,1,opts);
-    GetOptionalDoubleArg(fname,5,"alpha",&alpha,1,opts);
-    GetLabels(fname,6,opts,&labels);
+  GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
+  if (m1 * n1 == 0) 
+  { 
+         LhsVar(1) = 0; 
+         PutLhsVar();
+         return 0;
+  } 
+  GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
+  GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE, &m3, &n3, &l3);
+  CheckSameDims(1,2,m1,n1,m2,n2);
+  CheckSameDims(2,3,m2,n2,m3,n3);
 
-    iflag_def[1]=8;
-    ifl=&(iflag_def[1]);
-    GetOptionalIntArg(fname,7,"flag",&ifl,2,opts);
-    iflag[0]=iflag_def[0];iflag[1]=ifl[0];iflag[2]=ifl[1];
-    GetOptionalDoubleArg(fname,8,"ebox",&ebox,6,opts);
+  GetOptionalDoubleArg(fname,4,"theta",&theta,1,opts);
+  GetOptionalDoubleArg(fname,5,"alpha",&alpha,1,opts);
+  GetLabels(fname,6,opts,&labels);
 
-    getOrCreateDefaultSubwin();
+  iflag_def[1]=8;
+  ifl=&(iflag_def[1]);
+  GetOptionalIntArg(fname,7,"flag",&ifl,2,opts);
+  iflag[0]=iflag_def[0];iflag[1]=ifl[0];iflag[2]=ifl[1];
+  GetOptionalDoubleArg(fname,8,"ebox",&ebox,6,opts);
 
-    ix1 = m1 * n1;
+  getOrCreateDefaultSubwin();
 
-    /* NG beg */
-    isfac=-1;
-    izcol=0;
+  ix1 = m1 * n1;
 
-    startCurrentFigureDataWriting();
-    Objplot3d (fname,&isfac,&izcol,stk(l1),stk(l2),stk(l3),(double *) NULL,&ix1,&one,theta,alpha,labels,iflag,ebox,&m1,&n1,&m2,&n2,&m3,&n3,&m3n,&n3n);/*Adding F.Leray 12.03.04 */
-    endCurrentFigureDataWriting();
+  /* NG beg */
+  isfac=-1;
+  izcol=0;
+  
+  Objplot3d (fname,&isfac,&izcol,stk(l1),stk(l2),stk(l3),(double *) NULL,&ix1,&one,theta,alpha,labels,iflag,ebox,&m1,&n1,&m2,&n2,&m3,&n3,&m3n,&n3n);/*Adding F.Leray 12.03.04 */
+  
 
-    /* NG end */
-    LhsVar(1) = 0;
-    PutLhsVar();
-    return 0;
+  /* NG end */
+  LhsVar(1) = 0;
+  PutLhsVar();
+  return 0;
 }
 /*------------------------------------------------------------------------*/
index a2758f3..d783095 100644 (file)
@@ -2,11 +2,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
 #include "stack-c.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_param3d1( char *fname, unsigned long fname_len )
 {
-    int izcol, isfac;
-    double *zcol=NULL;
-    static double  ebox_def [6]= { 0,1,0,1,0,1};
-    double *ebox = ebox_def ;
-    static int iflag_def[3]={1,2,4};
-    int iflag[3] , *ifl;
-    double  alpha_def=35.0 , theta_def=45.0 ;
-    double *alpha=&alpha_def, *theta=&theta_def;
-    int m1, n1, l1, m2, n2, l2, m3, n3, l3;
-    int m3n = 0, n3n = 0, l3n, m3l, n3l, l3l;
-    static rhs_opts opts[]= { {-1,"alpha","?",0,0,0},
-                              {-1,"ebox","?",0,0,0},
-                              {-1,"flag","?",0,0,0},
-                              {-1,"leg","?",0,0,0},
-                              {-1,"theta","?",0,0,0},
-                              {-1,NULL,NULL,0,0}     };
-
-    char * labels = NULL ;
-
-    if (Rhs <= 0)
-    {
-        sci_demo(fname, fname_len);
-        return 0;
-    }
-
-    CheckRhs(3,8);
-
-    if ( get_optionals(fname,opts) == 0)
-    {
-        PutLhsVar();
-        return 0;
-    }
-
-    if ( FirstOpt() < 4)
-    {
-        Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),fname,1,4);
-        return(0);
-    }
-
-    GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);/* x */
-    if (m1 == 1 && n1 > 1) {m1 = n1;n1 = 1;}
-
-    GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);/* y */
-    if (m2 == 1 && n2 > 1) {m2 = n2;n2 = 1;}
-
-    if (m1 * n1 == 0)
+  int izcol, isfac;
+  double *zcol=NULL;
+  static double  ebox_def [6]= { 0,1,0,1,0,1};
+  double *ebox = ebox_def ;
+  static int iflag_def[3]={1,2,4};
+  int iflag[3] , *ifl;
+  double  alpha_def=35.0 , theta_def=45.0 ;
+  double *alpha=&alpha_def, *theta=&theta_def;
+  int m1, n1, l1, m2, n2, l2, m3, n3, l3;
+  int m3n = 0, n3n = 0, l3n, m3l, n3l, l3l;
+  static rhs_opts opts[]= { {-1,"alpha","?",0,0,0},
+                            {-1,"ebox","?",0,0,0},
+                            {-1,"flag","?",0,0,0},
+                            {-1,"leg","?",0,0,0},
+                            {-1,"theta","?",0,0,0},
+                            {-1,NULL,NULL,0,0}     };
+
+  char * labels = NULL ;
+
+  if (Rhs <= 0)
+  {
+    sci_demo(fname, fname_len);
+    return 0;
+  }
+
+  CheckRhs(3,8);
+
+  if ( get_optionals(fname,opts) == 0) 
+  {
+         PutLhsVar();
+         return 0;
+  }
+
+  if ( FirstOpt() < 4) 
+  {
+    Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),fname,1,4);
+    return(0);
+  }
+
+  GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);/* x */
+  if (m1 == 1 && n1 > 1) {m1 = n1;n1 = 1;}
+
+  GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);/* y */
+  if (m2 == 1 && n2 > 1) {m2 = n2;n2 = 1;}
+
+  if (m1 * n1 == 0) 
+  { 
+         LhsVar(1) = 0;
+         PutLhsVar();
+         return 0;
+  }
+  CheckSameDims(1,2,m1,n1,m2,n2); 
+
+  switch ( VarType(3) ) 
+  {
+  case 1 : 
+    izcol = 0;
+    GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE, &m3, &n3, &l3); /* z */
+    break;
+  case 15 : 
+    izcol = 1;
+    /* z = list(z,colors) */
+    GetRhsVar(3,LIST_DATATYPE,&m3l,&n3l,&l3l);
+    if ( m3l != 2 ) 
     {
-        LhsVar(1) = 0;
-        PutLhsVar();
-        return 0;
+      Scierror(999,_("%s: Wrong size for input argument #%d: List of size %d expected.\n"),
+        fname,2,m3l,2);
+      return 0;
     }
-    CheckSameDims(1,2,m1,n1,m2,n2);
-
-    switch ( VarType(3) )
+    GetListRhsVar(3,1,MATRIX_OF_DOUBLE_DATATYPE,&m3,&n3,&l3); /* z*/ 
+    GetListRhsVar(3,2,MATRIX_OF_DOUBLE_DATATYPE,&m3n,&n3n,&l3n); /* colors */
+    zcol  = stk(l3n);
+    if (m3n * n3n != n3) 
     {
-    case 1 :
-        izcol = 0;
-        GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE, &m3, &n3, &l3); /* z */
-        break;
-    case 15 :
-        izcol = 1;
-        /* z = list(z,colors) */
-        GetRhsVar(3,LIST_DATATYPE,&m3l,&n3l,&l3l);
-        if ( m3l != 2 )
-        {
-            Scierror(999,_("%s: Wrong size for input argument #%d: List of size %d expected.\n"),
-                     fname,2,m3l,2);
-            return 0;
-        }
-        GetListRhsVar(3,1,MATRIX_OF_DOUBLE_DATATYPE,&m3,&n3,&l3); /* z*/
-        GetListRhsVar(3,2,MATRIX_OF_DOUBLE_DATATYPE,&m3n,&n3n,&l3n); /* colors */
-        zcol  = stk(l3n);
-        if (m3n * n3n != n3)
-        {
-            Scierror(999,_("%s: Wrong size for input argument #%d: %d expected.\n"),fname,3,n3);
-            return 0;
-        }
-        break ;
-    default :
-        OverLoad(3);
-        return 0;
+      Scierror(999,_("%s: Wrong size for input argument #%d: %d expected.\n"),fname,3,n3);
+      return 0;
     }
-    if (m3 == 1 && n3 > 1) {m3 = n3;n3 = 1;}
-    CheckSameDims(1,3,m1,n1,m3,n3);
-
-    GetOptionalDoubleArg(fname,4,"theta",&theta,1,opts);
-    GetOptionalDoubleArg(fname,5,"alpha",&alpha,1,opts);
-    GetLabels(fname,6,opts,&labels);
-    iflag_def[1]=8;
-    ifl=&(iflag_def[1]);
-    GetOptionalIntArg(fname,7,"flag",&ifl,2,opts);
-    iflag[0]=iflag_def[0];iflag[1]=ifl[0];iflag[2]=ifl[1];
+    break ;
+  default : 
+    OverLoad(3);
+    return 0;
+  }
+  if (m3 == 1 && n3 > 1) {m3 = n3;n3 = 1;}
+  CheckSameDims(1,3,m1,n1,m3,n3); 
 
-    GetOptionalDoubleArg(fname,8,"ebox",&ebox,6,opts);
+  GetOptionalDoubleArg(fname,4,"theta",&theta,1,opts);
+  GetOptionalDoubleArg(fname,5,"alpha",&alpha,1,opts);
+  GetLabels(fname,6,opts,&labels);
+  iflag_def[1]=8;
+  ifl=&(iflag_def[1]);
+  GetOptionalIntArg(fname,7,"flag",&ifl,2,opts);
+  iflag[0]=iflag_def[0];iflag[1]=ifl[0];iflag[2]=ifl[1];
 
-    if (m1 == 1 && n1 > 1) { m1 = n1;    n1 = 1; }
+  GetOptionalDoubleArg(fname,8,"ebox",&ebox,6,opts);
 
-    getOrCreateDefaultSubwin();
+  if (m1 == 1 && n1 > 1) { m1 = n1;    n1 = 1; }
 
-    /* NG beg */
-    isfac=-1;
+  getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
-    Objplot3d (fname,&isfac,&izcol,stk(l1),stk(l2),stk(l3),zcol,&m1,&n1,theta,alpha,labels,iflag,ebox,&m1,&n1,&m2,&n2,&m3,&n3,&m3n,&n3n); /*Adding F.Leray 12.03.04*/
-    endCurrentFigureDataWriting();
+  /* NG beg */
+  isfac=-1;
 
-    LhsVar(1) = 0;
-    PutLhsVar();
-    return 0;
+  Objplot3d (fname,&isfac,&izcol,stk(l1),stk(l2),stk(l3),zcol,&m1,&n1,theta,alpha,labels,iflag,ebox,&m1,&n1,&m2,&n2,&m3,&n3,&m3n,&n3n); /*Adding F.Leray 12.03.04*/
+  
+  LhsVar(1) = 0;
+  PutLhsVar();
+  return 0;
 }
 /*--------------------------------------------------------------------------*/
index 89a3640..e0dbca9 100644 (file)
@@ -26,7 +26,6 @@
 #include "localization.h"
 
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 
 /*------------------------------------------------------------------------*/
 int sci_plot2d( char * fname, unsigned long fname_len )
@@ -292,9 +291,7 @@ int sci_plot2d( char * fname, unsigned long fname_len )
 
   // open a figure if none already exists
   getOrCreateDefaultSubwin();
-  startCurrentFigureDataWriting();
   Objplot2d (1,logFlags,stk(l1), stk(l2), &n1, &m1, style, strf,legend, rect,nax,flagNax);
-  endCurrentFigureDataWriting();
 
   LhsVar(1) = 0;
   PutLhsVar();
index dc1fdb6..99dc781 100644 (file)
@@ -2,11 +2,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
 #include "sciCall.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_plot2d1_1 (char *fname,unsigned long fname_len)
 {
-    return sci_plot2d1_G("plot2d1",1,fname_len);/* NG */
+  return sci_plot2d1_G("plot2d1",1,fname_len);/* NG */
 }
 /*--------------------------------------------------------------------------*/
 int sci_plot2d1_2 (char *fname,unsigned long fname_len)
 {
-    return sci_plot2d1_G("plot2d2",2,fname_len); /* NG */
+  return sci_plot2d1_G("plot2d2",2,fname_len); /* NG */
 }
 /*--------------------------------------------------------------------------*/
 int sci_plot2d1_3 (char *fname,unsigned long fname_len)
 {
-    return sci_plot2d1_G("plot2d3",3,fname_len);/* NG */
+  return sci_plot2d1_G("plot2d3",3,fname_len);/* NG */
 }
 /*--------------------------------------------------------------------------*/
 int sci_plot2d1_4 (char *fname,unsigned long fname_len)
 {
-    return sci_plot2d1_G("plot2d4",4,fname_len);/* NG */
+  return sci_plot2d1_G("plot2d4",4,fname_len);/* NG */
 }
 /*--------------------------------------------------------------------------*/
 int sci_plot2d1_G( char * fname, int ptype, unsigned long fname_len )
 {
-    int frame_def=8;
-    int *frame=&frame_def;
-    int axes_def=1;
-    int *axes=&axes_def;
-    int iskip,test;
-    int m1 = 0,n1 = 0,l1 = 0, m2 = 0, n2 = 0, l2 = 0, lt, i, j ;
-
-    static rhs_opts opts[]= { {-1,"axesflag","?",0,0,0},
-                              {-1,"frameflag","?",0,0,0},
-                              {-1,"leg","?",0,0,0},
-                              {-1,"logflag","?",0,0,0},
-                              {-1,"nax","?",0,0,0},
-                              {-1,"rect","?",0,0,0},
-                              {-1,"strf","?",0,0,0},
-                              {-1,"style","?",0,0,0},
-                              {-1,NULL,NULL,0,0}       };
-
-    int    * style    = NULL  ;
-    double * rect     = NULL  ;
-    int    * nax      = NULL  ;
-    BOOL     flagNax  = FALSE ;
-    char   * strf     = NULL  ;
-    char   * legend   = NULL  ;
-    char   * logFlags = NULL  ;
-
-    if (Rhs <= 0) {
-        /* lauch the default routines depending on the name of the calling funtion */
-        sci_demo(fname, fname_len);
-        return 0;
+  int frame_def=8;
+  int *frame=&frame_def;
+  int axes_def=1;
+  int *axes=&axes_def;
+  int iskip,test;
+  int m1 = 0,n1 = 0,l1 = 0, m2 = 0, n2 = 0, l2 = 0, lt, i, j ;
+
+  static rhs_opts opts[]= { {-1,"axesflag","?",0,0,0},
+                            {-1,"frameflag","?",0,0,0},
+                            {-1,"leg","?",0,0,0},
+                            {-1,"logflag","?",0,0,0},
+                            {-1,"nax","?",0,0,0},
+                            {-1,"rect","?",0,0,0},
+                            {-1,"strf","?",0,0,0},
+                            {-1,"style","?",0,0,0},
+                            {-1,NULL,NULL,0,0}       };
+
+  int    * style    = NULL  ;
+  double * rect     = NULL  ;
+  int    * nax      = NULL  ;
+  BOOL     flagNax  = FALSE ;
+  char   * strf     = NULL  ;
+  char   * legend   = NULL  ;
+  char   * logFlags = NULL  ;
+
+  if (Rhs <= 0) {
+    /* lauch the default routines depending on the name of the calling funtion */
+    sci_demo(fname, fname_len);
+    return 0;
+  }
+  CheckRhs(1,9); /* to allow plot2dxx(y) */
+
+
+  iskip=0;
+  if ( get_optionals(fname,opts) == 0) 
+  {
+         PutLhsVar();
+         return 0;
+  }
+
+  if (GetType(1)==sci_strings) {
+    /* logflags */
+    GetLogflags(fname,1,opts,&logFlags);
+    iskip=1;
+  }
+
+  /* added to support plot2dxx([logflags],y) */
+  if ( Rhs == 1 + iskip )
+  {
+    if ( FirstOpt() <= Rhs)
+    {
+      Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),fname,1, 3+iskip);
+      return(0);
     }
-    CheckRhs(1,9); /* to allow plot2dxx(y) */
 
+    GetRhsVar(1+iskip,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
+    CreateVar(2+iskip,MATRIX_OF_DOUBLE_DATATYPE,  &m2, &n2, &l1);
+    if (m2 == 1 && n2 > 1) { m2 = n2; n2 = 1;}
+    m1 = m2;  n1 = n2;
+    for (i = 0; i < m2 ; ++i) 
+      for (j = 0 ; j < n2 ;  ++j)
+        *stk( l1 + i + m2*j) = (double) i+1;
+  }
 
-    iskip=0;
-    if ( get_optionals(fname,opts) == 0)
+
+  if (Rhs >= 2+iskip)
+  {
+    if ( FirstOpt() < 3+iskip) 
     {
-        PutLhsVar();
-        return 0;
+      Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),
+        fname,1, 3+iskip);
+      return(0);
     }
 
-    if (GetType(1)==sci_strings) {
-        /* logflags */
-        GetLogflags(fname,1,opts,&logFlags);
-        iskip=1;
-    }
 
-    /* added to support plot2dxx([logflags],y) */
-    if ( Rhs == 1 + iskip )
+    /* x */
+    GetRhsVar(1+iskip,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
+    if (iskip==1) 
     {
-        if ( FirstOpt() <= Rhs)
-        {
-            Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),fname,1, 3+iskip);
-            return(0);
-        }
-
-        GetRhsVar(1+iskip,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
-        CreateVar(2+iskip,MATRIX_OF_DOUBLE_DATATYPE,  &m2, &n2, &l1);
-        if (m2 == 1 && n2 > 1) { m2 = n2; n2 = 1;}
-        m1 = m2;  n1 = n2;
-        for (i = 0; i < m2 ; ++i)
-            for (j = 0 ; j < n2 ;  ++j)
-                *stk( l1 + i + m2*j) = (double) i+1;
+      if (logFlags[0]=='e')
+      {
+        m1 = 0 ;
+        n1 = 0 ;
+      }
     }
 
-
-    if (Rhs >= 2+iskip)
-    {
-        if ( FirstOpt() < 3+iskip)
+    /* y */
+    GetRhsVar(2+iskip,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
+    /* if (m2 * n2 == 0) { m1 = 0; n1 = 0;}  */
+
+    test = (m1*n1 == 0) /* x = [] */
+      /* x,y vectors of same length */  
+      || ((m1 == 1 || n1 == 1) && (m2 == 1 || n2 ==1) && (m1*n1 == m2*n2))
+      || ((m1 == m2) && (n1 == n2)) /* size(x) == size(y) */
+      /* x vector size(y)==[size(x),.] */
+      || ((m1 == 1 && n1 == m2) || (n1 == 1 && m1 == m2)); 
+
+    CheckDimProp(1+iskip,2+iskip,!test);
+
+    if (m1*n1 == 0) 
+    { /* default x=1:n */
+      CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,  &m2, &n2, &lt);
+      if (m2 == 1 && n2 > 1) { m2 = n2; n2 = 1;}
+      for (i = 0; i < m2 ; ++i)
+      {
+        for (j = 0 ; j < n2 ;  ++j)
         {
-            Scierror(999,_("%s: Misplaced optional argument: #%d must be at position %d.\n"),
-                     fname,1, 3+iskip);
-            return(0);
+          *stk( lt + i + m2*j) = (double) i+1;
         }
-
-
-        /* x */
-        GetRhsVar(1+iskip,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
-        if (iskip==1)
+      }
+      m1 = m2;
+      n1 = n2;
+      l1 = lt;
+    }
+    else if ((m1 == 1 || n1 == 1) && (m2 != 1 && n2 != 1) ) {
+      /* a single x vector for mutiple columns for y */
+      CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,  &m2, &n2, &lt);
+      for (i = 0; i < m2 ; ++i)
+      {
+        for (j = 0 ; j < n2 ;  ++j)
         {
-            if (logFlags[0]=='e')
-            {
-                m1 = 0 ;
-                n1 = 0 ;
-            }
-        }
-
-        /* y */
-        GetRhsVar(2+iskip,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
-        /* if (m2 * n2 == 0) { m1 = 0; n1 = 0;}  */
-
-        test = (m1*n1 == 0) /* x = [] */
-            /* x,y vectors of same length */
-            || ((m1 == 1 || n1 == 1) && (m2 == 1 || n2 ==1) && (m1*n1 == m2*n2))
-            || ((m1 == m2) && (n1 == n2)) /* size(x) == size(y) */
-            /* x vector size(y)==[size(x),.] */
-            || ((m1 == 1 && n1 == m2) || (n1 == 1 && m1 == m2));
-
-        CheckDimProp(1+iskip,2+iskip,!test);
-
-        if (m1*n1 == 0)
-        { /* default x=1:n */
-            CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,  &m2, &n2, &lt);
-            if (m2 == 1 && n2 > 1) { m2 = n2; n2 = 1;}
-            for (i = 0; i < m2 ; ++i)
-            {
-                for (j = 0 ; j < n2 ;  ++j)
-                {
-                    *stk( lt + i + m2*j) = (double) i+1;
-                }
-            }
-            m1 = m2;
-            n1 = n2;
-            l1 = lt;
-        }
-        else if ((m1 == 1 || n1 == 1) && (m2 != 1 && n2 != 1) ) {
-            /* a single x vector for mutiple columns for y */
-            CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,  &m2, &n2, &lt);
-            for (i = 0; i < m2 ; ++i)
-            {
-                for (j = 0 ; j < n2 ;  ++j)
-                {
-                    *stk( lt + i + m2*j) = *stk(l1 +i);
-                }
-            }
-            m1 = m2;
-            n1 = n2;
-            l1 = lt;
-        }
-        else if ((m1 == 1 && n1 == 1) && (n2 != 1) ) {
-            /* a single y row vector  for a single x */
-            CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,  &m1, &n2, &lt);
-            for (j = 0 ; j < n2 ;  ++j)
-            {
-                *stk( lt + j ) = *stk(l1);
-            }
-            n1 = n2;
-            l1 = lt;
-        }
-        else {
-            if (m2 == 1 && n2 > 1) { m2 = n2; n2 = 1;}
-            if (m1 == 1 && n1 > 1) { m1 = n1; n1 = 1;}
+          *stk( lt + i + m2*j) = *stk(l1 +i);
         }
+      }
+      m1 = m2;
+      n1 = n2;
+      l1 = lt;
+    }
+    else if ((m1 == 1 && n1 == 1) && (n2 != 1) ) {
+      /* a single y row vector  for a single x */
+      CreateVar(Rhs+1,MATRIX_OF_DOUBLE_DATATYPE,  &m1, &n2, &lt);
+      for (j = 0 ; j < n2 ;  ++j)
+      {
+        *stk( lt + j ) = *stk(l1);
+      }
+      n1 = n2;
+      l1 = lt;
     }
+    else {
+      if (m2 == 1 && n2 > 1) { m2 = n2; n2 = 1;}
+      if (m1 == 1 && n1 > 1) { m1 = n1; n1 = 1;}
+    }
+  }
 
-    sciGetStyle(fname,3+iskip,n1,opts,&style);
-    GetStrf(fname,4+iskip,opts,&strf);
-    GetLegend(fname,5+iskip,opts,&legend);
-    GetRect(fname,6+iskip,opts,&rect);
-    GetNax(7+iskip,opts,&nax,&flagNax);
-    if (iskip==0) GetLogflags(fname,8,opts,&logFlags);
+  sciGetStyle(fname,3+iskip,n1,opts,&style);
+  GetStrf(fname,4+iskip,opts,&strf);
+  GetLegend(fname,5+iskip,opts,&legend);
+  GetRect(fname,6+iskip,opts,&rect);
+  GetNax(7+iskip,opts,&nax,&flagNax);
+  if (iskip==0) GetLogflags(fname,8,opts,&logFlags);
 
-    if ( isDefStrf( strf ) ) {
-        char strfl[4];
-        strcpy(strfl,DEFSTRFN);
+  if ( isDefStrf( strf ) ) {
+    char strfl[4];
+    strcpy(strfl,DEFSTRFN);
 
-        strf = strfl;
-        if ( !isDefRect( rect ) )
-        {
-            strfl[1]='7';
-        }
-        if ( !isDefLegend( legend ) )
-        {
-            strfl[0]='1';
-        }
-        GetOptionalIntArg(fname,9,"frameflag",&frame,1,opts);
-        if(frame != &frame_def)
-        {
-            strfl[1] = (char)(*frame+48);
-        }
-        GetOptionalIntArg(fname,9,"axesflag",&axes,1,opts);
-        if(axes != &axes_def)
-        {
-            strfl[2] = (char)(*axes+48);
-        }
+    strf = strfl;
+    if ( !isDefRect( rect ) )
+    {
+      strfl[1]='7';
+    }
+    if ( !isDefLegend( legend ) )
+    {
+      strfl[0]='1';
+    }
+    GetOptionalIntArg(fname,9,"frameflag",&frame,1,opts);
+    if(frame != &frame_def)
+    {
+      strfl[1] = (char)(*frame+48);
     }
+    GetOptionalIntArg(fname,9,"axesflag",&axes,1,opts);
+    if(axes != &axes_def)
+    {
+      strfl[2] = (char)(*axes+48);
+    }
+  }
 
-    if(ptype == 0) { ptype = 1 ; }
+  if(ptype == 0) { ptype = 1 ; }
 
-    startCurrentFigureDataWriting();
-    Objplot2d (ptype,logFlags,stk(l1), stk(l2), &n1, &m1, style, strf,legend,rect, nax, flagNax);
-    endCurrentFigureDataWriting();
+  Objplot2d (ptype,logFlags,stk(l1), stk(l2), &n1, &m1, style, strf,legend,rect, nax, flagNax);
 
-    LhsVar(1) = 0;
-    PutLhsVar();
-    return 0;
+
+  LhsVar(1) = 0;
+  PutLhsVar();
+  return 0;
 }
 /*--------------------------------------------------------------------------*/
index ed70d87..e87184a 100644 (file)
 #include "sciCall.h"
 #include "localization.h"
 #include "Scierror.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_plot3d( char * fname, unsigned long fname_len )
 {
-    static double  ebox_def [6]= { 0,1,0,1,0,1};
-    double *ebox = ebox_def ;
-    static int iflag_def[3]={2,2,4};
-    int *iflag = iflag_def;
-    double  alpha_def=35.0 , theta_def=45.0 ;
-    double *alpha=&alpha_def, *theta=&theta_def;
-    int m1 = 0, n1 = 0, l1 = 0, m2 = 0, n2 = 0, l2 = 0, m3 = 0, n3 = 0, l3 = 0;
-    int m3n = 0, n3n = 0, l3n = 0, m3l = 0, n3l = 0, l3l = 0;
-
-    int izcol,  isfac;
-    double *zcol=NULL;
-
-    static rhs_opts opts[]= { {-1,"alpha","?",0,0,0},
-                              {-1,"ebox","?",0,0,0},
-                              {-1,"flag","?",0,0,0},
-                              {-1,"leg","?",0,0,0},
-                              {-1,"theta","?",0,0,0},
-                              {-1,NULL,NULL,0,0}};
-
-    char * legend = NULL ;
-
-    /*
-    ** This overload the function to call demo script
-    ** the demo script is called %_<fname>
-    */
-    if (Rhs <= 0)
+  static double  ebox_def [6]= { 0,1,0,1,0,1};
+  double *ebox = ebox_def ;
+  static int iflag_def[3]={2,2,4};
+  int *iflag = iflag_def;
+  double  alpha_def=35.0 , theta_def=45.0 ;
+  double *alpha=&alpha_def, *theta=&theta_def;
+  int m1 = 0, n1 = 0, l1 = 0, m2 = 0, n2 = 0, l2 = 0, m3 = 0, n3 = 0, l3 = 0;
+  int m3n = 0, n3n = 0, l3n = 0, m3l = 0, n3l = 0, l3l = 0;
+
+  int izcol,  isfac;
+  double *zcol=NULL;
+
+  static rhs_opts opts[]= { {-1,"alpha","?",0,0,0},
+  {-1,"ebox","?",0,0,0},
+  {-1,"flag","?",0,0,0},
+  {-1,"leg","?",0,0,0},
+  {-1,"theta","?",0,0,0},
+  {-1,NULL,NULL,0,0}};
+
+  char * legend = NULL ;
+
+  /*
+  ** This overload the function to call demo script
+  ** the demo script is called %_<fname>
+  */
+  if (Rhs <= 0)
+  {
+   sci_demo(fname, fname_len);
+   return 0;
+  }
+
+  CheckRhs(3,8);
+
+  if ( get_optionals(fname,opts) == 0)
+  {
+         PutLhsVar();
+         return 0;
+  }
+
+  if ( FirstOpt() < 4)
+  {
+    Scierror(999, _("%s: Misplaced optional argument: #%d must be at position %d.\n"), fname,1, 4);
+    return -1;
+  }
+
+  GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
+  GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
+  if (m1 * n1 == 0)
+  {
+         LhsVar(1) = 0;
+         PutLhsVar();
+         return 0;
+  }
+
+  if (Rhs >= 3) {
+    /*     third argument can be a matrix z or a list list(z,zcol) */
+    switch ( VarType(3) )
     {
-        sci_demo(fname, fname_len);
+    case sci_matrix :
+      GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE, &m3, &n3, &l3);
+      izcol = 0;
+      break;
+    case sci_list :
+      izcol = 1;
+      /* z = list(z,colors) */
+      GetRhsVar(3,LIST_DATATYPE,&m3l,&n3l,&l3l);
+      if ( m3l != 2 )
+      {
+        Scierror(999,_("%s: Wrong size for input argument #%d: List of size %d expected.\n"),
+          fname, 3, 2);
         return 0;
-    }
-
-    CheckRhs(3,8);
-
-    if ( get_optionals(fname,opts) == 0)
-    {
-        PutLhsVar();
+      }
+      GetListRhsVar(3,1,MATRIX_OF_DOUBLE_DATATYPE,&m3,&n3,&l3);
+      GetListRhsVar(3,2,MATRIX_OF_DOUBLE_DATATYPE,&m3n,&n3n,&l3n);
+      zcol  = stk(l3n);
+      if (m3n * n3n != n3 &&  m3n*n3n != m3*n3)
+      {
+        Scierror(999,_("%s: Wrong size for input argument #%d: %d or %d expected.\n"),fname,3, n3,m3*n3);
         return 0;
+      }
+      /*
+      *   Added by E Segre 4/5/4000. In the case where zcol is a
+      *   matrix of the same size as z, we set izcol to 2. This
+      *   value is later transmitted to the C2F(fac3dg) routine,
+      *   which has been modified to do the interpolated shading
+      *    (see the file SCI/modules/graphics/src/c/Plo3d.c
+      */
+      if (   m3n*n3n == m3*n3 ) { izcol=2  ; }
+      break ;
+    default :
+      OverLoad(3);
+      return 0;
     }
-
-    if ( FirstOpt() < 4)
-    {
-        Scierror(999, _("%s: Misplaced optional argument: #%d must be at position %d.\n"), fname,1, 4);
-        return -1;
+  }
+  iflag_def[1]=8;
+
+  GetOptionalDoubleArg(fname,4,"theta",&theta,1,opts);
+  GetOptionalDoubleArg(fname,5,"alpha",&alpha,1,opts);
+  GetLabels(fname,6,opts,&legend);
+  GetOptionalIntArg(fname,7,"flag",&iflag,3,opts);
+  GetOptionalDoubleArg(fname,8,"ebox",&ebox,6,opts);
+
+  if (m1 * n1 == m3 * n3 && m1 * n1 == m2 * n2 && m1 * n1 != 1) {
+    if (! (m1 == m2 && m2 == m3 && n1 == n2 && n2 == n3)) {
+      Scierror(999,_("%s: Wrong value for input arguments #%d, #%d and #%d: Incompatible length.\n"),fname, 1, 2, 3);
+      return 0;
     }
-
-    GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &l1);
-    GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE, &m2, &n2, &l2);
-    if (m1 * n1 == 0)
-    {
-        LhsVar(1) = 0;
-        PutLhsVar();
-        return 0;
+  } else {
+    if (m2 * n2 != n3) {
+      Scierror(999,_("%s: Wrong value for input arguments #%d and #%d: Incompatible length.\n"),fname, 2, 3);
+      return 0;
     }
-
-    if (Rhs >= 3) {
-        /*     third argument can be a matrix z or a list list(z,zcol) */
-        switch ( VarType(3) )
-        {
-        case sci_matrix :
-            GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE, &m3, &n3, &l3);
-            izcol = 0;
-            break;
-        case sci_list :
-            izcol = 1;
-            /* z = list(z,colors) */
-            GetRhsVar(3,LIST_DATATYPE,&m3l,&n3l,&l3l);
-            if ( m3l != 2 )
-            {
-                Scierror(999,_("%s: Wrong size for input argument #%d: List of size %d expected.\n"),
-                         fname, 3, 2);
-                return 0;
-            }
-            GetListRhsVar(3,1,MATRIX_OF_DOUBLE_DATATYPE,&m3,&n3,&l3);
-            GetListRhsVar(3,2,MATRIX_OF_DOUBLE_DATATYPE,&m3n,&n3n,&l3n);
-            zcol  = stk(l3n);
-            if (m3n * n3n != n3 &&  m3n*n3n != m3*n3)
-            {
-                Scierror(999,_("%s: Wrong size for input argument #%d: %d or %d expected.\n"),fname,3, n3,m3*n3);
-                return 0;
-            }
-            /*
-             *   Added by E Segre 4/5/4000. In the case where zcol is a
-             *   matrix of the same size as z, we set izcol to 2. This
-             *   value is later transmitted to the C2F(fac3dg) routine,
-             *   which has been modified to do the interpolated shading
-             *    (see the file SCI/modules/graphics/src/c/Plo3d.c
-             */
-            if (   m3n*n3n == m3*n3 ) { izcol=2  ; }
-            break ;
-        default :
-            OverLoad(3);
-            return 0;
-        }
+    if (m1 * n1 != m3) {
+      Scierror(999,_("%s: Wrong value for input arguments #%d and #%d: Incompatible length.\n"),fname, 1, 3);
+      return 0;
     }
-    iflag_def[1]=8;
-
-    GetOptionalDoubleArg(fname,4,"theta",&theta,1,opts);
-    GetOptionalDoubleArg(fname,5,"alpha",&alpha,1,opts);
-    GetLabels(fname,6,opts,&legend);
-    GetOptionalIntArg(fname,7,"flag",&iflag,3,opts);
-    GetOptionalDoubleArg(fname,8,"ebox",&ebox,6,opts);
-
-    if (m1 * n1 == m3 * n3 && m1 * n1 == m2 * n2 && m1 * n1 != 1) {
-        if (! (m1 == m2 && m2 == m3 && n1 == n2 && n2 == n3)) {
-            Scierror(999,_("%s: Wrong value for input arguments #%d, #%d and #%d: Incompatible length.\n"),fname, 1, 2, 3);
-            return 0;
-        }
-    } else {
-        if (m2 * n2 != n3) {
-            Scierror(999,_("%s: Wrong value for input arguments #%d and #%d: Incompatible length.\n"),fname, 2, 3);
-            return 0;
-        }
-        if (m1 * n1 != m3) {
-            Scierror(999,_("%s: Wrong value for input arguments #%d and #%d: Incompatible length.\n"),fname, 1, 3);
-            return 0;
-        }
-        if ( m1*n1 <= 1 || m2*n2 <= 1 )
-        {
-            Scierror(999,_("%s: Wrong size for input arguments #%d and #%d: %s expected.\n"),fname, 2, 3, ">= 2");
-            return 0;
-        }
+    if ( m1*n1 <= 1 || m2*n2 <= 1 )
+    {
+               Scierror(999,_("%s: Wrong size for input arguments #%d and #%d: %s expected.\n"),fname, 2, 3, ">= 2");
+      return 0;
     }
+  }
 
-    if (m1 * n1 == 0 || m2 * n2 == 0 || m3 * n3 == 0) {
-        LhsVar(1)=0;
-        PutLhsVar();
-        return 0;
-    }
+  if (m1 * n1 == 0 || m2 * n2 == 0 || m3 * n3 == 0) {
+               LhsVar(1)=0;
+               PutLhsVar();
+               return 0;
+       }
 
-    getOrCreateDefaultSubwin();
+  getOrCreateDefaultSubwin();
 
-    /******************** 24/015/2002 ********************/
-    if (m1 * n1 == m3 * n3 && m1 * n1 == m2 * n2 && m1 * n1 != 1) /* NG beg */
-    {
-        isfac=1;
-    }
-    else
-    {
-        isfac=0;
-    }
+  /******************** 24/015/2002 ********************/
+  if (m1 * n1 == m3 * n3 && m1 * n1 == m2 * n2 && m1 * n1 != 1) /* NG beg */
+  {
+    isfac=1;
+  }
+  else
+  {
+    isfac=0;
+  }
+
+
+  Objplot3d (fname,&isfac,&izcol,stk(l1),stk(l2),stk(l3),zcol,&m3,&n3,theta,alpha,legend,iflag,ebox,&m1,&n1,&m2,&n2,&m3,&n3,&m3n,&n3n);/*Adding F.Leray 12.03.04 and 19.03.04*/
 
-    startCurrentFigureDataWriting();
-    Objplot3d (fname,&isfac,&izcol,stk(l1),stk(l2),stk(l3),zcol,&m3,&n3,theta,alpha,legend,iflag,ebox,&m1,&n1,&m2,&n2,&m3,&n3,&m3n,&n3n);/*Adding F.Leray 12.03.04 and 19.03.04*/
-    endCurrentFigureDataWriting();
+  LhsVar(1) = 0;
+  PutLhsVar();
+  return 0;
 
-    LhsVar(1) = 0;
-    PutLhsVar();
-    return 0;
 }
 /*--------------------------------------------------------------------------*/
index da45c30..4ed34f8 100644 (file)
 /*--------------------------------------------------------------------------*/
 int sci_show_pixmap(char *fname, unsigned long fname_len )
 {
-    /* call show_pixmap */
+  /* call show_pixmap */
 
-    CheckRhs(0,0);
-    CheckLhs(0,1);
+  CheckRhs(0,0);
+  CheckLhs(0,1);
 
-    /* call show_pixmap function */
-    showPixmap(getCurrentFigure());
+  /* call show_pixmap function */
+  showPixmap(getCurrentFigure());
 
-    LhsVar(1) = 0;
-    PutLhsVar();
-    return 0;
+  LhsVar(1) = 0;
+  PutLhsVar();
+  return 0;
 }
 /*--------------------------------------------------------------------------*/
index 657654b..12ed7c4 100644 (file)
 /*--------------------------------------------------------------------------*/
 int sci_unzoom(char *fname,unsigned long fname_len)
 {
-    /* number of object to unzoom */
-    int nbObjects = 0;
+  /* number of object to unzoom */
+  int nbObjects = 0;
 
-    /* ids of object to unzoom */
-    char** objectsId = NULL;
+  /* ids of object to unzoom */
+  char** objectsId = NULL;
 
-    char* objectUID;
+  char* objectUID;
 
-    /* object type */
-    char *pstType;
+  /* object type */
+  char *pstType;
 
-    CheckRhs(0,1) ;
-    CheckLhs(0,1) ;
-    if ( Rhs == 0 )
+  CheckRhs(0,1) ;
+  CheckLhs(0,1) ;
+  if ( Rhs == 0 )
+  {
+    objectUID = getCurrentFigure();
+    if (objectUID != NULL)
     {
-        objectUID = getCurrentFigure();
-        if (objectUID != NULL)
-        {
-            sciUnzoomFigure(objectUID);
-        }
+      sciUnzoomFigure(objectUID);
     }
-    else
-    {
-        int m,n,i;
-        size_t stackPointer = 0;
-        GetRhsVar(1, GRAPHICAL_HANDLE_DATATYPE, &m, &n, &stackPointer);
-
-        nbObjects = m * n;
-        objectsId = MALLOC(nbObjects * sizeof(char*));
-        if (objectsId == NULL)
-        {
-            Scierror(999, _("%s: No more memory.\n"),fname);
-            return -1;
-        }
+  }
+  else
+  {
+    int m,n,i;
+    size_t stackPointer = 0;
+    GetRhsVar(1, GRAPHICAL_HANDLE_DATATYPE, &m, &n, &stackPointer);
 
-        /* first pass, check that all the handles are subwindows or figures */
-        /* and copy them into an array of objects */
-        startCurrentFigureDataWriting();
-        for (i = 0; i < nbObjects; i++ )
-        {
-            objectUID = getObjectFromHandle(getHandleFromStack(stackPointer + i));
-            getGraphicObjectProperty(objectUID, __GO_TYPE__, jni_string, (void **) &pstType);
-            if ((strcmp(pstType, __GO_FIGURE__) != 0) && (strcmp(pstType, __GO_AXES__) != 0))
-            {
-                FREE(objectsId);
-                Scierror(999, _("%s: Wrong type for input argument: Vector of Axes and Figure handles expected.\n"),fname);
-                endCurrentFigureDataWriting();
-                return -1;
-            }
-            objectsId[i] = objectUID;
-        }
-
-        /* second pass un zoom the objects */
-        sciUnzoomArray(objectsId, nbObjects);
-        endCurrentFigureDataWriting();
+    nbObjects = m * n;
+    objectsId = MALLOC(nbObjects * sizeof(char*));
+    if (objectsId == NULL)
+    {
+      Scierror(999, _("%s: No more memory.\n"),fname);
+      return -1;
+    }
 
+    /* first pass, check that all the handles are subwindows or figures */
+    /* and copy them into an array of objects */
+    for (i = 0; i < nbObjects; i++ )
+    {
+      objectUID = getObjectFromHandle(getHandleFromStack(stackPointer + i));
+      getGraphicObjectProperty(objectUID, __GO_TYPE__, jni_string, (void **) &pstType);
+      if ((strcmp(pstType, __GO_FIGURE__) != 0) && (strcmp(pstType, __GO_AXES__) != 0))
+      {
         FREE(objectsId);
+        Scierror(999, _("%s: Wrong type for input argument: Vector of Axes and Figure handles expected.\n"),fname);
+        return -1;
+      }
+      objectsId[i] = objectUID;
     }
 
+    /* second pass un zoom the objects */
+    sciUnzoomArray(objectsId, nbObjects);
+
+    FREE(objectsId);
+  }
+
 
-    LhsVar(1)=0;
-    PutLhsVar();
-    return 0;
+  LhsVar(1)=0;
+  PutLhsVar();
+  return 0;
 }
 /*--------------------------------------------------------------------------*/
index 6139300..256559a 100644 (file)
@@ -26,7 +26,6 @@
 #include "getGraphicObjectProperty.h"
 #include "CurrentSubwin.h"
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_xarc(char *fname,unsigned long fname_len)
@@ -52,7 +51,6 @@ int sci_xarc(char *fname,unsigned long fname_len)
     angle2 = DEG2RAD(*istk(l6) / 64.0);
 
     psubwinUID = getOrCreateDefaultSubwin();
-    startCurrentFigureDataWriting();
 
     getGraphicObjectProperty(psubwinUID, __GO_LINE_COLOR__, jni_int, &piCurColor);
 
@@ -65,8 +63,6 @@ int sci_xarc(char *fname,unsigned long fname_len)
         Objarc (&angle1,&angle2,stk(l1),stk(l2),stk(l3),stk(l4),NULL,&curcolor,TRUE,FALSE,&hdl);
     }
 
-    endCurrentFigureDataWriting();
-
     LhsVar(1)=0;
     PutLhsVar();
     return 0;
index 991b869..a042d25 100644 (file)
@@ -24,7 +24,6 @@
 #include "Scierror.h"
 
 #include "CurrentObject.h"
-#include "CurrentFigure.h"
 
 #include "graphicObjectProperties.h"
 #include "getGraphicObjectProperty.h"
@@ -87,7 +86,6 @@ int sci_xarcs(char *fname, unsigned long fname_len)
         }
     }
 
-    startCurrentFigureDataWriting();
     for (i = 0; i < n1; ++i)
     {
         angle1 = DEG2RAD(*stk(l1 + (6 * i) + 4) / 64.0);
@@ -98,7 +96,6 @@ int sci_xarcs(char *fname, unsigned long fname_len)
 
     /* construct Compound and make it current object */
     setCurrentObject(ConstructCompoundSeq(n1));
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 92894ce..c52999f 100644 (file)
@@ -23,7 +23,6 @@
 #include "Scierror.h"
 #include "HandleManagement.h"
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_xarrows(char *fname,unsigned long fname_len)
 {
@@ -42,7 +41,7 @@ int sci_xarrows(char *fname,unsigned long fname_len)
     {
         LhsVar(1)=0;
         PutLhsVar();
-        return 0;
+       return 0;
     }
 
     if (Rhs >= 3)
@@ -79,9 +78,7 @@ int sci_xarrows(char *fname,unsigned long fname_len)
 
     getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     Objsegs(style,flag,mn2,stk(l1),stk(l2),NULL,arsize);
-    endCurrentFigureDataWriting();
 
     LhsVar(1)=0;
     PutLhsVar();
index 58ee9dd..860d873 100644 (file)
@@ -36,35 +36,31 @@ int sci_xdel(char *fname,unsigned long fname_len)
     CheckRhs(-1,1);
     if (Rhs >= 1) {
         int i;
-        double * windowNumbers;
+               double * windowNumbers;
         GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1);
 
-        /* First check that all the window numbers are valid */
-        windowNumbers = getDoubleMatrixFromStack(l1);
-        for (i = 0; i < m1 * n1; i++)
-        {
-            if (!sciIsExistingFigure((int) windowNumbers[i]))
-            {
-                Scierror(999, "%s: Figure with figure_id %d does not exist.\n",fname, (int) windowNumbers[i]);
-                return -1;
-            }
-        }
+               /* First check that all the window numbers are valid */
+               windowNumbers = getDoubleMatrixFromStack(l1);
+               for (i = 0; i < m1 * n1; i++)
+               {
+                       if (!sciIsExistingFigure((int) windowNumbers[i]))
+                       {
+                               Scierror(999, "%s: Figure with figure_id %d does not exist.\n",fname, (int) windowNumbers[i]);
+                               return -1;
+                       }
+               }
 
-        startCurrentFigureDataWriting();
         for (i = 0; i < m1*n1 ; i++)
         {
             sciDeleteWindow( (int) windowNumbers[i] ) ;
         }
-        endCurrentFigureDataWriting();
     }
     else
     {
         pstCurrentFigure = getCurrentFigure();
         if (pstCurrentFigure != NULL)
         {
-            startCurrentFigureDataWriting();
             deleteGraphicObject(pstCurrentFigure);
-            endCurrentFigureDataWriting();
         }
     }
     LhsVar(1)=0;
index 8256c32..d8a2fe5 100644 (file)
@@ -24,7 +24,6 @@
 #include "BuildObjects.h"
 
 #include "CurrentObject.h"
-#include "CurrentFigure.h"
 
 #include "graphicObjectProperties.h"
 #include "getGraphicObjectProperty.h"
@@ -74,7 +73,6 @@ int sci_xfarcs(char *fname, unsigned long fname_len)
 
     getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     for (i = 0; i < n1; ++i)
     {
         angle1 = DEG2RAD(*stk(l1 + (6 * i) + 4) / 64.0);
@@ -85,7 +83,6 @@ int sci_xfarcs(char *fname, unsigned long fname_len)
 
     /** Construct Compound and make it current object **/
     setCurrentObject(ConstructCompoundSeq(n1));
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index d1fd6ac..96b4934 100644 (file)
@@ -21,7 +21,6 @@
 #include "stack-c.h"
 #include "sciCall.h"
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 
 #include "graphicObjectProperties.h"
 #include "getGraphicObjectProperty.h"
@@ -61,9 +60,7 @@ int sci_xfpoly(char *fname,unsigned long fname_len)
         getGraphicObjectProperty(psubwinUID, __GO_LINE_COLOR__, jni_int, (void**)&piForeground);
     }
 
-    startCurrentFigureDataWriting();
     Objfpoly(stk(l1), stk(l2), mn1, &iForeground, &hdl, 0);
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 3bd2d7a..6a9078e 100644 (file)
@@ -26,7 +26,6 @@
 #include "localization.h"
 
 #include "CurrentObject.h"
-#include "CurrentFigure.h"
 
 #include "graphicObjectProperties.h"
 #include "getGraphicObjectProperty.h"
@@ -97,7 +96,6 @@ int sci_xfpolys(char *fname, unsigned long fname_len)
 
     pstSubWinUID = getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     for (i = 0; i < n1; ++i)
     {
         if (m3 == 1 || n3 == 1) /* color vector specified */
@@ -120,7 +118,6 @@ int sci_xfpolys(char *fname, unsigned long fname_len)
 
     /** Construct Compound and make it current object**/
     setCurrentObject(ConstructCompoundSeq(n1));
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 7788e53..d039d09 100644 (file)
@@ -24,7 +24,6 @@
 #include "Scierror.h"
 #include "localization.h"
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 
 #include "setGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
@@ -47,11 +46,9 @@ int sci_xgrid(char *fname, unsigned long fname_len)
 
     pstObjUID = getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     setGraphicObjectProperty(pstObjUID, __GO_X_AXIS_GRID_COLOR__, &style, jni_int, 1);
     setGraphicObjectProperty(pstObjUID, __GO_Y_AXIS_GRID_COLOR__, &style, jni_int, 1);
     setGraphicObjectProperty(pstObjUID, __GO_Z_AXIS_GRID_COLOR__, &style, jni_int, 1);
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index cecf89d..db6053b 100644 (file)
@@ -32,7 +32,6 @@
 #include "graphicObjectProperties.h"
 #include "CurrentObject.h"
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_xpoly( char * fname, unsigned long fname_len )
@@ -90,7 +89,6 @@ int sci_xpoly( char * fname, unsigned long fname_len )
     /* NG beg */
 
     psubwinUID = getOrCreateDefaultSubwin();
-    startCurrentFigureDataWriting();
 
     Objpoly (stk(l1),stk(l2),mn2,close,mark,&hdl);
 
@@ -128,8 +126,6 @@ int sci_xpoly( char * fname, unsigned long fname_len )
     setGraphicObjectProperty(pobjUID, __GO_MARK_MODE__, &markMode, jni_bool, 1);
     setGraphicObjectProperty(pobjUID, __GO_LINE_MODE__, &lineMode, jni_bool, 1);
 
-    endCurrentFigureDataWriting();
-
     /* NG end */
     LhsVar(1)=0;
     PutLhsVar();
index a491055..51b3093 100644 (file)
@@ -23,7 +23,6 @@
 #include "BuildObjects.h"
 
 #include "CurrentObject.h"
-#include "CurrentFigure.h"
 
 #include "graphicObjectProperties.h"
 #include "getGraphicObjectProperty.h"
@@ -54,7 +53,6 @@ int sci_xpolys(char *fname, unsigned long fname_len)
 
     getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     if (Rhs == 3)
     {
         GetRhsVar(3, MATRIX_OF_INTEGER_DATATYPE, &m3, &n3, &l3);
@@ -76,7 +74,6 @@ int sci_xpolys(char *fname, unsigned long fname_len)
 
     /** Construct Compound and make it current object**/
     setCurrentObject(ConstructCompoundSeq(n1));
-    endCurrentFigureDataWriting();
 
     LhsVar(1) = 0;
     PutLhsVar();
index 6c265e4..f833c5e 100644 (file)
@@ -29,7 +29,6 @@
 #include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
 #include "BuildObjects.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_xrect( char *fname, unsigned long fname_len )
@@ -52,7 +51,7 @@ int sci_xrect( char *fname, unsigned long fname_len )
         CheckLength(1,m1*n1,4);
 
         getGraphicObjectProperty(psubwinUID, __GO_LINE_COLOR__, jni_int, &piForeground);
-        startCurrentFigureDataWriting();
+
         if (strcmp(fname,"xrect")==0)
         {
             Objrect (stk(l1),stk(l1+1),stk(l1+2),stk(l1+3),
@@ -63,7 +62,6 @@ int sci_xrect( char *fname, unsigned long fname_len )
             Objrect (stk(l1),stk(l1+1),stk(l1+2),stk(l1+3),
                      NULL,&foreground,TRUE,FALSE,&hdl);
         }
-        endCurrentFigureDataWriting();
 
         if ( hdl < 0 )
         {
@@ -79,7 +77,6 @@ int sci_xrect( char *fname, unsigned long fname_len )
         GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE,&m3,&n3,&l3); CheckScalar(3,m3,n3);
         GetRhsVar(4,MATRIX_OF_DOUBLE_DATATYPE,&m4,&n4,&l4); CheckScalar(4,m4,n4);
 
-        startCurrentFigureDataWriting();
         if (strcmp(fname,"xrect")==0)
         {
             Objrect (stk(l1),stk(l2),stk(l3),stk(l4),
@@ -90,7 +87,6 @@ int sci_xrect( char *fname, unsigned long fname_len )
             Objrect (stk(l1),stk(l2),stk(l3),stk(l4),
                      NULL,&foreground,TRUE,FALSE,&hdl);
         }
-        endCurrentFigureDataWriting();
 
         if ( hdl < 0 )
         {
index da4d55a..74a9856 100644 (file)
@@ -33,7 +33,6 @@
 #include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
 #include "CurrentObject.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_xrects( char *fname, unsigned long fname_len )
 {
@@ -74,7 +73,6 @@ int sci_xrects( char *fname, unsigned long fname_len )
 
     psubwinUID = getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     // Create compound.
     pstCompoundUID = createGraphicObject(__GO_COMPOUND__);
     /* Sets the parent-child relationship for the Compound */
@@ -90,7 +88,7 @@ int sci_xrects( char *fname, unsigned long fname_len )
             getGraphicObjectProperty(psubwinUID, __GO_LINE_COLOR__, jni_int, &piForeground);
 
             Objrect(stk(l1+(4*i)),stk(l1+(4*i)+1),stk(l1+(4*i)+2),stk(l1+(4*i)+3),
-                    &foreground,NULL,FALSE,TRUE,&hdl);
+                     &foreground,NULL,FALSE,TRUE,&hdl);
         }
         else
         {
@@ -99,13 +97,13 @@ int sci_xrects( char *fname, unsigned long fname_len )
                 /** fil(i) < 0 rectangle i is drawn using the line style (or color) **/
                 int tmp = - (*istk(l2+i));
                 Objrect(stk(l1+(4*i)),stk(l1+(4*i)+1),stk(l1+(4*i)+2),stk(l1+(4*i)+3),
-                        &tmp,NULL,FALSE,TRUE,&hdl);
+                         &tmp,NULL,FALSE,TRUE,&hdl);
             }
             else
             {
                 /** fil(i) > 0   rectangle i is filled using the pattern (or color) **/
                 Objrect(stk(l1+(4*i)),stk(l1+(4*i)+1),stk(l1+(4*i)+2),stk(l1+(4*i)+3),
-                        NULL,istk(l2+i),TRUE,FALSE,&hdl);
+                         NULL,istk(l2+i),TRUE,FALSE,&hdl);
             }
         }
         // Add newly created object to Compound
@@ -114,7 +112,6 @@ int sci_xrects( char *fname, unsigned long fname_len )
 
     /** make Compound current object **/
     setCurrentObject(pstCompoundUID);
-    endCurrentFigureDataWriting();
 
     LhsVar(1)=0;
     PutLhsVar();
index c448de8..81070c2 100644 (file)
@@ -28,7 +28,6 @@
 
 #include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_xsegs(char *fname,unsigned long fname_len)
 {
@@ -107,9 +106,7 @@ int sci_xsegs(char *fname,unsigned long fname_len)
         colorFlag = (mc*nc == 1) ? 0 : 1;
     }
 
-    startCurrentFigureDataWriting();
     Objsegs (style,colorFlag,mx*nx,stk(lx),stk(ly),zptr,arsize);
-    endCurrentFigureDataWriting();
 
     LhsVar(1)=0;
     PutLhsVar();
index 1aa3e39..f656915 100644 (file)
@@ -1,16 +1,16 @@
 /*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2006 - INRIA - Fabrice Leray
- * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
- * Copyright (C) 2012 - Scilab Enterprises - Bruno JOFRET
- *
- * This file must be used under the terms of the CeCILL.
- * This source file is licensed as described in the file COPYING, which
- * you should have received as part of this distribution.  The terms
- * are also available at
- * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2006 - INRIA - Fabrice Leray
+* Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+* Copyright (C) 2012 - Scilab Enterprises - Bruno JOFRET
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution.  The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+*
+*/
 
 /*------------------------------------------------------------------------*/
 /* file: sci_xset.c                                                       */
@@ -129,10 +129,8 @@ int sci_xset( char *fname, unsigned long fname_len )
             return -1;
         }
         subwinUID = getOrCreateDefaultSubwin();
-        startCurrentFigureDataWriting();
         setGraphicObjectProperty(subwinUID, __GO_CLIP_BOX__, xx, jni_double_vector, 4);
         setGraphicObjectProperty(subwinUID, __GO_CLIP_STATE__, &clipState, jni_int, 1);
-        endCurrentFigureDataWriting();
     }
     else if ( strcmp(cstk(l1), "colormap") == 0)
     {
@@ -147,10 +145,8 @@ int sci_xset( char *fname, unsigned long fname_len )
         int markSizeUnit = 1; /* force switch to tabulated mode : old syntax / 0 : point, 1 : tabulated */
         char *subwinUID = getOrCreateDefaultSubwin();
 
-        startCurrentFigureDataWriting();
         setGraphicObjectProperty(subwinUID, __GO_MARK_SIZE_UNIT__, &markSizeUnit, jni_int, 1);
         setGraphicObjectProperty(subwinUID, __GO_MARK_SIZE__, &markSize, jni_int, 1);
-        endCurrentFigureDataWriting();
     }
     else if ( strcmp(cstk(l1), "mark") == 0)
     {
@@ -165,11 +161,9 @@ int sci_xset( char *fname, unsigned long fname_len )
         }
 
         subwinUID = getOrCreateDefaultSubwin();
-        startCurrentFigureDataWriting();
         setGraphicObjectProperty(subwinUID, __GO_MARK_SIZE_UNIT__, &markSizeUnit, jni_int, 1); /* force switch to tabulated mode : old syntax */
         setGraphicObjectProperty(subwinUID, __GO_MARK_STYLE__, &markStyle, jni_int, 1);
         setGraphicObjectProperty(subwinUID, __GO_MARK_SIZE__, &markSize, jni_int, 1);
-        endCurrentFigureDataWriting();
     }
     else if ( strcmp(cstk(l1), "font size") == 0)
     {
@@ -210,10 +204,8 @@ int sci_xset( char *fname, unsigned long fname_len )
             return -1;
         }
 
-        startCurrentFigureDataWriting();
         setGraphicObjectProperty(getOrCreateDefaultSubwin(), __GO_FONT_SIZE__, &fontSize, jni_double, 1);
         setGraphicObjectProperty(getOrCreateDefaultSubwin(), __GO_FONT_STYLE__, &fontStyle, jni_int, 1);
-        endCurrentFigureDataWriting();
     }
     else if ( strcmp(cstk(l1), "window") == 0 || strcmp(cstk(l1), "figure") == 0 )
     {
@@ -250,11 +242,10 @@ int sci_xset( char *fname, unsigned long fname_len )
     else if ( strcmp(cstk(l1), "mark") == 0)
     {
         int markMode = 1;
-        subwinUID = getOrCreateDefaultSubwin();
-        startCurrentFigureDataWriting();
-        setGraphicObjectProperty(subwinUID, __GO_MARK_MODE__, &markMode, jni_bool, 1);
-        sciSetMarkStyle(subwinUID, x[0]);
-        endCurrentFigureDataWriting();
+
+        setGraphicObjectProperty(getOrCreateDefaultSubwin(), __GO_MARK_MODE__, &markMode, jni_bool, 1);
+
+        sciSetMarkStyle(getOrCreateDefaultSubwin(), x[0]);
     }
     else if ( strcmp(cstk(l1), "colormap") == 0)
     {
@@ -274,7 +265,7 @@ int sci_xset( char *fname, unsigned long fname_len )
     }
     else if ( strcmp(cstk(l1), "wpos") == 0)
     {
-        int figurePosition[2];
+       int figurePosition[2];
         if (Rhs != 2)
         {
             Scierror(999, _("%s: Wrong number of input argument: %d expected.\n"), fname, 2);
@@ -282,9 +273,9 @@ int sci_xset( char *fname, unsigned long fname_len )
         }
         getOrCreateDefaultSubwin();
 
-        figurePosition[0] = x[0];
-        figurePosition[1] = x[1];
-        setGraphicObjectProperty(getCurrentFigure(), __GO_POSITION__, figurePosition, jni_int_vector, 2);
+       figurePosition[0] = x[0];
+       figurePosition[1] = x[1];
+       setGraphicObjectProperty(getCurrentFigure(), __GO_POSITION__, figurePosition, jni_int_vector, 2);
     }
     else if ( strcmp(cstk(l1), "wpdim") == 0 || strcmp(cstk(l1), "wdim") == 0)
     {
@@ -296,9 +287,9 @@ int sci_xset( char *fname, unsigned long fname_len )
         }
         getOrCreateDefaultSubwin();
 
-        figureSize[0] = x[0];
-        figureSize[1] = x[1];
-        setGraphicObjectProperty(getCurrentFigure(), __GO_SIZE__, figureSize, jni_int_vector, 2);
+       figureSize[0] = x[0];
+       figureSize[1] = x[1];
+       setGraphicObjectProperty(getCurrentFigure(), __GO_SIZE__, figureSize, jni_int_vector, 2);
     } /*Ajout A.Djalel le 10/11/03 */
     else if ( strcmp(cstk(l1), "pixmap") == 0)
     {
index de7692e..ab52f25 100644 (file)
@@ -27,7 +27,6 @@
 #include "BuildObjects.h"
 
 #include "CurrentSubwin.h"
-#include "CurrentFigure.h"
 
 /*--------------------------------------------------------------------------*/
 int sci_xstring(char *fname, unsigned long fname_len)
@@ -113,7 +112,6 @@ int sci_xstring(char *fname, unsigned long fname_len)
 
     getOrCreateDefaultSubwin();
 
-    startCurrentFigureDataWriting();
     if (nbElement == 1)
     {
         Objstring(sendStr, sendm3, sendn3, x, y, &angle, rect, TRUE, NULL, &hdlstr, FALSE, NULL, NULL, isboxed
@@ -148,7 +146,6 @@ int sci_xstring(char *fname, unsigned long fname_len)
          */
         ConstructCompoundSeq(nbElement);
     }
-    endCurrentFigureDataWriting();
 
     /* we must free Str memory */
 
index da7a9b4..3de0094 100644 (file)
@@ -3,11 +3,11 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
- *
+ * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.  The terms
- * are also available at
+ * are also available at    
  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
  *
  */
 #include "sciCall.h"
 #include "freeArrayOfString.h"
 #include "localization.h"
-#include "CurrentFigure.h"
 /*--------------------------------------------------------------------------*/
 int sci_xstringb(char *fname,unsigned long fname_len)
 {
-    int m1,n1,l1,m2,n2,l2,m3,n3,m4,n4,l4,m5,n5,l5,m6,n6,l6;
-    BOOL autoSize = TRUE ;
-    double x,y,w,hx;
-    char **Str;
-    double rect[4],angle=0;
-    long hdlstr;
-    double userSize[2] ;
+  int m1,n1,l1,m2,n2,l2,m3,n3,m4,n4,l4,m5,n5,l5,m6,n6,l6;
+  BOOL autoSize = TRUE ;
+  double x,y,w,hx;
+  char **Str;
+  double rect[4],angle=0;
+  long hdlstr;
+  double userSize[2] ;
 
-    if ( Rhs <= 0 )
-    {
-        /* demo */
-        sci_demo(fname, fname_len);
-        return 0 ;
-    }
+  if ( Rhs <= 0 )
+  {
+    /* demo */
+    sci_demo(fname, fname_len);
+    return 0 ;
+  }
 
-    CheckRhs(5,6);
+  CheckRhs(5,6);
 
-    GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1); CheckScalar(1,m1,n1);  x = *stk(l1);
-    GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE,&m2,&n2,&l2); CheckScalar(2,m2,n2);  y = *stk(l2);
-    GetRhsVar(3,MATRIX_OF_STRING_DATATYPE,&m3,&n3,&Str);
-    if ( m3*n3 == 0 )
-    {
-        LhsVar(1)=0;
-        PutLhsVar();
-        return 0;
-    }
+  GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1); CheckScalar(1,m1,n1);  x = *stk(l1);
+  GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE,&m2,&n2,&l2); CheckScalar(2,m2,n2);  y = *stk(l2);
+  GetRhsVar(3,MATRIX_OF_STRING_DATATYPE,&m3,&n3,&Str);
+  if ( m3*n3 == 0 )
+       {
+               LhsVar(1)=0;
+               PutLhsVar();
+               return 0;
+       } 
 
-    GetRhsVar(4,MATRIX_OF_DOUBLE_DATATYPE,&m4,&n4,&l4); CheckScalar(4,m4,n4);  w = *stk(l4);
-    GetRhsVar(5,MATRIX_OF_DOUBLE_DATATYPE,&m5,&n5,&l5); CheckScalar(5,m5,n5);  hx = *stk(l5);
+  GetRhsVar(4,MATRIX_OF_DOUBLE_DATATYPE,&m4,&n4,&l4); CheckScalar(4,m4,n4);  w = *stk(l4);
+  GetRhsVar(5,MATRIX_OF_DOUBLE_DATATYPE,&m5,&n5,&l5); CheckScalar(5,m5,n5);  hx = *stk(l5);
 
-    if (Rhs == 6)
+  if (Rhs == 6)
+  {
+    GetRhsVar(6,STRING_DATATYPE,&m6,&n6,&l6);
+    if ( m6*n6 !=0 && strcmp(cstk(l6),"fill") == 0 )
+    {
+      autoSize = FALSE ;
+    } 
+    else
     {
-        GetRhsVar(6,STRING_DATATYPE,&m6,&n6,&l6);
-        if ( m6*n6 !=0 && strcmp(cstk(l6),"fill") == 0 )
-        {
-            autoSize = FALSE ;
-        }
-        else
-        {
-            Scierror(999,_("%s: Wrong value for input argument #%d: '%s' expected.\n"), fname, 6, "fill");
-            return 0;
-        }
+      Scierror(999,_("%s: Wrong value for input argument #%d: '%s' expected.\n"), fname, 6, "fill");
+      return 0;
     }
+  }
+
+  userSize[0] = w ;
+  userSize[1] = hx ;
+  Objstring (Str,m3,n3,x,y,&angle,rect,autoSize,userSize,&hdlstr,TRUE,NULL,NULL,FALSE,TRUE,FALSE,ALIGN_CENTER);
 
-    userSize[0] = w ;
-    userSize[1] = hx ;
-    startCurrentFigureDataWriting();
-    Objstring (Str,m3,n3,x,y,&angle,rect,autoSize,userSize,&hdlstr,TRUE,NULL,NULL,FALSE,TRUE,FALSE,ALIGN_CENTER);
-    endCurrentFigureDataWriting();
+       freeArrayOfString(Str,m3*n3);
 
-    freeArrayOfString(Str,m3*n3);
+  LhsVar(1)=0;
+       PutLhsVar();
 
-    LhsVar(1)=0;
-    PutLhsVar();
+  return 0;
 
-    return 0;
 }
 /*--------------------------------------------------------------------------*/
index 034ed0a..d4c2463 100644 (file)
@@ -44,7 +44,7 @@ int sci_xtitle( char * fname, unsigned long fname_len )
     BOOL isBoxSpecified = FALSE;
     char * psubwinUID = NULL;
     static rhs_opts opts[] = { {-1,"boxed","i" ,0,0,0},
-                               {-1,NULL   ,NULL,0,0,0} };
+    {-1,NULL   ,NULL,0,0,0} };
 
     if (Rhs <= 0)
     {
@@ -111,31 +111,29 @@ int sci_xtitle( char * fname, unsigned long fname_len )
 
         switch(narg)
         {
-        case 1:
-            getGraphicObjectProperty(psubwinUID, __GO_TITLE__, jni_string, &modifiedLabel);
-            break;
-        case 2:
-            getGraphicObjectProperty(psubwinUID, __GO_X_AXIS_LABEL__, jni_string, &modifiedLabel);
-            break;
-        case 3:
-            getGraphicObjectProperty(psubwinUID, __GO_Y_AXIS_LABEL__, jni_string, &modifiedLabel);
-            break;
-        case 4:
-            getGraphicObjectProperty(psubwinUID, __GO_Z_AXIS_LABEL__, jni_string, &modifiedLabel);
-            break;
-        default:
+            case 1:
+                getGraphicObjectProperty(psubwinUID, __GO_TITLE__, jni_string, &modifiedLabel);
+                break;
+            case 2:
+                getGraphicObjectProperty(psubwinUID, __GO_X_AXIS_LABEL__, jni_string, &modifiedLabel);
             break;
+            case 3:
+                getGraphicObjectProperty(psubwinUID, __GO_Y_AXIS_LABEL__, jni_string, &modifiedLabel);
+                break;
+            case 4:
+                getGraphicObjectProperty(psubwinUID, __GO_Z_AXIS_LABEL__, jni_string, &modifiedLabel);
+                break;
+            default:
+                break;
         }
 
 #if 0
         startFigureDataWriting(pFigure);
 #endif
 
-        startCurrentFigureDataWriting();
         sciSetText(modifiedLabel, Str, m, n);
 
         setGraphicObjectProperty(modifiedLabel, __GO_FILL_MODE__, &box, jni_bool, 1);
-        endCurrentFigureDataWriting();
 
 #if 0
         endFigureDataWriting(pFigure);
index 0bc653c..34aaad9 100644 (file)
@@ -37,7 +37,6 @@
 #include "graphicObjectProperties.h"
 #include "CurrentSubwin.h"
 #include "CurrentObject.h"
-#include "CurrentFigure.h"
 
 /*-----------------------------------------------------------------
  *  int C2F(champ)(x,y,fx,fy,n1,n2,strflag,brect,arfact,lstr)
@@ -57,7 +56,7 @@
  -------------------------------------------------------------------*/
 
 void champg(char *name, int colored, double *x, double *y, double *fx, double *fy, int *n1,
-            int *n2, char *strflag, double *brect, double *arfact, int lstr)
+           int *n2, char *strflag, double *brect, double *arfact, int lstr)
 {
     char* psubwinUID = NULL;
     char* newSegsUID = NULL;
@@ -107,8 +106,6 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
     /* then modify subwindow if needed */
     checkRedrawing();
 
-    startCurrentFigureDataWriting();
-
     /* Force clipping to CLIPGRF (1) */
     clipState = 1;
     setGraphicObjectProperty(psubwinUID, __GO_CLIP_STATE__, &clipState, jni_int, 1);
@@ -119,7 +116,7 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
     }
 
     newSegsUID = ConstructSegs(psubwinUID,type,x,y, NULL,*n1,*n2,0,fx,fy,flag,
-                               style,arsize1,colored,typeofchamp);
+                            style,arsize1,colored,typeofchamp);
 
     if (newSegsUID == NULL)
     {
@@ -128,7 +125,7 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
         {
             FREE(style);
         }
-        endCurrentFigureDataWriting();
+
         return;
     }
 
@@ -144,9 +141,9 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
     clipState = 1;
     setGraphicObjectProperty(newSegsUID, __GO_CLIP_STATE__, &clipState, jni_int, 1);
 
-    /* Deactivated since it tells the renderer module that the object has changed */
+  /* Deactivated since it tells the renderer module that the object has changed */
 #if 0
-    forceRedraw(newSegs); /* update drawer */
+  forceRedraw(newSegs); /* update drawer */
 #endif
 
     /* Get segs bounding box */
@@ -187,34 +184,34 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
         switch (strflag[1])
         {
         case '0':
-            /* do not change data bounds */
-            break;
+          /* do not change data bounds */
+          break;
         case '1' : case '3' : case '5' : case '7':
-            /* Force data bounds=brect */
-            re_index_brect(brect,drect);
-            break;
+          /* Force data bounds=brect */
+          re_index_brect(brect,drect);
+          break;
         case '2' : case '4' : case '6' : case '8': case '9':
 
-            getGraphicObjectProperty(psubwinUID, __GO_X_AXIS_LOG_FLAG__, jni_bool, &piTmp);
-            logFlags[0] = iTmp;
-            getGraphicObjectProperty(psubwinUID, __GO_Y_AXIS_LOG_FLAG__, jni_bool, &piTmp);
-            logFlags[1] = iTmp;
-            getGraphicObjectProperty(psubwinUID, __GO_Z_AXIS_LOG_FLAG__, jni_bool, &piTmp);
-            logFlags[2] = iTmp;
-
-            /* Conversion required by compute_data_bounds2 */
-            textLogFlags[0] = getTextLogFlag(logFlags[0]);
-            textLogFlags[1] = getTextLogFlag(logFlags[1]);
-            textLogFlags[2] = getTextLogFlag(logFlags[2]);
-
-            /* Force data bounds to the x and y bounds */
-            compute_data_bounds2(0,'g',textLogFlags,xx,yy,nn1,nn2,drect);
-            break;
+          getGraphicObjectProperty(psubwinUID, __GO_X_AXIS_LOG_FLAG__, jni_bool, &piTmp);
+          logFlags[0] = iTmp;
+          getGraphicObjectProperty(psubwinUID, __GO_Y_AXIS_LOG_FLAG__, jni_bool, &piTmp);
+          logFlags[1] = iTmp;
+          getGraphicObjectProperty(psubwinUID, __GO_Z_AXIS_LOG_FLAG__, jni_bool, &piTmp);
+          logFlags[2] = iTmp;
+
+          /* Conversion required by compute_data_bounds2 */
+          textLogFlags[0] = getTextLogFlag(logFlags[0]);
+          textLogFlags[1] = getTextLogFlag(logFlags[1]);
+          textLogFlags[2] = getTextLogFlag(logFlags[2]);
+
+          /* Force data bounds to the x and y bounds */
+          compute_data_bounds2(0,'g',textLogFlags,xx,yy,nn1,nn2,drect);
+          break;
         }
 
         /* merge data bounds and drect */
         if (!firstPlot &&
-            (strflag[1] == '7' || strflag[1] == '8'|| strflag[1] == '9'))
+          (strflag[1] == '7' || strflag[1] == '8'|| strflag[1] == '9'))
         {
             double* dataBounds;
 
@@ -244,10 +241,10 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
     firstPlot = 0;
     setGraphicObjectProperty(psubwinUID, __GO_FIRST_PLOT__, &firstPlot, jni_bool, 1);
 
-    /*
-     * Deactivated since it tells the renderer module that the object has changed
-     * To be implemented
-     */
+  /*
+   * Deactivated since it tells the renderer module that the object has changed
+   * To be implemented
+   */
 #if 0
     if( bounds_changed || axes_properties_changed )
     {
@@ -255,26 +252,25 @@ void champg(char *name, int colored, double *x, double *y, double *fx, double *f
     }
 #endif
 
-    /*
-     * Deactivated since it involves drawing via the renderer module
-     */
+  /*
+   * Deactivated since it involves drawing via the renderer module
+   */
 #if 0
     sciDrawObj(sciGetCurrentFigure());
 #endif
 
-    endCurrentFigureDataWriting();
 }
 
 int C2F(champ)(double *x, double *y, double *fx, double *fy, int *n1, int *n2, char *strflag, double *brect, double *arfact, int lstr)
 {
-    champg("champ",0,x,y,fx,fy,n1,n2,strflag,brect,arfact,lstr);
-    return(0);
+  champg("champ",0,x,y,fx,fy,n1,n2,strflag,brect,arfact,lstr);
+  return(0);
 }
 
 int C2F(champ1)(double *x, double *y, double *fx, double *fy, int *n1, int *n2, char *strflag, double *brect, double *arfact, int lstr)
 {
-    champg("champ1",1,x,y,fx,fy,n1,n2,strflag,brect,arfact,lstr);
-    return(0);
+  champg("champ1",1,x,y,fx,fy,n1,n2,strflag,brect,arfact,lstr);
+  return(0);
 }
 /*----------------------------------------------------------------------------------*/
 
index 9e27e0b..6294edc 100644 (file)
@@ -167,17 +167,6 @@ void showPixmap(char *pFigureUID)
     sciDrawObj(pFigure);
   }
 #endif
-  static int iTrue = (int)TRUE;
-  static int iFalse = (int)FALSE;
-  int iPixmapFlag = 0;
-  int *piPixmapFlag = &iPixmapFlag;
-
-  getGraphicObjectProperty(pFigureUID, __GO_PIXMAP__, jni_bool, &piPixmapFlag);
-  if (iPixmapFlag)
-  {
-      setGraphicObjectProperty(pFigureUID, __GO_PIXMAP__, &iFalse, jni_bool, 1);
-      setGraphicObjectProperty(pFigureUID, __GO_PIXMAP__, &iTrue, jni_bool, 1);
-  }
 }
 /*---------------------------------------------------------------------------------*/
 void clearPixmap(sciPointObj * pFigure)
index dd8d4cf..7985f86 100644 (file)
@@ -42,6 +42,7 @@
 #include "getGraphicObjectProperty.h"
 #include "setGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
+#include "CurrentFigure.h"
 #include "CurrentSubwin.h"
 #include "CurrentObject.h"
 
@@ -94,6 +95,7 @@ int plot2dn(int ptype, char *logflags, double *x, double *y, int *n1, int *n2, i
             BOOL flagNax, int lstr1, int lstr2)
 {
     char *psubwinUID = NULL;
+    char *curFigureUID = NULL;
     int closeflag = 0;
     int jj = 0;
     long long *tabofhandles = NULL;
@@ -135,8 +137,8 @@ int plot2dn(int ptype, char *logflags, double *x, double *y, int *n1, int *n2, i
 
 #if 0
     endGraphicDataWriting();
+    startFigureDataWriting(curFigure);
 #endif
-
     /*
      * Check if the auto_clear property is on and then erase everything
      * To be implemented
@@ -467,7 +469,6 @@ int plot2dn(int ptype, char *logflags, double *x, double *y, int *n1, int *n2, i
 #if 0
     sciDrawObj(curFigure);
 #endif
-
     return (0);
 }
 
index 6767c4e..d30e323 100644 (file)
@@ -29,8 +29,6 @@ import org.scilab.modules.gui.utils.Size;
 import org.scilab.modules.renderer.JoGLView.DrawerVisitor;
 
 import javax.media.opengl.GL;
-import javax.media.opengl.GLCapabilities;
-import javax.media.opengl.GLProfile;
 import javax.media.opengl.awt.GLCanvas;
 import javax.media.opengl.awt.GLJPanel;
 import javax.swing.JPanel;
@@ -125,10 +123,8 @@ public class SwingScilabCanvas extends JPanel implements SimpleCanvas {
                     }
                 });
         } else {
-           GLCapabilities caps = new GLCapabilities(GLProfile.getDefault());
-           caps.setDoubleBuffered(true);
-            GLCanvas glCanvas = new GLCanvas(caps);
-           drawableComponent = glCanvas;
+            GLCanvas glCanvas = new GLCanvas();
+            drawableComponent = glCanvas;
             glCanvas.setEnabled(true);
             add(glCanvas, PanelLayout.GL_CANVAS);
 
index fa1cb84..b6c5fdc 100644 (file)
@@ -746,12 +746,6 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
     @Override
     public void updateObject(String id, String property) {
         try {
-            if (property.isEmpty()) {
-                // just a redraw
-                redraw();
-                return;
-            }
-
             if (needUpdate(id, property)) {
                 GraphicController.getController().setProperty(id, GraphicObjectProperties.__GO_VALID__, true);
                 if (GraphicObjectProperties.__GO_COLORMAP__.equals(property) && figure.getIdentifier().equals(id)) {
@@ -772,7 +766,7 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
                     legendDrawer.update(id, property);
                     fecDrawer.update(id, property);
                 }
-                redraw();
+                canvas.redraw();
             }
         } catch (OutOfMemoryException e) {
             invalidate(GraphicController.getController().getObjectFromId(id), e);
@@ -781,16 +775,6 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
         }
     }
 
-
-    /**
-     * Redraw the canvas if necessary
-     */
-    private void redraw() {
-        if (figure.canDraw()) {
-            canvas.redraw();
-        }
-    }
-
     /**
      * Check if the given changed property make the figure out of date.
      * @param id the object updated
@@ -851,7 +835,7 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
             visitorMap.remove(id);
         }
 
-        redraw();
+        canvas.redraw();
     }
 
     /**
@@ -928,12 +912,12 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
         byte[] blackColor = {0x00, 0x00, 0x00, (byte) 0xFF};
 
         @Override
-            public Dimension getTextureSize() {
+        public Dimension getTextureSize() {
             return new Dimension(colorMap.getSize() + 2, 1);
         }
 
         @Override
-            public ByteBuffer getData() {
+        public ByteBuffer getData() {
             Double[] data = colorMap.getData();
             ByteBuffer buffer = ByteBuffer.allocate(4 * ((data.length / 3) + 2));
 
@@ -952,7 +936,7 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
         }
 
         @Override
-            public ByteBuffer getSubData(int x, int y, int width, int height) {
+        public ByteBuffer getSubData(int x, int y, int width, int height) {
             /*
              * For the moment, we presuppose that x and y are 0 and that
              * width is equal to the colormap's total size (with height == 1).
@@ -962,7 +946,7 @@ public class DrawerVisitor implements Visitor, Drawer, GraphicView {
         }
 
         @Override
-            public boolean isValid() {
+        public boolean isValid() {
             return true;
         }
 
index f12bbbe..757b887 100644 (file)
@@ -167,11 +167,11 @@ class AxesRulerSpriteFactory implements RulerSpriteFactory {
                        );
             }
 
-                @Override
-                public TextureDrawer.OriginPosition getOriginPosition() {
-                    return TextureDrawer.OriginPosition.UPPER_LEFT;
-                }
-            });
+            @Override
+            public TextureDrawer.OriginPosition getOriginPosition() {
+                return TextureDrawer.OriginPosition.UPPER_LEFT;
+            }
+        });
 
         return texture;
     }
@@ -193,21 +193,21 @@ class AxesRulerSpriteFactory implements RulerSpriteFactory {
         Texture texture = textureManager.createTexture();
         texture.setDrawer(new TextureDrawer() {
 
-                @Override
-                public void draw(TextureDrawingTools drawingTools) {
-                    drawingTools.draw(textEntity, 0, 0);
-                }
+            @Override
+            public void draw(TextureDrawingTools drawingTools) {
+                drawingTools.draw(textEntity, 0, 0);
+            }
 
-                @Override
-                public Dimension getTextureSize() {
-                    return textEntity.getSize();
-                }
+            @Override
+            public Dimension getTextureSize() {
+                return textEntity.getSize();
+            }
 
-                @Override
-                public TextureDrawer.OriginPosition getOriginPosition() {
-                    return TextureDrawer.OriginPosition.UPPER_LEFT;
-                }
-            });
+            @Override
+            public TextureDrawer.OriginPosition getOriginPosition() {
+                return TextureDrawer.OriginPosition.UPPER_LEFT;
+            }
+        });
 
         return texture;
     }
@@ -218,20 +218,18 @@ class AxesRulerSpriteFactory implements RulerSpriteFactory {
      * @return the user defined {@see FormattedText} ticks label corresponding to the given value.
      */
     private FormattedText getTextAtValue(double value) {
-        synchronized(axisProperty) {
-            Double[] locations = axisProperty.getTicksLocations();
-            int index = -1;
-            for (int i = 0 ; i < locations.length ; i++) {
-                if (locations[i] == value) {
-                    index = i;
-                    break;
-                }
-            }
-            if (index == -1 || index >= axisProperty.getTicksLabels().size()) {
-                return null;
-            } else {
-                return axisProperty.getTicksLabels().get(index);
+        Double[] locations = axisProperty.getTicksLocations();
+        int index = -1;
+        for (int i = 0 ; i < locations.length ; i++) {
+            if (locations[i] == value) {
+                index = i;
+                break;
             }
         }
+        if (index == -1 || index >= axisProperty.getTicksLabels().size()) {
+            return null;
+        } else {
+            return axisProperty.getTicksLabels().get(index);
+        }
     }
 }