Use SciRenderer (http://forge.scilab.org/index.php/p/scirenderer/) for the new Scilab... 16/2016/32
Pierre LANDO [Fri, 8 Oct 2010 12:54:55 +0000 (14:54 +0200)]
Change-Id: Ibe66f1bf9fc7f9179952ebbc0506f27b8a942f0f

142 files changed:
scilab/Makefile.in
scilab/build.incl.xml
scilab/configure
scilab/configure.ac
scilab/contrib/Makefile.in
scilab/etc/classpath.xml.in
scilab/etc/librarypath.xml
scilab/libs/MALLOC/Makefile.in
scilab/libs/Makefile.in
scilab/libs/doublylinkedlist/Makefile.in
scilab/libs/dynamiclibrary/Makefile.in
scilab/libs/hashtable/Makefile.in
scilab/libs/libst/Makefile.in
scilab/modules/Makefile.am
scilab/modules/Makefile.in
scilab/modules/action_binding/Makefile.in
scilab/modules/api_scilab/Makefile.in
scilab/modules/arnoldi/Makefile.in
scilab/modules/atoms/Makefile.in
scilab/modules/boolean/Makefile.in
scilab/modules/cacsd/Makefile.in
scilab/modules/call_scilab/Makefile.in
scilab/modules/commons/Makefile.in
scilab/modules/compatibility_functions/Makefile.in
scilab/modules/completion/Makefile.in
scilab/modules/console/Makefile.in
scilab/modules/core/Makefile.in
scilab/modules/data_structures/Makefile.in
scilab/modules/demo_tools/Makefile.in
scilab/modules/development_tools/Makefile.in
scilab/modules/development_tools/src/fake/Makefile.in
scilab/modules/differential_equations/Makefile.in
scilab/modules/double/Makefile.in
scilab/modules/dynamic_link/Makefile.in
scilab/modules/elementary_functions/Makefile.in
scilab/modules/fftw/Makefile.in
scilab/modules/fileio/Makefile.in
scilab/modules/functions/Makefile.in
scilab/modules/genetic_algorithms/Makefile.in
scilab/modules/graph/Makefile.in
scilab/modules/graphic_export/Makefile.in
scilab/modules/graphic_objects/Makefile.am
scilab/modules/graphic_objects/Makefile.in
scilab/modules/graphic_objects/includes/NativeGL.hxx [new file with mode: 0644]
scilab/modules/graphic_objects/src/cpp/NativeGL.cpp [new file with mode: 0644]
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/NativeGL.java [new file with mode: 0644]
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/NativeGLJNI.java [new file with mode: 0644]
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/arc/Arc.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Axes.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Box.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axis/Axis.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/compound/Compound.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Line.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/fec/Fec.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/figure/ColorMap.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/java/org/scilab/modules/graphic_objects/graphicModel/GraphicModel.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObject.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/IVisitor.java [new file with mode: 0644]
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicView/GraphicView.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Grayplot.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/imageplot/Matplot.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/label/Label.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/legend/Legend.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/polyline/Polyline.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/rectangle/Rectangle.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Fac3d.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/surface/Plot3d.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/Text.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/textObject/TextObject.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Arrow.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Champ.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/vectfield/Segs.java
scilab/modules/graphic_objects/src/jni/NativeGL.i [new file with mode: 0644]
scilab/modules/graphic_objects/src/jni/NativeGL_wrap.c [new file with mode: 0644]
scilab/modules/graphics/Makefile.in
scilab/modules/graphics/src/c/BuildObjects.c
scilab/modules/graphics/src/c/CurrentObjectsManagement.c
scilab/modules/graphics/src/c/getHandleProperty/set_hidden_axis_color_property.c
scilab/modules/gui/Makefile.am
scilab/modules/gui/Makefile.in
scilab/modules/gui/includes/callJoGLView.h [new file with mode: 0644]
scilab/modules/gui/src/cpp/callJoGLView.cpp [new file with mode: 0644]
scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/CallGraphicJoGLView.java [new file with mode: 0644]
scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/FigureBridge.java [new file with mode: 0644]
scilab/modules/gui/src/jni/CallGraphicJoGLView.cpp [new file with mode: 0644]
scilab/modules/gui/src/jni/CallGraphicJoGLView.hxx [new file with mode: 0644]
scilab/modules/gui/src/jni/JoGLView.giws.xml [new file with mode: 0644]
scilab/modules/hdf5/Makefile.in
scilab/modules/helptools/Makefile.in
scilab/modules/history_browser/Makefile.in
scilab/modules/history_manager/Makefile.in
scilab/modules/integer/Makefile.in
scilab/modules/interpolation/Makefile.in
scilab/modules/intersci/Makefile.in
scilab/modules/io/Makefile.in
scilab/modules/javasci/Makefile.in
scilab/modules/jvm/Makefile.in
scilab/modules/linear_algebra/Makefile.in
scilab/modules/localization/Makefile.in
scilab/modules/m2sci/Makefile.in
scilab/modules/maple2scilab/Makefile.in
scilab/modules/matio/Makefile.in
scilab/modules/mexlib/Makefile.in
scilab/modules/modules_manager/Makefile.in
scilab/modules/optimization/Makefile.in
scilab/modules/output_stream/Makefile.in
scilab/modules/overloading/Makefile.in
scilab/modules/parallel/Makefile.in
scilab/modules/parameters/Makefile.in
scilab/modules/polynomials/Makefile.in
scilab/modules/pvm/Makefile.in
scilab/modules/randlib/Makefile.in
scilab/modules/renderer/Makefile.am
scilab/modules/renderer/Makefile.in
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DataManager.java [new file with mode: 0644]
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DrawerVisitor.java [new file with mode: 0644]
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/editor/FigureFrame.java [new file with mode: 0644]
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/editor/SciTreeModel.java [new file with mode: 0644]
scilab/modules/scicos/Makefile.in
scilab/modules/scicos_blocks/Makefile.in
scilab/modules/scinotes/Makefile.in
scilab/modules/shell/Makefile.in
scilab/modules/signal_processing/Makefile.in
scilab/modules/simulated_annealing/Makefile.in
scilab/modules/sound/Makefile.in
scilab/modules/sparse/Makefile.in
scilab/modules/special_functions/Makefile.in
scilab/modules/spreadsheet/Makefile.in
scilab/modules/statistics/Makefile.in
scilab/modules/string/Makefile.in
scilab/modules/symbolic/Makefile.in
scilab/modules/tclsci/Makefile.in
scilab/modules/texmacs/Makefile.in
scilab/modules/time/Makefile.in
scilab/modules/types/Makefile.in
scilab/modules/ui_data/Makefile.in
scilab/modules/umfpack/Makefile.in
scilab/modules/windows_tools/Makefile.in
scilab/modules/xcos/Makefile.in
scilab/scilab-lib.properties.in

index 522fae6..325e4c6 100644 (file)
@@ -479,6 +479,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index be7b0d6..af57e09 100644 (file)
                <pathelement location="${jhall.jar}"/>
                
                <pathelement location="${jgraphx.jar}"/>
+               
+               <pathelement location="${scirenderer.jar}"/>
 
        <!-- Only usefull for the documentation -->     
                <pathelement location="${library.helptools.dir}/${library.helptools.name}"/>
index ca1f836..6bc264d 100755 (executable)
@@ -768,6 +768,7 @@ JOGL
 SKINLF
 LOOKS
 FLEXDOCK
+SCIRENDERER
 JGRAPHX
 ANT
 JDB
@@ -9894,7 +9895,7 @@ $as_echo "$ac_java_classpath" >&6; }
 $as_echo_n "checking to see if the java compiler works... " >&6; }
 
     cat << \EOF > conftest.java
-// #line 9897 "configure"
+// #line 9898 "configure"
 
 
 public class conftest {
@@ -9960,7 +9961,7 @@ $as_echo_n "checking type of jvm... " >&6; }
     if test "x$ac_java_jvm_name" = "x" ; then
 
     cat << \EOF > conftest.java
-// #line 9963 "configure"
+// #line 9964 "configure"
 import gnu.java.io.EncodingManager;
 
 public class conftest {
@@ -10024,7 +10025,7 @@ $as_echo_n "checking java API version... " >&6; }
 
 
     cat << \EOF > conftest.java
-// #line 10027 "configure"
+// #line 10028 "configure"
 import java.nio.charset.Charset;
 
 public class conftest {
@@ -10069,7 +10070,7 @@ EOF
 
 
     cat << \EOF > conftest.java
-// #line 10072 "configure"
+// #line 10073 "configure"
 import java.lang.StringBuilder;
 
 public class conftest {
@@ -11328,7 +11329,7 @@ $as_echo_n "checking jgraphx... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 11331 "configure"
+// #line 11332 "configure"
 import com.mxgraph.model.mxCell;
 
 public class conftest {
@@ -11422,7 +11423,7 @@ $as_echo_n "checking minimal version (1.4.1.0) of jgraphx... " >&6; }
    if test "x=" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 11425 "configure"
+// #line 11426 "configure"
 import com.mxgraph.view.mxGraph;
 
 public class conftest {
@@ -11473,7 +11474,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 11476 "configure"
+// #line 11477 "configure"
 import com.mxgraph.view.mxGraph;
 
 public class conftest {
@@ -11525,6 +11526,224 @@ EOF
    ac_java_classpath=$saved_ac_java_classpath
 
 
+                               # scirenderer
+
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking scirenderer" >&5
+$as_echo_n "checking scirenderer... " >&6; }
+       PACKAGE_JAR_FILE=
+       found_jar=no
+       saved_ac_java_classpath=$ac_java_classpath
+       DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/ 2>/dev/null) $(ls -d /usr/lib64/*/ 2>/dev/null) $(ls -d /usr/lib/*/ 2>/dev/null)  $(ls -d /usr/share/*/lib/ 2>/dev/null)"
+    for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+      for jar in "$jardir/scirenderer.jar" "$jardir/libscirenderer.jar" "$jardir/libscirenderer-java.jar" "$jardir/scirenderer*.jar"; do
+#      jar=`echo $jar|sed -e 's/ /\\ /'`
+#      echo "protected $jar"
+#      jar_resolved=`ls $jar 2>/dev/null`
+#      echo "looking for $jar_resolved"
+# TODO check the behaviour when spaces
+       jars_resolved=`ls $jar 2>/dev/null`
+       for jar_resolved in $jars_resolved; do # If several jars matches
+        if test -e "$jar_resolved"; then
+          export ac_java_classpath="$jar_resolved:$ac_java_classpath"
+
+    cat << \EOF > conftest.java
+// #line 11550 "configure"
+import org.scilab.forge.scirenderer.PackageInfo;
+
+public class conftest {
+    public static void main(String[] argv) {
+
+    }
+}
+EOF
+
+    CLASSPATH=$ac_java_classpath
+    export CLASSPATH
+    cmd="$JAVAC ${JAVAC_FLAGS} conftest.java"
+    if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5) ; then
+       if test ""no"" = "no"; then
+           echo "yes" >&5
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $jar_resolved" >&5
+$as_echo "$jar_resolved" >&6; }
+            found_jar=yes
+            PACKAGE_JAR_FILE=$jar_resolved
+            break
+
+          else
+                  cmd="$JAVA conftest"
+                  if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5); then
+                  echo "yes" >&5
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $jar_resolved" >&5
+$as_echo "$jar_resolved" >&6; }
+            found_jar=yes
+            PACKAGE_JAR_FILE=$jar_resolved
+            break
+
+                       else
+                       echo "configure: failed program was:" >&5
+                               cat conftest.java >&5
+                if test -s conftest.java.output; then
+                   STDOUT=`cat conftest.java.output`
+                fi
+                       echo "configure: CLASSPATH was $CLASSPATH" >&5
+
+            ac_java_classpath=$saved_ac_java_classpath
+
+
+                                               fi
+               fi
+        if test -f conftest.java.output; then
+           rm conftest.java.output
+        fi
+    else
+        echo "configure: failed program was:" >&5
+        cat conftest.java >&5
+        echo "configure: CLASSPATH was $CLASSPATH" >&5
+
+            ac_java_classpath=$saved_ac_java_classpath
+
+
+            fi
+
+        fi
+         done
+         # If ls returns several results and the first one is OK, stop the search
+      if test "$found_jar" = "yes"; then
+        break
+      fi
+      done
+         # If found, no need to search in other directory
+      if test "$found_jar" = "yes"; then
+        break
+      fi
+    done
+    if test "$found_jar" = "no"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         if test "" = "yes"; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find or use the Java package/jar scirenderer used by Scilab Renderer (looking for package org.scilab.forge.scirenderer.PackageInfo)" >&5
+$as_echo "$as_me: WARNING: Could not find or use the Java package/jar scirenderer used by Scilab Renderer (looking for package org.scilab.forge.scirenderer.PackageInfo)" >&2;}
+         else
+                 as_fn_error "Could not find or use the Java package/jar scirenderer used by Scilab Renderer (looking for package org.scilab.forge.scirenderer.PackageInfo)" "$LINENO" 5
+         fi
+    fi
+
+                               SCIRENDERER=$PACKAGE_JAR_FILE
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking minimal version (0.1.2) of scirenderer" >&5
+$as_echo_n "checking minimal version (0.1.2) of scirenderer... " >&6; }
+   saved_ac_java_classpath=$ac_java_classpath
+   export ac_java_classpath="$SCIRENDERER:$ac_java_classpath"
+   if test "x=" == "x"; then
+
+    cat << \EOF > conftest.java
+// #line 11644 "configure"
+import org.scilab.forge.scirenderer.PackageInfo;
+
+public class conftest {
+    public static void main(String[] argv) {
+        String minVersion="0.1.2";
+
+                            System.out.println(PackageInfo.VERSION);
+                                  if (minVersion.compareTo(PackageInfo.VERSION) < 0) {
+                                   System.exit(-1);
+                                }
+
+    }
+}
+EOF
+
+    CLASSPATH=$ac_java_classpath
+    export CLASSPATH
+    cmd="$JAVAC ${JAVAC_FLAGS} conftest.java"
+    if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5) ; then
+       if test ""yes"" = "no"; then
+           echo "yes" >&5
+                  echo "yes"
+          else
+                  cmd="$JAVA conftest"
+                  if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5); then
+                  echo "yes" >&5
+                          echo "yes"
+                       else
+                       echo "configure: failed program was:" >&5
+                               cat conftest.java >&5
+                if test -s conftest.java.output; then
+                   STDOUT=`cat conftest.java.output`
+                fi
+                       echo "configure: CLASSPATH was $CLASSPATH" >&5
+                         as_fn_error "Wrong version of scirenderer. Expected at least 0.1.2. Found $STDOUT" "$LINENO" 5
+                                               fi
+               fi
+        if test -f conftest.java.output; then
+           rm conftest.java.output
+        fi
+    else
+        echo "configure: failed program was:" >&5
+        cat conftest.java >&5
+        echo "configure: CLASSPATH was $CLASSPATH" >&5
+          as_fn_error "Wrong version of scirenderer. Expected at least 0.1.2. Found $STDOUT" "$LINENO" 5
+            fi
+
+   else
+
+    cat << \EOF > conftest.java
+// #line 11695 "configure"
+import org.scilab.forge.scirenderer.PackageInfo;
+
+public class conftest {
+    public static void main(String[] argv) {
+        String minVersion="0.1.2";
+
+                            System.out.println(PackageInfo.VERSION);
+                                  if (minVersion.compareTo(PackageInfo.VERSION) != 0) {
+                                   System.exit(-1);
+                                }
+
+    }
+}
+EOF
+
+    CLASSPATH=$ac_java_classpath
+    export CLASSPATH
+    cmd="$JAVAC ${JAVAC_FLAGS} conftest.java"
+    if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5) ; then
+       if test ""yes"" = "no"; then
+           echo "yes" >&5
+                  echo "yes"
+          else
+                  cmd="$JAVA conftest"
+                  if (echo $cmd >&5 ; eval $cmd >conftest.java.output 2>&5); then
+                  echo "yes" >&5
+                          echo "yes"
+                       else
+                       echo "configure: failed program was:" >&5
+                               cat conftest.java >&5
+                if test -s conftest.java.output; then
+                   STDOUT=`cat conftest.java.output`
+                fi
+                       echo "configure: CLASSPATH was $CLASSPATH" >&5
+                         as_fn_error "Wrong version of scirenderer. Expected exact version 0.1.2. Found $STDOUT" "$LINENO" 5
+                                               fi
+               fi
+        if test -f conftest.java.output; then
+           rm conftest.java.output
+        fi
+    else
+        echo "configure: failed program was:" >&5
+        cat conftest.java >&5
+        echo "configure: CLASSPATH was $CLASSPATH" >&5
+          as_fn_error "Wrong version of scirenderer. Expected exact version 0.1.2. Found $STDOUT" "$LINENO" 5
+            fi
+
+    fi
+   ac_java_classpath=$saved_ac_java_classpath
+
+
                                # Docking system
 
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking flexdock" >&5
@@ -11546,7 +11765,7 @@ $as_echo_n "checking flexdock... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 11549 "configure"
+// #line 11768 "configure"
 import org.flexdock.docking.DockingManager;
 
 public class conftest {
@@ -11640,7 +11859,7 @@ $as_echo_n "checking minimal version (0.5.2) of flexdock... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 11643 "configure"
+// #line 11862 "configure"
 import org.flexdock.util.Utilities;
 
 public class conftest {
@@ -11691,7 +11910,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 11694 "configure"
+// #line 11913 "configure"
 import org.flexdock.util.Utilities;
 
 public class conftest {
@@ -11764,7 +11983,7 @@ $as_echo_n "checking looks... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 11767 "configure"
+// #line 11986 "configure"
 import com.jgoodies.looks.common.RenderingUtils;
 
 public class conftest {
@@ -11871,7 +12090,7 @@ $as_echo_n "checking jgoodies-looks... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 11874 "configure"
+// #line 12093 "configure"
 import com.jgoodies.looks.common.RenderingUtils;
 
 public class conftest {
@@ -11979,7 +12198,7 @@ $as_echo_n "checking skinlf... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 11982 "configure"
+// #line 12201 "configure"
 import com.l2fprod.util.AccessUtils;
 
 public class conftest {
@@ -12086,7 +12305,7 @@ $as_echo_n "checking jogl... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12089 "configure"
+// #line 12308 "configure"
 import javax.media.opengl.glu.GLUnurbs;
 
 public class conftest {
@@ -12296,7 +12515,7 @@ $as_echo_n "checking gluegen-rt... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12299 "configure"
+// #line 12518 "configure"
 import com.sun.gluegen.runtime.CPU;
 
 public class conftest {
@@ -12458,7 +12677,7 @@ $as_echo_n "checking jhall... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12461 "configure"
+// #line 12680 "configure"
 import javax.help.JHelp;
 
 public class conftest {
@@ -12565,7 +12784,7 @@ $as_echo_n "checking javahelp2... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12568 "configure"
+// #line 12787 "configure"
 import javax.help.JHelp;
 
 public class conftest {
@@ -12673,7 +12892,7 @@ $as_echo_n "checking jrosetta-API... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12676 "configure"
+// #line 12895 "configure"
 import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
 
 public class conftest {
@@ -12780,7 +12999,7 @@ $as_echo_n "checking jrosetta-engine... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12783 "configure"
+// #line 13002 "configure"
 import com.artenum.rosetta.core.action.AbstractConsoleAction;
 
 public class conftest {
@@ -12889,7 +13108,7 @@ $as_echo_n "checking jeuclid-core... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 12892 "configure"
+// #line 13111 "configure"
 import net.sourceforge.jeuclid.LayoutContext;
 
 public class conftest {
@@ -12998,7 +13217,7 @@ $as_echo_n "checking fop... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13001 "configure"
+// #line 13220 "configure"
 import org.apache.fop.pdf.PDFInfo;
 
 public class conftest {
@@ -13105,7 +13324,7 @@ $as_echo_n "checking batik-all... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13108 "configure"
+// #line 13327 "configure"
 import org.apache.batik.parser.Parser;
 
 public class conftest {
@@ -13212,7 +13431,7 @@ $as_echo_n "checking batik... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13215 "configure"
+// #line 13434 "configure"
 import org.apache.batik.parser.Parser;
 
 public class conftest {
@@ -13306,7 +13525,7 @@ $as_echo_n "checking minimal version (1.7) of batik... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 13309 "configure"
+// #line 13528 "configure"
 import org.apache.batik.Version;
 
 public class conftest {
@@ -13357,7 +13576,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 13360 "configure"
+// #line 13579 "configure"
 import org.apache.batik.Version;
 
 public class conftest {
@@ -13430,7 +13649,7 @@ $as_echo_n "checking commons-io... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13433 "configure"
+// #line 13652 "configure"
 import org.apache.commons.io.output.CountingOutputStream;
 
 public class conftest {
@@ -13537,7 +13756,7 @@ $as_echo_n "checking xmlgraphics-commons... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13540 "configure"
+// #line 13759 "configure"
 import org.apache.xmlgraphics.util.Service;
 
 public class conftest {
@@ -13644,7 +13863,7 @@ $as_echo_n "checking avalon-framework... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13647 "configure"
+// #line 13866 "configure"
 import org.apache.avalon.framework.configuration.ConfigurationException;
 
 public class conftest {
@@ -13751,7 +13970,7 @@ $as_echo_n "checking xml-apis-ext... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13754 "configure"
+// #line 13973 "configure"
 import org.w3c.dom.svg.SVGDocument;
 
 public class conftest {
@@ -13858,7 +14077,7 @@ $as_echo_n "checking xml-commons-apis-ext... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13861 "configure"
+// #line 14080 "configure"
 import org.w3c.dom.svg.SVGDocument;
 
 public class conftest {
@@ -13969,7 +14188,7 @@ $as_echo_n "checking commons-logging... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13972 "configure"
+// #line 14191 "configure"
 import org.apache.commons.logging.LogFactory;
 
 public class conftest {
@@ -14076,7 +14295,7 @@ $as_echo_n "checking jlatexmath... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14079 "configure"
+// #line 14298 "configure"
 import org.scilab.forge.jlatexmath.TeXFormula;
 
 public class conftest {
@@ -14170,7 +14389,7 @@ $as_echo_n "checking minimal version (0.9.3) of jlatexmath... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 14173 "configure"
+// #line 14392 "configure"
 import org.scilab.forge.jlatexmath.TeXFormula;
 
 public class conftest {
@@ -14221,7 +14440,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 14224 "configure"
+// #line 14443 "configure"
 import org.scilab.forge.jlatexmath.TeXFormula;
 
 public class conftest {
@@ -14300,7 +14519,7 @@ $as_echo_n "checking checkstyle... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14303 "configure"
+// #line 14522 "configure"
 import com.puppycrawl.tools.checkstyle.CheckStyleTask;
 
 public class conftest {
@@ -14407,7 +14626,7 @@ $as_echo_n "checking commons-beanutils... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14410 "configure"
+// #line 14629 "configure"
 import org.apache.commons.beanutils.Converter;
 
 public class conftest {
@@ -14514,7 +14733,7 @@ $as_echo_n "checking antlr... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14517 "configure"
+// #line 14736 "configure"
 import antlr.TokenStreamException;
 
 public class conftest {
@@ -14621,7 +14840,7 @@ $as_echo_n "checking testng... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14624 "configure"
+// #line 14843 "configure"
 import org.testng.TestNG;
 
 public class conftest {
@@ -14728,7 +14947,7 @@ $as_echo_n "checking qdox... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14731 "configure"
+// #line 14950 "configure"
 import com.thoughtworks.qdox.tools.QDoxTester;
 
 public class conftest {
@@ -14835,7 +15054,7 @@ $as_echo_n "checking bsh... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14838 "configure"
+// #line 15057 "configure"
 import bsh.Console;
 
 public class conftest {
@@ -14942,7 +15161,7 @@ $as_echo_n "checking junit... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14945 "configure"
+// #line 15164 "configure"
 import junit.framework.Assert;
 
 public class conftest {
@@ -18855,7 +19074,7 @@ $as_echo_n "checking jhdf5... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18858 "configure"
+// #line 19077 "configure"
 import ncsa.hdf.hdf5lib.HDF5Constants;
 
 public class conftest {
@@ -19004,7 +19223,7 @@ $as_echo_n "checking minimal version (1.8.4) of hdf5... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 19007 "configure"
+// #line 19226 "configure"
 import ncsa.hdf.hdf5lib.H5;
 
 public class conftest {
@@ -19059,7 +19278,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 19062 "configure"
+// #line 19281 "configure"
 import ncsa.hdf.hdf5lib.H5;
 
 public class conftest {
@@ -23644,7 +23863,7 @@ CPPFLAGS="$CPPFLAGS -I$CHK_TCL_INCLUDE_PATH"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later" >&5
 $as_echo_n "checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later... " >&6; }
 cat > conftest.$ac_ext <<EOF
-#line 23647 "configure"
+#line 23866 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TCL_INCLUDE_PATH/$CHK_TCL_INC_NAME"
@@ -23956,7 +24175,7 @@ CPPFLAGS="$CPPFLAGS $TCL_INC_PATH -I$CHK_TK_INCLUDE_PATH $X_CFLAGS"
 $as_echo_n "checking if tk is version $CHK_TK_MAJOR.$CHK_TK_MINOR or later... " >&6; }
 
 cat > conftest.$ac_ext <<EOF
-#line 23959 "configure"
+#line 24178 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TK_INCLUDE_PATH/$CHK_TK_INC_NAME"
@@ -24540,7 +24759,7 @@ $as_echo_n "checking saxon... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 24543 "configure"
+// #line 24762 "configure"
 import com.icl.saxon.Loader;
 
 public class conftest {
@@ -24647,7 +24866,7 @@ $as_echo_n "checking jlatexmath-fop... " >&6; }
           export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 24650 "configure"
+// #line 24869 "configure"
 import org.scilab.forge.jlatexmath.fop.JLaTeXMathObj;
 
 public class conftest {
@@ -30948,7 +31167,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 30951 "configure"
+#line 31170 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -31054,7 +31273,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 31057 "configure"
+#line 31276 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -40515,6 +40734,7 @@ echo "  Jrosetta (API) ...... = $JROSETTA_API"
 echo "  Jrosetta (Engine) ... = $JROSETTA_ENGINE"
 echo "  Commons Logging ..... = $COMMONS_LOGGING"
 echo "  JGraph X ............ = $JGRAPHX"
+echo "  SciRenderer ......... = $SCIRENDERER"
 echo "  JLaTeXMath .......... = $JLATEXMATH"
 fi
 
index a4c93ec..6dc6e3a 100644 (file)
@@ -698,6 +698,13 @@ if test "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no
                                AC_SUBST(JGRAPHX)
 
                                AC_JAVA_CHECK_VERSION_PACKAGE([jgraphx],[import com.mxgraph.view.mxGraph;],$JGRAPHX,[1.4.1.0],[mxGraph.VERSION],[],[=])
+                               
+                               # scirenderer
+                               AC_JAVA_CHECK_PACKAGE([scirenderer],[org.scilab.forge.scirenderer.PackageInfo],[Scilab Renderer])
+                               SCIRENDERER=$PACKAGE_JAR_FILE
+                               AC_SUBST(SCIRENDERER)
+                               
+        AC_JAVA_CHECK_VERSION_PACKAGE([scirenderer],[import org.scilab.forge.scirenderer.PackageInfo;],$SCIRENDERER,[0.1.2],[PackageInfo.VERSION],[],[=])
 
                                # Docking system
                                AC_JAVA_CHECK_PACKAGE([flexdock],[org.flexdock.docking.DockingManager],[Scilab Gui])
@@ -1984,6 +1991,7 @@ echo "  Jrosetta (API) ...... = $JROSETTA_API"
 echo "  Jrosetta (Engine) ... = $JROSETTA_ENGINE"
 echo "  Commons Logging ..... = $COMMONS_LOGGING"
 echo "  JGraph X ............ = $JGRAPHX"
+echo "  SciRenderer ......... = $SCIRENDERER"
 echo "  JLaTeXMath .......... = $JLATEXMATH"
 fi
 
index 69f891e..48dd6bd 100644 (file)
@@ -222,6 +222,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 31b4e63..cf8e9d1 100644 (file)
@@ -42,6 +42,11 @@ The option is "disableUnderMode" and can be:
        <load on="XCos"/>
 </path>
 
+<path value="@SCIRENDERER@" load="onUse">
+       <load on="graphics"/>
+  <load on="graphic_ojects"/>
+</path>
+
 <path value="@JOGL@" load="onUse">
        <load on="graphics"/>
        <load on="graphic_export"/>
index 5b4be70..3d06c0d 100644 (file)
@@ -26,6 +26,7 @@
 <path value="$SCILAB/modules/localization/.libs"/>
 <path value="$SCILAB/modules/renderer/.libs"/>
 <path value="$SCILAB/modules/graphic_export/.libs"/>
+<path value="$SCILAB/modules/graphic_objects/.libs"/>
 <path value="$SCILAB/modules/scinotes/.libs"/>
 <path value="$SCILAB/modules/commons/.libs"/>
 <path value="$SCILAB/.libs"/>
index f9a9bad..d52fd2c 100644 (file)
@@ -291,6 +291,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index c93640c..c243418 100644 (file)
@@ -260,6 +260,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 7401c58..e87582b 100644 (file)
@@ -293,6 +293,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 520f165..a05e23a 100644 (file)
@@ -293,6 +293,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 02448eb..9cf81c6 100644 (file)
@@ -291,6 +291,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 3ca2619..9323c34 100644 (file)
@@ -287,6 +287,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 0dcaa46..d3ad826 100644 (file)
@@ -30,6 +30,7 @@ localization \
 commons \
 jvm \
 action_binding \
+graphic_objects \
 renderer \
 shell \
 completion \
@@ -84,7 +85,6 @@ types \
 hdf5 \
 graph\
 xcos \
-graphic_objects \
 scinotes \
 parallel \
 modules_manager \
index 1448c02..5f23d04 100644 (file)
@@ -156,18 +156,18 @@ ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = output_stream arnoldi elementary_functions string \
        api_scilab dynamic_link fileio history_manager spreadsheet \
-       tclsci localization commons jvm action_binding renderer shell \
-       completion console graphic_export gui graphics optimization \
-       symbolic randlib statistics special_functions interpolation \
-       linear_algebra integer data_structures mexlib \
+       tclsci localization commons jvm action_binding graphic_objects \
+       renderer shell completion console graphic_export gui graphics \
+       optimization symbolic randlib statistics special_functions \
+       interpolation linear_algebra integer data_structures mexlib \
        differential_equations cacsd polynomials boolean double pvm io \
        intersci signal_processing core call_scilab sound time sparse \
        windows_tools functions overloading maple2scilab m2sci texmacs \
        development_tools compatibility_functions helptools fftw \
        umfpack demo_tools genetic_algorithms simulated_annealing \
-       parameters matio atoms types hdf5 graph xcos graphic_objects \
-       scinotes parallel modules_manager ui_data history_browser \
-       scicos_blocks scicos . javasci
+       parameters matio atoms types hdf5 graph xcos scinotes parallel \
+       modules_manager ui_data history_browser scicos_blocks scicos . \
+       javasci
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -350,6 +350,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
@@ -440,19 +441,19 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = output_stream arnoldi elementary_functions string api_scilab \
        dynamic_link fileio history_manager spreadsheet tclsci \
-       localization commons jvm action_binding renderer shell \
-       completion console graphic_export gui graphics optimization \
-       symbolic randlib statistics special_functions interpolation \
-       linear_algebra integer data_structures mexlib \
+       localization commons jvm action_binding graphic_objects \
+       renderer shell completion console graphic_export gui graphics \
+       optimization symbolic randlib statistics special_functions \
+       interpolation linear_algebra integer data_structures mexlib \
        differential_equations cacsd polynomials boolean double pvm io \
        intersci signal_processing core call_scilab interpolation \
        sound time randlib sparse windows_tools functions overloading \
        maple2scilab m2sci texmacs development_tools \
        compatibility_functions helptools fftw umfpack demo_tools \
        genetic_algorithms simulated_annealing parameters matio atoms \
-       types hdf5 graph xcos graphic_objects scinotes parallel \
-       modules_manager ui_data history_browser $(am__append_1) scicos \
-       . $(am__append_2)
+       types hdf5 graph xcos scinotes parallel modules_manager \
+       ui_data history_browser $(am__append_1) scicos . \
+       $(am__append_2)
 
 #### Basic files ####
 libscilab_la_rootdir = $(mydatadir)
index 30a0f13..9d7ea3f 100644 (file)
@@ -339,6 +339,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 60d0fff..8487f4a 100644 (file)
@@ -307,6 +307,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 8fb2444..9ad4e05 100644 (file)
@@ -329,6 +329,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 9689c2b..64ab2af 100644 (file)
@@ -272,6 +272,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 63e8107..24472fd 100644 (file)
@@ -309,6 +309,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 7a61451..74a45f4 100644 (file)
@@ -403,6 +403,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index ea4d1f5..0eb46a1 100644 (file)
@@ -304,6 +304,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 9e1ebb0..9a12f8b 100644 (file)
@@ -324,6 +324,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index e45e8bf..9325afa 100644 (file)
@@ -269,6 +269,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index a02d5bb..a98dcf6 100644 (file)
@@ -330,6 +330,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 0541b73..01fc043 100644 (file)
@@ -343,6 +343,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 4427fbb..f5faead 100644 (file)
@@ -546,6 +546,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b6cdd32..c226ea3 100644 (file)
@@ -339,6 +339,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index eee7321..c3d3a53 100644 (file)
@@ -268,6 +268,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 50011c4..ba37f38 100644 (file)
@@ -267,6 +267,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 12ffc54..022604e 100644 (file)
@@ -215,6 +215,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index bc608f8..32b4517 100644 (file)
@@ -349,6 +349,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 33db954..4012a82 100644 (file)
@@ -308,6 +308,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 448dd4e..b32ae3a 100644 (file)
@@ -326,6 +326,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 46d863a..80392e9 100644 (file)
@@ -678,6 +678,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b6aa020..6402a95 100644 (file)
@@ -327,6 +327,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index cd926ca..eb05947 100644 (file)
@@ -362,6 +362,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 44ac863..cfc9e58 100644 (file)
@@ -317,6 +317,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 2549b1b..dc35058 100644 (file)
@@ -271,6 +271,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 1fdf97c..0b6903a 100644 (file)
@@ -307,6 +307,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b1cba4d..87404c3 100644 (file)
@@ -344,6 +344,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index d19c89c..0dcc889 100644 (file)
@@ -31,7 +31,7 @@ BUILT_SOURCES =       includes/graphicObjectsProperties.h
 
 GRAPHIC_OBJECTS_JNI_SOURCES = src/jni/CallGraphicController.cpp
 
-GRAPHIC_OBJECTS_C_SOURCES =
+GRAPHIC_OBJECTS_C_SOURCES = src/jni/NativeGL_wrap.c
 
 GRAPHIC_OBJECTS_CPP_SOURCES =  src/cpp/createGraphicObject.cpp \
                                                                src/cpp/getGraphicObjectProperty.cpp \
@@ -39,6 +39,7 @@ GRAPHIC_OBJECTS_CPP_SOURCES =         src/cpp/createGraphicObject.cpp \
                                                                src/cpp/deleteGraphicObject.cpp \
                                                                src/cpp/dataModel.cpp \
                                                                src/cpp/Data3D.cpp \
+                                                               src/cpp/NativeGL.cpp \
                                                                src/cpp/NgonData.cpp \
                                                                src/cpp/NgonGeneralData.cpp \
                                                                src/cpp/NgonPolylineData.cpp
@@ -88,7 +89,7 @@ if GUI
 pkglib_LTLIBRARIES += libscigraphic_objects.la
 endif
 
-libscigraphic_objects_la_LDFLAGS = -version-info $(SCILAB_LIBRARY_VERSION) $(LD_FLAGS)  $(X_LIBS) $(X_EXTRA_LIBS)
+libscigraphic_objects_la_LDFLAGS = -version-info $(SCILAB_LIBRARY_VERSION) $(LD_FLAGS) $(X_LIBS) $(X_EXTRA_LIBS)
 
 libscigraphic_objects_la_SOURCES = $(GRAPHIC_OBJECTS_GEN_SOURCES) $(GRAPHIC_OBJECTS_C_SOURCES) $(GRAPHIC_OBJECTS_JNI_SOURCES) $(GATEWAY_C_SOURCES) $(GATEWAY_CPP_SOURCES) $(GRAPHIC_OBJECTS_CPP_SOURCES)
 
@@ -98,14 +99,13 @@ INCLUDE_FLAGS = $(libscigraphic_objects_la_CFLAGS)
 
 
 #### SWIG Declaration ####
-SWIG_WRAPPERS =
+SWIG_WRAPPERS = src/jni/NativeGL.i
 
 if SWIG
-BUILT_SOURCES += swig
+  BUILT_SOURCES += swig
 endif
 
-libscigraphic_objects_la_LIBADD = $(top_builddir)/modules/core/libscicore.la \
-$(top_builddir)/libs/MALLOC/libscimalloc.la \
+libscigraphic_objects_la_LIBADD = $(top_builddir)/libs/MALLOC/libscimalloc.la \
 $(top_builddir)/modules/output_stream/libscioutput_stream.la
 
 
index c80dcef..f57df1b 100644 (file)
@@ -129,10 +129,9 @@ libscigraphic_objects_disable_la_LINK = $(LIBTOOL) --tag=CC \
        $(libscigraphic_objects_disable_la_CFLAGS) $(CFLAGS) \
        $(libscigraphic_objects_disable_la_LDFLAGS) $(LDFLAGS) -o $@
 libscigraphic_objects_la_DEPENDENCIES =  \
-       $(top_builddir)/modules/core/libscicore.la \
        $(top_builddir)/libs/MALLOC/libscimalloc.la \
        $(top_builddir)/modules/output_stream/libscioutput_stream.la
-am__objects_2 =
+am__objects_2 = libscigraphic_objects_la-NativeGL_wrap.lo
 am__objects_3 = libscigraphic_objects_la-CallGraphicController.lo
 am__objects_4 = libscigraphic_objects_la-gw_graphic_objects.lo
 am__objects_5 = libscigraphic_objects_la-sci_graphicfunction.lo
@@ -142,6 +141,7 @@ am__objects_6 = libscigraphic_objects_la-createGraphicObject.lo \
        libscigraphic_objects_la-deleteGraphicObject.lo \
        libscigraphic_objects_la-dataModel.lo \
        libscigraphic_objects_la-Data3D.lo \
+       libscigraphic_objects_la-NativeGL.lo \
        libscigraphic_objects_la-NgonData.lo \
        libscigraphic_objects_la-NgonGeneralData.lo \
        libscigraphic_objects_la-NgonPolylineData.lo
@@ -343,6 +343,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
@@ -512,13 +513,14 @@ BUILT_SOURCES = includes/graphicObjectsProperties.h $(am__append_3) \
 #This file is also generated, but can not be listed to prevent GCJ call.
 #src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java
 GRAPHIC_OBJECTS_JNI_SOURCES = src/jni/CallGraphicController.cpp
-GRAPHIC_OBJECTS_C_SOURCES = 
+GRAPHIC_OBJECTS_C_SOURCES = src/jni/NativeGL_wrap.c
 GRAPHIC_OBJECTS_CPP_SOURCES = src/cpp/createGraphicObject.cpp \
                                                                src/cpp/getGraphicObjectProperty.cpp \
                                                                src/cpp/setGraphicObjectProperty.cpp \
                                                                src/cpp/deleteGraphicObject.cpp \
                                                                src/cpp/dataModel.cpp \
                                                                src/cpp/Data3D.cpp \
+                                                               src/cpp/NativeGL.cpp \
                                                                src/cpp/NgonData.cpp \
                                                                src/cpp/NgonGeneralData.cpp \
                                                                src/cpp/NgonPolylineData.cpp
@@ -553,7 +555,7 @@ GRAPHIC_OBJECTS_DISABLE_C_SOURCES = src/nographic_objects/nographic_objects.c
 libscigraphic_objects_disable_la_LDFLAGS = -version-info $(SCILAB_LIBRARY_VERSION) $(LD_FLAGS)
 libscigraphic_objects_disable_la_SOURCES = $(GRAPHIC_OBJECTS_DISABLE_C_SOURCES)
 pkglib_LTLIBRARIES = libscigraphic_objects-disable.la $(am__append_4)
-libscigraphic_objects_la_LDFLAGS = -version-info $(SCILAB_LIBRARY_VERSION) $(LD_FLAGS)  $(X_LIBS) $(X_EXTRA_LIBS)
+libscigraphic_objects_la_LDFLAGS = -version-info $(SCILAB_LIBRARY_VERSION) $(LD_FLAGS) $(X_LIBS) $(X_EXTRA_LIBS)
 libscigraphic_objects_la_SOURCES = $(GRAPHIC_OBJECTS_GEN_SOURCES) $(GRAPHIC_OBJECTS_C_SOURCES) $(GRAPHIC_OBJECTS_JNI_SOURCES) $(GATEWAY_C_SOURCES) $(GATEWAY_CPP_SOURCES) $(GRAPHIC_OBJECTS_CPP_SOURCES)
 
 # For the code check (splint)
@@ -561,9 +563,8 @@ CHECK_SRC = $(GRAPHIC_OBJECTS_C_SOURCES) $(GATEWAY_C_SOURCES)
 INCLUDE_FLAGS = $(libscigraphic_objects_la_CFLAGS)
 
 #### SWIG Declaration ####
-SWIG_WRAPPERS = 
-libscigraphic_objects_la_LIBADD = $(top_builddir)/modules/core/libscicore.la \
-$(top_builddir)/libs/MALLOC/libscimalloc.la \
+SWIG_WRAPPERS = src/jni/NativeGL.i
+libscigraphic_objects_la_LIBADD = $(top_builddir)/libs/MALLOC/libscimalloc.la \
 $(top_builddir)/modules/output_stream/libscioutput_stream.la
 
 
@@ -651,6 +652,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_disable_la-nographic_objects.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-CallGraphicController.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-Data3D.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-NativeGL.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-NativeGL_wrap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-NgonData.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-NgonGeneralData.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigraphic_objects_la-NgonPolylineData.Plo@am__quote@
@@ -690,6 +693,13 @@ libscigraphic_objects_disable_la-nographic_objects.lo: src/nographic_objects/nog
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscigraphic_objects_disable_la_CFLAGS) $(CFLAGS) -c -o libscigraphic_objects_disable_la-nographic_objects.lo `test -f 'src/nographic_objects/nographic_objects.c' || echo '$(srcdir)/'`src/nographic_objects/nographic_objects.c
 
+libscigraphic_objects_la-NativeGL_wrap.lo: src/jni/NativeGL_wrap.c
+@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(libscigraphic_objects_la_CFLAGS) $(CFLAGS) -MT libscigraphic_objects_la-NativeGL_wrap.lo -MD -MP -MF $(DEPDIR)/libscigraphic_objects_la-NativeGL_wrap.Tpo -c -o libscigraphic_objects_la-NativeGL_wrap.lo `test -f 'src/jni/NativeGL_wrap.c' || echo '$(srcdir)/'`src/jni/NativeGL_wrap.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscigraphic_objects_la-NativeGL_wrap.Tpo $(DEPDIR)/libscigraphic_objects_la-NativeGL_wrap.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/jni/NativeGL_wrap.c' object='libscigraphic_objects_la-NativeGL_wrap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(libscigraphic_objects_la_CFLAGS) $(CFLAGS) -c -o libscigraphic_objects_la-NativeGL_wrap.lo `test -f 'src/jni/NativeGL_wrap.c' || echo '$(srcdir)/'`src/jni/NativeGL_wrap.c
+
 libscigraphic_objects_la-gw_graphic_objects.lo: sci_gateway/c/gw_graphic_objects.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(libscigraphic_objects_la_CFLAGS) $(CFLAGS) -MT libscigraphic_objects_la-gw_graphic_objects.lo -MD -MP -MF $(DEPDIR)/libscigraphic_objects_la-gw_graphic_objects.Tpo -c -o libscigraphic_objects_la-gw_graphic_objects.lo `test -f 'sci_gateway/c/gw_graphic_objects.c' || echo '$(srcdir)/'`sci_gateway/c/gw_graphic_objects.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscigraphic_objects_la-gw_graphic_objects.Tpo $(DEPDIR)/libscigraphic_objects_la-gw_graphic_objects.Plo
@@ -774,6 +784,13 @@ libscigraphic_objects_la-Data3D.lo: src/cpp/Data3D.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigraphic_objects_la-Data3D.lo `test -f 'src/cpp/Data3D.cpp' || echo '$(srcdir)/'`src/cpp/Data3D.cpp
 
+libscigraphic_objects_la-NativeGL.lo: src/cpp/NativeGL.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigraphic_objects_la-NativeGL.lo -MD -MP -MF $(DEPDIR)/libscigraphic_objects_la-NativeGL.Tpo -c -o libscigraphic_objects_la-NativeGL.lo `test -f 'src/cpp/NativeGL.cpp' || echo '$(srcdir)/'`src/cpp/NativeGL.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigraphic_objects_la-NativeGL.Tpo $(DEPDIR)/libscigraphic_objects_la-NativeGL.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/NativeGL.cpp' object='libscigraphic_objects_la-NativeGL.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigraphic_objects_la-NativeGL.lo `test -f 'src/cpp/NativeGL.cpp' || echo '$(srcdir)/'`src/cpp/NativeGL.cpp
+
 libscigraphic_objects_la-NgonData.lo: src/cpp/NgonData.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigraphic_objects_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigraphic_objects_la-NgonData.lo -MD -MP -MF $(DEPDIR)/libscigraphic_objects_la-NgonData.Tpo -c -o libscigraphic_objects_la-NgonData.lo `test -f 'src/cpp/NgonData.cpp' || echo '$(srcdir)/'`src/cpp/NgonData.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigraphic_objects_la-NgonData.Tpo $(DEPDIR)/libscigraphic_objects_la-NgonData.Plo
diff --git a/scilab/modules/graphic_objects/includes/NativeGL.hxx b/scilab/modules/graphic_objects/includes/NativeGL.hxx
new file mode 100644 (file)
index 0000000..c18a14a
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010 - DIGITEO - Pierre Lando
+ *
+ *  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
+ *
+ */
+
+#ifndef NATIVE_GL_HXX
+#define NATIVE_GL_HXX
+
+extern "C"
+{
+  int getGLDataLength(char* id);
+  void loadGLData(float* buffer, char* id);
+}
+
+#endif NATIVE_GL_HXX
diff --git a/scilab/modules/graphic_objects/src/cpp/NativeGL.cpp b/scilab/modules/graphic_objects/src/cpp/NativeGL.cpp
new file mode 100644 (file)
index 0000000..503565c
--- /dev/null
@@ -0,0 +1,35 @@
+#include <iostream>
+#include <map>
+#include "NativeGL.hxx"
+
+extern "C"
+{
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
+void loadGLData(float* buffer, char* id)
+{
+    int size;
+    double* t = (double*) getGraphicObjectProperty(id, __GO_DATA_MODEL_COORDINATES__, jni_double_vector);
+    int* size_p = (int*) getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int);
+    size = (*size_p);
+    
+    for (int i = 0 ; i < size ; i++)
+    {
+      buffer[4*i+0] = t[i];
+      buffer[4*i+1] = t[i + size];
+      buffer[4*i+2] = t[i + 2*size]; 
+      buffer[4*i+3] = 1.0;
+    }
+}
+
+int getGLDataLength(char* id)
+{
+  int* size_p = (int*) getGraphicObjectProperty(id, __GO_DATA_MODEL_NUM_ELEMENTS__, jni_int);
+  return 4 * (*size_p);
+}
+
+
+} // extern "C"
+
+
diff --git a/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/NativeGL.java b/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/NativeGL.java
new file mode 100644 (file)
index 0000000..78cebaa
--- /dev/null
@@ -0,0 +1,23 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package org.scilab.modules.graphic_objects;
+
+public class NativeGL {
+  public static int getGLDataLength(String id) {
+    return NativeGLJNI.getGLDataLength(id);
+  }
+
+  public static void loadGLData(java.nio.FloatBuffer BUFF, String id) {
+    assert BUFF.isDirect() : "Buffer must be allocated direct.";
+    {
+      NativeGLJNI.loadGLData(BUFF, id);
+    }
+  }
+
+}
diff --git a/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/NativeGLJNI.java b/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/NativeGLJNI.java
new file mode 100644 (file)
index 0000000..73436c0
--- /dev/null
@@ -0,0 +1,24 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package org.scilab.modules.graphic_objects;
+
+class NativeGLJNI {
+
+  static {
+    try {
+        System.loadLibrary("scigraphic_objects");
+    } catch (UnsatisfiedLinkError e) {
+      System.err.println("Native code library failed to load. \n" + e);
+      System.exit(1);
+    }
+  }
+
+  public final static native int getGLDataLength(String jarg1);
+  public final static native void loadGLData(java.nio.FloatBuffer jarg1, String jarg2);
+}
index 8a68e69..071db92 100644 (file)
@@ -13,6 +13,8 @@
 package org.scilab.modules.graphic_objects.arc;
 
 import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -78,8 +80,13 @@ public class Arc extends ClippableContouredObject {
            Object copy = super.clone();
            return (Arc) copy;
        }
-       
-       /**
+
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 07795dd..61375e8 100644 (file)
 
 package org.scilab.modules.graphic_objects.axes;
 
-import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
-
-import java.util.ArrayList;
-
 import org.scilab.modules.graphic_objects.arc.Arc.ArcDrawingMethod;
 import org.scilab.modules.graphic_objects.arc.Arc.ArcProperty;
 import org.scilab.modules.graphic_objects.axes.AxisProperty.AxisLocation;
 import org.scilab.modules.graphic_objects.axes.Box.BoxType;
 import org.scilab.modules.graphic_objects.axes.Camera.ViewType;
 import org.scilab.modules.graphic_objects.contouredObject.Line;
-import org.scilab.modules.graphic_objects.contouredObject.Line.*;
+import org.scilab.modules.graphic_objects.contouredObject.Line.LinePropertyType;
+import org.scilab.modules.graphic_objects.contouredObject.Line.LineType;
 import org.scilab.modules.graphic_objects.contouredObject.Mark;
-import org.scilab.modules.graphic_objects.contouredObject.Mark.*;
+import org.scilab.modules.graphic_objects.contouredObject.Mark.MarkPropertyType;
+import org.scilab.modules.graphic_objects.contouredObject.Mark.MarkSizeUnitType;
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
 import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty;
-import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.*;
-import org.scilab.modules.graphic_objects.graphicController.*;
+import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClipStateType;
+import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClippablePropertyType;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
-import org.scilab.modules.graphic_objects.label.Label;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 import org.scilab.modules.graphic_objects.textObject.FormattedText;
 
+import java.util.ArrayList;
+
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
+
 /**
  * Axes class
  * @author Manuel JULIACHS
  */
 public class Axes extends GraphicObject {
-       /** Axes properties names */
+
+    /** Axes properties names */
        private enum AxesProperty {
                XAXISVISIBLE, XAXISREVERSE, XAXISGRIDCOLOR, XAXISLABEL, XAXISLOCATION, XAXISLOGFLAG,
                XAXISTICKS, XAXISAUTOTICKS, XAXISNUMBERTICKS, XAXISTICKSLOCATIONS, XAXISTICKSLABELS, XAXISSUBTICKS,
@@ -163,8 +167,13 @@ public class Axes extends GraphicObject {
 
            return copy;
        }
-       
-       /**
+
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
@@ -1435,6 +1444,14 @@ public class Axes extends GraphicObject {
                this.hiddenColor = hiddenColor;
        }
 
+    /**
+     * Return the lines propeties.
+     * @return the lines propeties.
+     */
+    public Line getLine() {
+        return line;
+    }
+
        /**
         * @return the line mode
         */
index b384906..cd10c3d 100644 (file)
@@ -79,7 +79,7 @@ public class Box {
                box = BoxType.OFF;
                hiddenAxisColor = 0;
                tightLimits = false;
-               dataBounds = new double[6];
+               dataBounds = new double[]{0, 1, 0, 1, -1, 1};
                realDataBounds = new double[6];
                zoomEnabled = false;
                zoomBox = new double[6];
index f7f96fd..41fa7ac 100644 (file)
@@ -16,6 +16,7 @@ import java.util.ArrayList;
 
 import org.scilab.modules.graphic_objects.arc.Arc.ArcDrawingMethod;
 import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 import org.scilab.modules.graphic_objects.textObject.Font;
 import org.scilab.modules.graphic_objects.textObject.Font.FontProperty;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
@@ -99,7 +100,12 @@ public class Axis extends ClippableContouredObject {
                font = null;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 135c87c..b2d020b 100644 (file)
@@ -13,6 +13,7 @@
 package org.scilab.modules.graphic_objects.compound;
 
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 
 /**
  * Compound object class
@@ -25,7 +26,12 @@ public class Compound extends GraphicObject {
                super();
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * @return Type as String
         */
        public String getType() {
index 9e126d5..df7f44f 100644 (file)
@@ -77,7 +77,7 @@ public class Line {
                     return (short) 0x3FC6; // 3 blanks, 8 solids, 3 blanks, 2 solids
                 case STYLE6:
                     return (short) 0x5555; // (1 blank, 1 solid) x 8
-               case STYLE7:
+                case STYLE7:
                     return (short) 0x3333; // (2 blanks, 2 solids) x 4
 
                 default:
index 5c038c3..41c68d3 100644 (file)
@@ -15,6 +15,8 @@ package org.scilab.modules.graphic_objects.fec;
 import java.util.ArrayList;
 
 import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -45,7 +47,12 @@ public class Fec extends ClippableContouredObject {
                colorRange = new int[2];
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index b4d7530..55700e3 100644 (file)
@@ -77,16 +77,16 @@ public class ColorMap {
         }
 
         if (index==-1) {
-            return BLACK_COLOR.clone();
+            return BLACK_COLOR;
         } else if (index==-2) {
-            return WHITE_COLOR.clone();
+            return WHITE_COLOR;
         } else {
             index = index - 1;
-            float[] returned = new float[CHANNELS_NUMBER];
-            for (int i = 0 ; i<CHANNELS_NUMBER ; i++) {
-                returned[i] = data[index + getSize() * i].floatValue();
-            }
-            return returned;
+            return new float[]{
+                data[index].floatValue(),
+                data[index + getSize()].floatValue(),
+                data[index + getSize() * 2].floatValue()
+            };
         }
     }
 
index f626dd7..98aa9b7 100644 (file)
@@ -13,6 +13,7 @@
 package org.scilab.modules.graphic_objects.figure;
 
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 /**
@@ -20,7 +21,8 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
  * @author Manuel JULIACHS
  */
 public class Figure extends GraphicObject {
-       /** Figure properties names */
+
+    /** Figure properties names */
        private enum FigureProperty {
         INFOMESSAGE, COLORMAP, COLORMAPSIZE,
                BACKGROUND, TAG, ROTATIONTYPE
@@ -267,8 +269,13 @@ public class Figure extends GraphicObject {
         //}        
            return copy;
        }
-       
-       /**
+
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 1bf8dc4..7c8d5fe 100644 (file)
 
 package org.scilab.modules.graphic_objects.graphicController;
 
-import java.rmi.server.UID;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
 import org.scilab.modules.graphic_objects.graphicModel.GraphicModel;
+import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
 import org.scilab.modules.graphic_objects.graphicView.GraphicView;
-import org.scilab.modules.graphic_objects.graphicView.LogView;
+
+import javax.swing.event.EventListenerList;
+import java.rmi.server.UID;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 
 /**
@@ -31,20 +30,14 @@ import org.scilab.modules.graphic_objects.graphicView.LogView;
  * @author Bruno JOFRET
  */
 public class GraphicController {
-
-
-    private Set<GraphicView> allViews = new HashSet<GraphicView>();
-
+    //TODO
+    private static EventListenerList allViews = new EventListenerList();
     private static GraphicController me = null;
 
     /**
      * Default constructor
      */
     private GraphicController() {
-        /**
-         * Debug Only !
-         */
-        this.register(LogView.createLogView());
     }
 
     /**
@@ -65,7 +58,7 @@ public class GraphicController {
      * @param view The view to register.
      */
     public void register(GraphicView view) {
-        allViews.add(view);
+        allViews.add(GraphicView.class, view);
     }
 
     /**
@@ -81,11 +74,8 @@ public class GraphicController {
      * @param id the object id
      * @return the object
      */
-    public Object getObjectFromId(String id) {
-       Object object;
-       object = GraphicModel.getModel().getObjectFromId(id);
-
-       return object;
+    public GraphicObject getObjectFromId(String id) {
+       return GraphicModel.getModel().getObjectFromId(id);
     }
 
     /**
@@ -163,8 +153,8 @@ public class GraphicController {
      * @param id the created object's id
      */
     public void objectCreated(String id) {
-        for (GraphicView allView : allViews) {
-            allView.createObject(id);
+        for (GraphicView gw : allViews.getListeners(GraphicView.class)) {
+            gw.createObject(id);
         }
     }
 
@@ -174,8 +164,8 @@ public class GraphicController {
      * @param prop the property that has been updated
      */
     public void objectUpdate(String id, String prop) {
-        for (GraphicView allView : allViews) {
-            allView.updateObject(id, prop);
+        for (GraphicView gw : allViews.getListeners(GraphicView.class)) {
+            gw.updateObject(id, prop);
         }
     }
 
@@ -184,8 +174,8 @@ public class GraphicController {
      * @param id the deleted object's id
      */
     public void objectDeleted(String id) {
-        for (GraphicView allView : allViews) {
-            allView.deleteObject(id);
+        for (GraphicView gw : allViews.getListeners(GraphicView.class)) {
+            gw.deleteObject(id);
         }
     }
 
index 886fbf0..b059589 100644 (file)
@@ -69,7 +69,7 @@ public class GraphicModel {
      * @param id the id of the object to get
      * @return the object
      */
-    public Object getObjectFromId(String id) {
+    public GraphicObject getObjectFromId(String id) {
        return allObjects.get(id);
     }
 
@@ -150,6 +150,7 @@ public class GraphicModel {
      * @return the created typed object
      */
     private GraphicObject createTypedObject(Type type) {
+        try {
                switch (type) {
 
                case ARC:
@@ -191,6 +192,10 @@ public class GraphicModel {
                default:
                    return null;
                }
+        } catch (Throwable t) {
+            t.printStackTrace();
+            return null;
+        }
     }
 
     /**
index 1702a28..abc5f08 100644 (file)
 
 package org.scilab.modules.graphic_objects.graphicObject;
 
-import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
-
 import java.util.ArrayList;
 import java.util.List;
 
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
+
 /**
  * GraphicObject class
  * @author Manuel JULIACHS
@@ -30,7 +30,7 @@ public abstract class GraphicObject implements Cloneable {
                LABEL, LEGEND, MATPLOT, PLOT3D, POLYLINE, RECTANGLE, SEGS, TEXT, UNKNOWNOBJECT };
        
        /** GraphicObject properties */
-       public enum GraphicObjectPropertyType { PARENT, CHILDREN, CHILDREN_COUNT, VISIBLE, USERDATA, USERDATASIZE, TYPE, REFERENCED, VALID, UNKNOWNPROPERTY };
+       public enum GraphicObjectPropertyType { PARENT, CHILDREN, CHILDREN_COUNT, VISIBLE, USERDATA, USERDATASIZE, TYPE, REFERENCED, VALID, DATA, UNKNOWNPROPERTY };
 
        /** Identifier */
        private String identifier;
@@ -58,7 +58,7 @@ public abstract class GraphicObject implements Cloneable {
                identifier = null;
                parent = "";
                children = new ArrayList<String>(0);
-               visible = false;
+               visible = true;
                userData = null;
                valid = true;
                referenced = false;
@@ -88,6 +88,8 @@ public abstract class GraphicObject implements Cloneable {
 
            return (GraphicObject) copy;
        }
+
+    abstract public void accept(IVisitor visitor);
        
        /**
      * Returns the enum associated to a type name
@@ -158,6 +160,8 @@ public abstract class GraphicObject implements Cloneable {
                        return GraphicObjectPropertyType.VALID;
                } else if (propertyName.equals(__GO_TYPE__)) {
                        return GraphicObjectPropertyType.TYPE;
+               }  else if (propertyName.equals(__GO_DATA_MODEL__)) {
+                       return GraphicObjectPropertyType.DATA;
                }  else {
                        return GraphicObjectPropertyType.UNKNOWNPROPERTY;
                }
@@ -183,6 +187,8 @@ public abstract class GraphicObject implements Cloneable {
                        return getUserDataSize();
                } else if (property == GraphicObjectPropertyType.TYPE) {
             return getType();
+        }  else if (property == GraphicObjectPropertyType.DATA) {
+                       return getIdentifier();
         }  else if (property == GraphicObjectPropertyType.UNKNOWNPROPERTY) {
                        return null;
                } else {
@@ -207,6 +213,8 @@ public abstract class GraphicObject implements Cloneable {
                        setUserData(value);
                } else if (property == GraphicObjectPropertyType.USERDATASIZE) {
                        return false;
+        } else if (property == GraphicObjectPropertyType.DATA) {
+                       return true;
                } else if (property == GraphicObjectPropertyType.UNKNOWNPROPERTY) {
                        return false;
                }
diff --git a/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/IVisitor.java b/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/IVisitor.java
new file mode 100644 (file)
index 0000000..5fde08c
--- /dev/null
@@ -0,0 +1,65 @@
+package org.scilab.modules.graphic_objects.graphicObject;
+
+import org.scilab.modules.graphic_objects.arc.Arc;
+import org.scilab.modules.graphic_objects.axes.Axes;
+import org.scilab.modules.graphic_objects.axis.Axis;
+import org.scilab.modules.graphic_objects.compound.Compound;
+import org.scilab.modules.graphic_objects.fec.Fec;
+import org.scilab.modules.graphic_objects.figure.Figure;
+import org.scilab.modules.graphic_objects.imageplot.Grayplot;
+import org.scilab.modules.graphic_objects.imageplot.Matplot;
+import org.scilab.modules.graphic_objects.label.Label;
+import org.scilab.modules.graphic_objects.legend.Legend;
+import org.scilab.modules.graphic_objects.polyline.Polyline;
+import org.scilab.modules.graphic_objects.rectangle.Rectangle;
+import org.scilab.modules.graphic_objects.surface.Fac3d;
+import org.scilab.modules.graphic_objects.surface.Plot3d;
+import org.scilab.modules.graphic_objects.textObject.Text;
+import org.scilab.modules.graphic_objects.textObject.TextObject;
+import org.scilab.modules.graphic_objects.vectfield.Arrow;
+import org.scilab.modules.graphic_objects.vectfield.Champ;
+import org.scilab.modules.graphic_objects.vectfield.Segs;
+
+/**
+ * @author Pierre Lando
+ */
+public interface IVisitor {
+
+    void visit(Axes axes);
+
+    void visit(Arc arc);
+
+    void visit(Axis axis);
+
+    void visit(Compound compound);
+
+    void visit(Fec fec);
+
+    void visit(Figure figure);
+
+    void visit(Grayplot grayplot);
+
+    void visit(Matplot matplot);
+
+    void visit(Label label);
+
+    void visit(Legend legend);
+
+    void visit(Polyline polyline);
+
+    void visit(Rectangle rectangle);
+
+    void visit(Fac3d fac3d);
+
+    void visit(Plot3d plot3d);
+
+    void visit(Text text);
+
+    void visit(TextObject textObject);
+
+    void visit(Arrow arrow);
+
+    void visit(Champ champ);
+
+    void visit(Segs segs);
+}
index 7d94a81..945ec23 100644 (file)
@@ -12,7 +12,9 @@
 
 package org.scilab.modules.graphic_objects.graphicView;
 
-public interface GraphicView {
+import java.util.EventListener;
+
+public interface GraphicView extends EventListener {
 
     /**
      * Notify an object with ID : id
index c0ee2b1..a854f92 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.imageplot;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -52,7 +54,12 @@ public class Grayplot extends Imageplot {
                dataMapping = DataMapping.DIRECT;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index a588e6f..2ef1061 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.imageplot;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 /**
  * Matplot class
  * @author Manuel JULIACHS
@@ -24,7 +26,12 @@ public class Matplot extends Imageplot {
                super();
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * @return Type as String
         */
        public String getType() {
index a74fab3..0e5cb49 100644 (file)
@@ -12,6 +12,7 @@
 
 package org.scilab.modules.graphic_objects.label;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 import org.scilab.modules.graphic_objects.textObject.TextObject;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
@@ -50,7 +51,12 @@ public class Label extends TextObject {
                setTextStrings(textStrings);
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index c1ed4f8..c83c080 100644 (file)
@@ -14,6 +14,7 @@ package org.scilab.modules.graphic_objects.legend;
 
 import java.util.ArrayList;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 import org.scilab.modules.graphic_objects.polyline.Polyline;
 import org.scilab.modules.graphic_objects.textObject.ClippableTextObject;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
@@ -83,7 +84,12 @@ public class Legend extends ClippableTextObject {
                position = new double[2];
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 707a459..ddfe477 100644 (file)
@@ -13,6 +13,8 @@
 package org.scilab.modules.graphic_objects.polyline;
 
 import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -73,7 +75,12 @@ public class Polyline extends ClippableContouredObject {
                barWidth = 0.0;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index c9da356..d99ec88 100644 (file)
@@ -13,6 +13,8 @@
 package org.scilab.modules.graphic_objects.rectangle;
 
 import org.scilab.modules.graphic_objects.contouredObject.ClippableContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -40,7 +42,12 @@ public class Rectangle extends ClippableContouredObject {
                height = 0.0;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 31f6093..1e44ee5 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.surface;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -50,8 +52,13 @@ public class Fac3d extends Surface {
                super();
                dataMapping = DataMapping.DIRECT;
        }
-       
-       /**
+
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index ea24590..bfc8af6 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.surface;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 /**
  * Plot3d class
  * @author Manuel JULIACHS
@@ -26,7 +28,12 @@ public class Plot3d extends Surface {
                // TODO Auto-generated constructor stub
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * @return Type as String
         */
        public String getType() {
index 06a7099..79ea06c 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.textObject;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -101,7 +103,12 @@ public class Text extends ClippableTextObject {
                autoDimensioning = false;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index affc6fa..7b025e7 100644 (file)
@@ -13,6 +13,7 @@
 package org.scilab.modules.graphic_objects.textObject;
 
 import org.scilab.modules.graphic_objects.contouredObject.ContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
 import org.scilab.modules.graphic_objects.textObject.Font.FontProperty;
 import org.scilab.modules.graphic_objects.textObject.FormattedText.FormattedTextProperty;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
@@ -48,7 +49,12 @@ public class TextObject extends ContouredObject {
                text[0] = new FormattedText();
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 07f82af..19d94ec 100644 (file)
@@ -13,6 +13,8 @@
 package org.scilab.modules.graphic_objects.vectfield;
 
 import org.scilab.modules.graphic_objects.contouredObject.ContouredObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 
@@ -41,7 +43,12 @@ public class Arrow extends ContouredObject {
                arrowSize = 0.0;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 89495bb..eb104a5 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.vectfield;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
@@ -31,7 +33,12 @@ public class Champ extends VectField {
                colored = false;
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * Returns the enum associated to a property name
         * @param propertyName the property name
         * @return the property enum
index 716757e..143d2f5 100644 (file)
@@ -12,6 +12,8 @@
 
 package org.scilab.modules.graphic_objects.vectfield;
 
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+
 /**
  * Segs class
  * @author Manuel JULIACHS
@@ -24,7 +26,12 @@ public class Segs extends VectField {
                // TODO Auto-generated constructor stub
        }
 
-       /**
+    @Override
+    public void accept(IVisitor visitor) {
+        visitor.visit(this);
+    }
+
+    /**
         * @return Type as String
         */
        public String getType() {
diff --git a/scilab/modules/graphic_objects/src/jni/NativeGL.i b/scilab/modules/graphic_objects/src/jni/NativeGL.i
new file mode 100644 (file)
index 0000000..c0f95c0
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2010 - DIGITEO - Pierre LANDO
+ * 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
+ */
+
+%module NativeGL
+
+%define NIO_BUFFER_TYPEMAP(CTYPE, LABEL, BUFFERTYPE)
+%typemap(jni) CTYPE* LABEL "jobject"
+%typemap(jtype) CTYPE* LABEL "BUFFERTYPE"
+%typemap(jstype) CTYPE* LABEL "BUFFERTYPE"
+%typemap(javain, 
+       pre="    assert $javainput.isDirect() : \"Buffer must be allocated direct.\";") CTYPE* LABEL "$javainput"
+%typemap(javaout) CTYPE* LABEL {
+    return $jnicall;
+}
+%typemap(in) CTYPE* LABEL {
+  $1 = (*jenv)->GetDirectBufferAddress(jenv, $input);
+  if ($1 == NULL) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct.");
+  }
+}
+%typemap(memberin) CTYPE* LABEL {
+  if ($input) {
+    $1 = $input;
+  } else {
+    $1 = 0;
+  }
+}
+%typemap(freearg) CTYPE* LABEL ""
+%enddef
+
+NIO_BUFFER_TYPEMAP(void, BUFF, java.nio.Buffer);
+NIO_BUFFER_TYPEMAP(char, BUFF, java.nio.ByteBuffer);
+NIO_BUFFER_TYPEMAP(char, CBUFF, java.nio.CharBuffer);
+/*NIO_BUFFER_TYPEMAP(unsigned char, BUFF, java.nio.ShortBuffer);*/
+NIO_BUFFER_TYPEMAP(short, BUFF, java.nio.ShortBuffer);
+NIO_BUFFER_TYPEMAP(unsigned short, BUFF, java.nio.IntBuffer);
+NIO_BUFFER_TYPEMAP(int, BUFF, java.nio.IntBuffer);
+NIO_BUFFER_TYPEMAP(unsigned int, BUFF, java.nio.LongBuffer);
+NIO_BUFFER_TYPEMAP(long, BUFF, java.nio.IntBuffer);
+NIO_BUFFER_TYPEMAP(unsigned long, BUFF, java.nio.LongBuffer);
+NIO_BUFFER_TYPEMAP(long long, BUFF, java.nio.LongBuffer);
+NIO_BUFFER_TYPEMAP(float, BUFF, java.nio.FloatBuffer);
+NIO_BUFFER_TYPEMAP(double, BUFF, java.nio.DoubleBuffer);
+#undef NIO_BUFFER_TYPEMAP
+
+
+%define UNSIGNED_NIO_BUFFER_TYPEMAP(CTYPE, BSIZE, BUFFERTYPE, PACKFCN, UNPACKFCN)
+%typemap(jni) CTYPE* INBUFF "jobject"
+%typemap(jtype) CTYPE* INBUFF "java.nio.ByteBuffer"
+%typemap(jstype) CTYPE* INBUFF "BUFFERTYPE"
+%typemap(javain, 
+       pre="    java.nio.ByteBuffer tmp$javainput = PACKFCN($javainput, true);") CTYPE* INBUFF "tmp$javainput"
+%typemap(javaout) CTYPE* INBUFF {
+    return $jnicall;
+}
+%typemap(in) CTYPE* INBUFF {
+  $1 = (*jenv)->GetDirectBufferAddress(jenv, $input);
+  if ($1 == NULL) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct.");
+  }
+}
+%typemap(memberin) CTYPE* INBUFF {
+  if ($input) {
+    $1 = $input;
+  } else {
+    $1 = 0;
+  }
+}
+%typemap(freearg) CTYPE* INBUFF ""
+
+%typemap(jni) CTYPE* OUTBUFF "jobject"
+%typemap(jtype) CTYPE* OUTBUFF "java.nio.ByteBuffer"
+%typemap(jstype) CTYPE* OUTBUFF "BUFFERTYPE"
+%typemap(javain, 
+       pre="    java.nio.ByteBuffer tmp$javainput = java.nio.ByteBuffer.allocateDirect($javainput.capacity()*BSIZE).order($javainput.order());",
+        post="       UNPACKFCN(tmp$javainput, $javainput);") CTYPE* OUTBUFF "tmp$javainput"
+%typemap(javaout) CTYPE* OUTBUFF {
+    return $jnicall;
+}
+%typemap(in) CTYPE* OUTBUFF {
+  $1 = (*jenv)->GetDirectBufferAddress(jenv, $input);
+  if ($1 == NULL) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct.");
+  }
+}
+%typemap(memberin) CTYPE* OUTBUFF {
+  if ($input) {
+    $1 = $input;
+  } else {
+    $1 = 0;
+  }
+}
+%typemap(freearg) CTYPE* OUTBUFF ""
+%enddef
+
+UNSIGNED_NIO_BUFFER_TYPEMAP(unsigned char, 1, java.nio.ShortBuffer, permafrost.hdf.libhdf.BufferUtils.packUChar, permafrost.hdf.libhdf.BufferUtils.unpackUChar);
+UNSIGNED_NIO_BUFFER_TYPEMAP(unsigned short, 2, java.nio.IntBuffer, permafrost.hdf.libhdf.BufferUtils.packUShort, permafrost.hdf.libhdf.BufferUtils.unpackUShort);
+UNSIGNED_NIO_BUFFER_TYPEMAP(unsigned int, 4, java.nio.LongBuffer, permafrost.hdf.libhdf.BufferUtils.packUInt, permafrost.hdf.libhdf.BufferUtils.unpackUInt);
+UNSIGNED_NIO_BUFFER_TYPEMAP(unsigned long, 4, java.nio.LongBuffer, permafrost.hdf.libhdf.BufferUtils.packUInt, permafrost.hdf.libhdf.BufferUtils.unpackUInt);
+
+/*
+%typemap(jni) unsigned char* BUFF "jobject"
+%typemap(jtype) unsigned char* BUFF "java.nio.ByteBuffer"
+%typemap(jstype) unsigned char* BUFF "java.nio.ShortBuffer"
+%typemap(javain, 
+       pre="    java.nio.ByteBuffer tmp$javainput = permafrost.hdf.libhdf.BufferUtils.packUChar($javainput, true);",
+        post="      permafrost.hdf.libhdf.BufferUtils.unpackUChar(tmp$javainput, $javainput);") unsigned char* BUFF "tmp$javainput"
+%typemap(javaout) unsigned char* BUFF {
+    return $jnicall;
+}
+%typemap(in) unsigned char* BUFF {
+  $1 = (*jenv)->GetDirectBufferAddress(jenv, $input);
+  if ($1 == NULL) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct.");
+  }
+}
+%typemap(memberin) unsigned char* BUFF {
+  if ($input) {
+    $1 = $input;
+  } else {
+    $1 = 0;
+  }
+}
+%typemap(freearg) unsigned char* BUFF ""
+*/
+
+%pragma(java) jniclasscode=%{
+  static {
+    try {
+        System.loadLibrary("scigraphic_objects");
+    } catch (UnsatisfiedLinkError e) {
+      System.err.println("Native library failed to load. \n" + e);
+      System.exit(1);
+    }
+  }
+%}
+
+%inline %{
+    extern int getGLDataLength(char* id);
+    extern void loadGLData(float* BUFF, char* id);
+%}
+
diff --git a/scilab/modules/graphic_objects/src/jni/NativeGL_wrap.c b/scilab/modules/graphic_objects/src/jni/NativeGL_wrap.c
new file mode 100644 (file)
index 0000000..e29df6a
--- /dev/null
@@ -0,0 +1,243 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+#define SWIGJAVA
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+/* Fix for jlong on some versions of gcc on Windows */
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
+  typedef long long __int64;
+#endif
+
+/* Fix for jlong on 64-bit x86 Solaris */
+#if defined(__x86_64)
+# ifdef _LP64
+#   undef _LP64
+# endif
+#endif
+
+#include <jni.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+/* Support for throwing Java exceptions */
+typedef enum {
+  SWIG_JavaOutOfMemoryError = 1, 
+  SWIG_JavaIOException, 
+  SWIG_JavaRuntimeException, 
+  SWIG_JavaIndexOutOfBoundsException,
+  SWIG_JavaArithmeticException,
+  SWIG_JavaIllegalArgumentException,
+  SWIG_JavaNullPointerException,
+  SWIG_JavaDirectorPureVirtual,
+  SWIG_JavaUnknownError
+} SWIG_JavaExceptionCodes;
+
+typedef struct {
+  SWIG_JavaExceptionCodes code;
+  const char *java_exception;
+} SWIG_JavaExceptions_t;
+
+
+static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
+  jclass excep;
+  static const SWIG_JavaExceptions_t java_exceptions[] = {
+    { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
+    { SWIG_JavaIOException, "java/io/IOException" },
+    { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
+    { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
+    { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
+    { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
+    { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
+    { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
+    { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
+    { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" }
+  };
+  const SWIG_JavaExceptions_t *except_ptr = java_exceptions;
+
+  while (except_ptr->code != code && except_ptr->code)
+    except_ptr++;
+
+  (*jenv)->ExceptionClear(jenv);
+  excep = (*jenv)->FindClass(jenv, except_ptr->java_exception);
+  if (excep)
+    (*jenv)->ThrowNew(jenv, excep, msg);
+}
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else
+
+
+    extern int getGLDataLength(char* id);
+    extern void loadGLData(float* BUFF, char* id);
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+SWIGEXPORT jint JNICALL Java_org_scilab_modules_graphic_1objects_NativeGLJNI_getGLDataLength(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+  jint jresult = 0 ;
+  char *arg1 = (char *) 0 ;
+  int result;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = 0;
+  if (jarg1) {
+    arg1 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg1, 0);
+    if (!arg1) return 0;
+  }
+  result = (int)getGLDataLength(arg1);
+  jresult = (jint)result; 
+  if (arg1) (*jenv)->ReleaseStringUTFChars(jenv, jarg1, (const char *)arg1);
+  return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_scilab_modules_graphic_1objects_NativeGLJNI_loadGLData(JNIEnv *jenv, jclass jcls, jobject jarg1, jstring jarg2) {
+  float *arg1 = (float *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  {
+    arg1 = (*jenv)->GetDirectBufferAddress(jenv, jarg1);
+    if (arg1 == NULL) {
+      SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unable to get address of direct buffer. Buffer must be allocated direct.");
+    }
+  }
+  arg2 = 0;
+  if (jarg2) {
+    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
+    if (!arg2) return ;
+  }
+  loadGLData(arg1,arg2);
+  
+  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
index f79a09a..e4ff3f0 100644 (file)
@@ -679,6 +679,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 46575e3..07555d0 100644 (file)
@@ -57,6 +57,7 @@
 #include "getGraphicObjectProperty.h"
 #include "setGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
+#include "callJoGLView.h"
 
 /*-----------------------------------------------------------------------------*/
 
@@ -1288,7 +1289,6 @@ ConstructPolyline (sciPointObj * pparentsubwin, double *pvecx, double *pvecy, do
    * its parent's list of children.
    */
   setGraphicObjectRelationship(pparentsubwin->UID, pobj->UID); 
-
   if (sciAddNewHandle(pobj) == -1)
   {
     deleteGraphicObject(pobj->UID);
@@ -2641,6 +2641,7 @@ sciPointObj * createFullFigure(int * winNum)
     sciPointObj *pNewFigure = MALLOC(sizeof(sciPointObj));
     pNewFigure->UID = createGraphicObject(__GO_FIGURE__);
     setGraphicObjectProperty(pNewFigure->UID, __GO_ID__, winNum, jni_int, 1);
+    createJoGLView(pNewFigure->UID);
     sciAddNewHandle(pNewFigure);
     return pNewFigure;
 
index c0785f4..ad21baf 100644 (file)
@@ -30,6 +30,7 @@
 #include "setGraphicObjectProperty.h"
 #include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
+#include "callJoGLView.h"
 
 /*----------------------------------------------------------------------------------*/
 /* root of the graphic hierarchy */
@@ -56,6 +57,7 @@ sciPointObj * sciGetCurrentFigure( void )
       int iZero = 0;
       pFigure = sciCloneObj(getFigureModel());
       setGraphicObjectProperty(pFigure->UID, __GO_ID__, &iZero, jni_int, 1);
+      createJoGLView(pFigure->UID);
 
       /*
        * Clones a new Axes object using the Axes model which is then
index 57e15b1..ef5928b 100644 (file)
 int set_hidden_axis_color_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
   BOOL status;
-  int haColor      = (int) getDoubleFromStack( stackPointer );
-
-  /*
-   * To be implemented using the MVC framework
-   * since it uses the parent/child relationship in
-   * order to get the parent figure's number of colors
-   */
-  int colormapSize = sciGetNumColors( pobj );
+  int haColor;
 
   if ( !isParameterDoubleMatrix( valueType ) )
   {
     Scierror(999, _("Wrong type for '%s' property: Integer expected.\n"), "hidden_axis_color");
     return SET_PROPERTY_ERROR ;
   }
+  
+  haColor = (int) getDoubleFromStack( stackPointer );
 
-#if 0
-  if ( sciGetEntityType (pobj) != SCI_SUBWIN )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"hidden_axis_color");
-    return SET_PROPERTY_ERROR;
-  }
-#endif
+  status = setGraphicObjectProperty(pobj->UID, __GO_HIDDEN_AXIS_COLOR__, &haColor, jni_int, 1);
 
-  if ( haColor >= -2 && haColor <= colormapSize + 1 )
+  if (status == TRUE)
   {
-    status = setGraphicObjectProperty(pobj->UID, __GO_HIDDEN_AXIS_COLOR__, &haColor, jni_int, 1);
-
-    /* To be implemented using the MVC framework, since it performs color range checks */
-//    return sciSetHiddenAxisColor(pobj, haColor);
-
-    if (status == TRUE)
-    {
-      return SET_PROPERTY_SUCCEED;
-    }
-    else
-    {
-      Scierror(999, _("'%s' property does not exist for this handle.\n"),"hidden_axis_color");
-      return SET_PROPERTY_ERROR;
-    }
-
+    return SET_PROPERTY_SUCCEED;
   }
   else
   {
-    Scierror(999, _("Wrong value for '%s' property: Must be a valid color index.\n"), "hidden_axis_color");
-    return SET_PROPERTY_ERROR ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"hidden_axis_color");
+    return SET_PROPERTY_ERROR;
   }
-
-  return SET_PROPERTY_ERROR ;
 }
 /*------------------------------------------------------------------------*/
index 80be7c2..e3017a2 100644 (file)
@@ -53,7 +53,10 @@ src/c/CreateUIContextMenu.c \
 src/c/UicontrolStyleToString.c \
 src/c/messageboxoptions.c
 
-GUI_CPP_SOURCES = src/cpp/InitUIMenu.cpp \
+GUI_CPP_SOURCES = \
+src/cpp/callJoGLView.cpp \
+src/jni/CallGraphicJoGLView.cpp \
+src/cpp/InitUIMenu.cpp \
 src/jni/CallScilabBridge.cpp \
 src/jni/Jxclick.cpp \
 src/cpp/DestroyUimenu.cpp \
@@ -147,6 +150,7 @@ src/jni/ScilabDisplayTree.cpp
 
 
 GIWS_WRAPPERS = \
+src/jni/JoGLView.giws.xml \
 src/jni/CallScilabBridge.giws.xml \
 src/jni/Jxclick.giws.xml \
 src/jni/Jxgetmouse.giws.xml \
index c958fbf..c6db1a0 100644 (file)
@@ -167,7 +167,8 @@ am__objects_4 = libscigui_la-sci_printsetupbox.lo \
        libscigui_la-sci_uigetdir.lo libscigui_la-sci_uigetfile.lo \
        libscigui_la-sci_displaytree.lo libscigui_la-sci_uiputfile.lo \
        libscigui_la-sci_about.lo
-am__objects_5 = libscigui_la-InitUIMenu.lo \
+am__objects_5 = libscigui_la-callJoGLView.lo \
+       libscigui_la-CallGraphicJoGLView.lo libscigui_la-InitUIMenu.lo \
        libscigui_la-CallScilabBridge.lo libscigui_la-Jxclick.lo \
        libscigui_la-DestroyUimenu.lo libscigui_la-DestroyUicontrol.lo \
        libscigui_la-DestroyJavaUiobject.lo \
@@ -433,6 +434,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
@@ -621,7 +623,10 @@ src/c/CreateUIContextMenu.c \
 src/c/UicontrolStyleToString.c \
 src/c/messageboxoptions.c
 
-GUI_CPP_SOURCES = src/cpp/InitUIMenu.cpp \
+GUI_CPP_SOURCES = \
+src/cpp/callJoGLView.cpp \
+src/jni/CallGraphicJoGLView.cpp \
+src/cpp/InitUIMenu.cpp \
 src/jni/CallScilabBridge.cpp \
 src/jni/Jxclick.cpp \
 src/cpp/DestroyUimenu.cpp \
@@ -714,6 +719,7 @@ src/cpp/displaytree.cpp \
 src/jni/ScilabDisplayTree.cpp
 
 GIWS_WRAPPERS = \
+src/jni/JoGLView.giws.xml \
 src/jni/CallScilabBridge.giws.xml \
 src/jni/Jxclick.giws.xml \
 src/jni/Jxgetmouse.giws.xml \
@@ -969,6 +975,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallColorChooser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallFigure.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallFontChooser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallGraphicJoGLView.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallHelpBrowser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallJuigetfile.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-CallJxclick.Plo@am__quote@
@@ -1062,6 +1069,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-Widget.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-addmenu.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-buildMainWindowTitle.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-callJoGLView.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-displaytree.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-exportUserInterface.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-getMainWindowTitle.Plo@am__quote@
@@ -1490,6 +1498,20 @@ libscigui_la-sci_about.lo: sci_gateway/cpp/sci_about.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-sci_about.lo `test -f 'sci_gateway/cpp/sci_about.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_about.cpp
 
+libscigui_la-callJoGLView.lo: src/cpp/callJoGLView.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-callJoGLView.lo -MD -MP -MF $(DEPDIR)/libscigui_la-callJoGLView.Tpo -c -o libscigui_la-callJoGLView.lo `test -f 'src/cpp/callJoGLView.cpp' || echo '$(srcdir)/'`src/cpp/callJoGLView.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigui_la-callJoGLView.Tpo $(DEPDIR)/libscigui_la-callJoGLView.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/callJoGLView.cpp' object='libscigui_la-callJoGLView.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-callJoGLView.lo `test -f 'src/cpp/callJoGLView.cpp' || echo '$(srcdir)/'`src/cpp/callJoGLView.cpp
+
+libscigui_la-CallGraphicJoGLView.lo: src/jni/CallGraphicJoGLView.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-CallGraphicJoGLView.lo -MD -MP -MF $(DEPDIR)/libscigui_la-CallGraphicJoGLView.Tpo -c -o libscigui_la-CallGraphicJoGLView.lo `test -f 'src/jni/CallGraphicJoGLView.cpp' || echo '$(srcdir)/'`src/jni/CallGraphicJoGLView.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigui_la-CallGraphicJoGLView.Tpo $(DEPDIR)/libscigui_la-CallGraphicJoGLView.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/jni/CallGraphicJoGLView.cpp' object='libscigui_la-CallGraphicJoGLView.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-CallGraphicJoGLView.lo `test -f 'src/jni/CallGraphicJoGLView.cpp' || echo '$(srcdir)/'`src/jni/CallGraphicJoGLView.cpp
+
 libscigui_la-InitUIMenu.lo: src/cpp/InitUIMenu.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-InitUIMenu.lo -MD -MP -MF $(DEPDIR)/libscigui_la-InitUIMenu.Tpo -c -o libscigui_la-InitUIMenu.lo `test -f 'src/cpp/InitUIMenu.cpp' || echo '$(srcdir)/'`src/cpp/InitUIMenu.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigui_la-InitUIMenu.Tpo $(DEPDIR)/libscigui_la-InitUIMenu.Plo
diff --git a/scilab/modules/gui/includes/callJoGLView.h b/scilab/modules/gui/includes/callJoGLView.h
new file mode 100644 (file)
index 0000000..d9fb208
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010 - DIGITEO - Pierre Lando
+ *
+ *  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
+ *
+ */
+
+#ifndef CALL_JOGL_VIEW_H
+#define CALL_JOGL_VIEW_H
+
+void createJoGLView(char* id);
+
+#endif
diff --git a/scilab/modules/gui/src/cpp/callJoGLView.cpp b/scilab/modules/gui/src/cpp/callJoGLView.cpp
new file mode 100644 (file)
index 0000000..e57d536
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ *  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
+ *
+ */
+
+extern "C"
+{
+#include <stdlib.h>
+#include <string.h>
+#include "callJoGLView.h"
+#include "getScilabJavaVM.h"
+}
+
+#include "CallGraphicJoGLView.hxx"
+
+
+using namespace org_scilab_modules_gui_graphicWindow;
+
+extern "C" {
+
+void createJoGLView(char* id)
+{
+    return CallGraphicJoGLView::createJoGLView(getScilabJavaVM(), id);
+}
+
+}
diff --git a/scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/CallGraphicJoGLView.java b/scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/CallGraphicJoGLView.java
new file mode 100644 (file)
index 0000000..2ab9774
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ * 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
+ */
+
+package org.scilab.modules.gui.graphicWindow;
+
+import org.scilab.modules.graphic_objects.figure.Figure;
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
+import org.scilab.modules.jvm.LoadClassPath;
+
+/**
+ * @author Pierre Lando
+ */
+public final class CallGraphicJoGLView {
+    private static boolean notLoaded = true;
+    private static void load() {
+        if(notLoaded) {
+            LoadClassPath.loadOnUse("graphics");
+            notLoaded = false;
+        }
+    }
+
+    public static void  createJoGLView(String id) {
+        load();
+        GraphicObject controller = GraphicController.getController().getObjectFromId(id);
+        if (controller != null && controller instanceof Figure) {
+            FigureBridge.createFigure(id);
+        }
+    }
+}
diff --git a/scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/FigureBridge.java b/scilab/modules/gui/src/java/org/scilab/modules/gui/graphicWindow/FigureBridge.java
new file mode 100644 (file)
index 0000000..68cbc93
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ * 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
+ */
+
+package org.scilab.modules.gui.graphicWindow;
+
+import org.scilab.forge.scirenderer.canvas.glimpl.canvas.AbstractGLCanvas;
+import org.scilab.forge.scirenderer.canvas.glimpl.canvas.IGLCanvas;
+import org.scilab.modules.graphic_objects.figure.Figure;
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+import org.scilab.modules.graphic_objects.graphicView.GraphicView;
+import org.scilab.modules.gui.tab.ScilabTab;
+import org.scilab.modules.gui.tab.Tab;
+import org.scilab.modules.gui.textbox.ScilabTextBox;
+import org.scilab.modules.gui.textbox.TextBox;
+import org.scilab.modules.gui.window.ScilabWindow;
+import org.scilab.modules.gui.window.Window;
+import org.scilab.modules.renderer.JoGLView.DrawerVisitor;
+
+import javax.media.opengl.GLCanvas;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+
+/**
+ * @author Pierre Lando
+ */
+public class FigureBridge implements GraphicView {
+
+    private final Window frame = ScilabWindow.createWindow();
+    private final GLCanvas canvas = new GLCanvas();
+    private final Tab tab = ScilabTab.createTab("scilab");
+    private final TextBox infoTextBox = ScilabTextBox.createTextBox();
+    private final String id;
+
+
+    /**
+     * Default constructor.
+     * @param id the id of the figure represented by this frame.
+     * @throws Exception when the given id is not a figure id.
+     */
+    private FigureBridge(final String id) throws Exception {
+        Object type = GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_TYPE__);
+        if (type instanceof String && type.equals("Figure")) {
+            // TODO : use static Figure.type instead of "Figure".
+
+            this.id = id;
+            Object object = GraphicController.getController().getObjectFromId(id);
+
+            if (object instanceof Figure) {
+                final Figure figure = (Figure) object;
+                IGLCanvas page = new AbstractGLCanvas(canvas) {
+                    private IVisitor visitor = null;
+
+                    @Override
+                    public void performDraw() {
+                        figure.accept(getVisitor());
+                    }
+
+                    private IVisitor getVisitor() {
+                        if (visitor == null) {
+                            visitor = new DrawerVisitor(this);
+                        }
+                        return visitor;
+                    }
+                };
+
+                canvas.addMouseListener(new MouseListener() {
+                    MouseEvent beginEvent;
+                    final MouseMotionListener mouseMotionListener = new MouseMotionListener() {
+
+                        @Override
+                        public void mouseDragged(MouseEvent e) {
+                            int dx = e.getX() - beginEvent.getX();
+                            int dy = e.getY() - beginEvent.getY();
+
+                            String[] children = (String[]) GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_CHILDREN__);
+                            for (String child : children) {
+                                Double[] angles = (Double[]) GraphicController.getController().getProperty(child, GraphicObjectProperties.__GO_ROTATION_ANGLES__);
+                                angles[0] += dy / 4.0;
+                                angles[1] += dx / 4.0;
+                                GraphicController.getController().setProperty(child, GraphicObjectProperties.__GO_ROTATION_ANGLES__, angles);
+                            }
+
+                            beginEvent = e;
+                        }
+
+                        @Override
+                        public void mouseMoved(MouseEvent e) {}
+                    };
+
+                    @Override
+                    public void mouseClicked(MouseEvent e) {}
+
+                    @Override
+                    public void mousePressed(MouseEvent e) {
+                        if (e.getButton() == MouseEvent.BUTTON1) {
+                            System.out.println("Begin");
+                            canvas.addMouseMotionListener(mouseMotionListener);
+                            beginEvent = e;
+                        }
+                    }
+
+                    @Override
+                    public void mouseReleased(MouseEvent e) {
+                        if (e.getButton() == MouseEvent.BUTTON1) {
+                            System.out.println("End");
+                            canvas.removeMouseMotionListener(mouseMotionListener);
+                        }
+                    }
+
+                    @Override
+                    public void mouseEntered(MouseEvent e) {}
+
+                    @Override
+                    public void mouseExited(MouseEvent e) {}
+                });
+
+                tab.setCallback(null);
+                JComponent jComp = ((JComponent)tab.getAsSimpleTab());
+                jComp.setLayout(new BorderLayout());
+                jComp.add(canvas, BorderLayout.CENTER);
+                tab.addInfoBar(infoTextBox);
+
+                frame.addTab(tab);
+
+                GraphicController.getController().register(this);
+                frame.setVisible(true);
+                tab.setVisible(true);
+                canvas.setVisible(true);
+                updateGUI();
+            }
+        } else {
+            throw new Exception("this id is not a figure");
+        }
+    }
+
+    /**
+     * This method update the figure name showed on the frame.
+     * For compatibility, it replace the first occurrence of "%d" by the figure id.
+     */
+    private void updateGUI() {
+
+        Object object = GraphicController.getController().getObjectFromId(id);
+        if (object != null && (object instanceof Figure)) {
+            Figure figure = (Figure) object;
+
+            String name = figure.getName();
+            Integer figureId = figure.getId();
+            if ((name != null) && (figureId != null)) {
+                name = name.replaceFirst("%d", figureId.toString());
+                tab.setName(name);
+            }
+
+            String infoMessage = figure.getInfoMessage();
+            if ((infoMessage == null) || (infoMessage.length()==0)) {
+                infoTextBox.setText("");
+            } else {
+                infoTextBox.setText(infoMessage);
+            }
+        }
+    }
+
+    public void updateObject(String id, String property) {
+        if (id != null && id.equals(this.id)) {
+            updateGUI();
+        }
+
+        canvas.display();
+    }
+
+    @Override
+    public void createObject(String id) {}
+
+    @Override
+    public void deleteObject(String id) {}
+
+    public static FigureBridge createFigure(String id) {
+        try {
+            return new FigureBridge(id);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+}
diff --git a/scilab/modules/gui/src/jni/CallGraphicJoGLView.cpp b/scilab/modules/gui/src/jni/CallGraphicJoGLView.cpp
new file mode 100644 (file)
index 0000000..8d5b4c5
--- /dev/null
@@ -0,0 +1,169 @@
+#include "CallGraphicJoGLView.hxx"
+/* Generated by GIWS (version 1.2.0) */
+/*
+
+Copyright 2007-2008 INRIA
+Copyright 2008-2010 DIGITEO
+
+Author : Sylvestre Ledru & others
+
+This is generated code.
+
+This software is a computer program whose purpose is to hide the complexity
+of accessing Java objects/methods from C++ code.
+
+This software is governed by the CeCILL-B license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL-B
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL-B license and that you accept its terms.
+*/
+
+namespace org_scilab_modules_gui_graphicWindow {
+
+// Returns the current env
+
+JNIEnv * CallGraphicJoGLView::getCurrentEnv() {
+JNIEnv * curEnv = NULL;
+jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
+if (res != JNI_OK) {
+throw GiwsException::JniException(getCurrentEnv());
+}
+return curEnv;
+}
+// Destructor
+
+CallGraphicJoGLView::~CallGraphicJoGLView() {
+JNIEnv * curEnv = NULL;
+this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
+
+curEnv->DeleteGlobalRef(this->instance);
+curEnv->DeleteGlobalRef(this->instanceClass);
+}
+// Constructors
+CallGraphicJoGLView::CallGraphicJoGLView(JavaVM * jvm_) {
+jmethodID constructObject = NULL ;
+jobject localInstance ;
+jclass localClass ;
+const std::string construct="<init>";
+const std::string param="()V";
+jvm=jvm_;
+
+JNIEnv * curEnv = getCurrentEnv();
+
+localClass = curEnv->FindClass( this->className().c_str() ) ;
+if (localClass == NULL) {
+  throw GiwsException::JniClassNotFoundException(curEnv, this->className());
+}
+
+this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
+
+/* localClass is not needed anymore */
+curEnv->DeleteLocalRef(localClass);
+
+if (this->instanceClass == NULL) {
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+
+
+constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ;
+if(constructObject == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+
+localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ;
+if(localInstance == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+this->instance = curEnv->NewGlobalRef(localInstance) ;
+if(this->instance == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+/* localInstance not needed anymore */
+curEnv->DeleteLocalRef(localInstance);
+
+                /* Methods ID set to NULL */
+voidcreateJoGLViewjstringID=NULL; 
+
+
+}
+
+CallGraphicJoGLView::CallGraphicJoGLView(JavaVM * jvm_, jobject JObj) {
+        jvm=jvm_;
+
+        JNIEnv * curEnv = getCurrentEnv();
+
+jclass localClass = curEnv->GetObjectClass(JObj);
+        this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
+        curEnv->DeleteLocalRef(localClass);
+
+        if (this->instanceClass == NULL) {
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+        }
+
+        this->instance = curEnv->NewGlobalRef(JObj) ;
+        if(this->instance == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+        }
+        /* Methods ID set to NULL */
+        voidcreateJoGLViewjstringID=NULL; 
+
+
+}
+
+// Generic methods
+
+void CallGraphicJoGLView::synchronize() {
+if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) {
+throw GiwsException::JniMonitorException(getCurrentEnv(), "CallGraphicJoGLView");
+}
+}
+
+void CallGraphicJoGLView::endSynchronize() {
+if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) {
+throw GiwsException::JniMonitorException(getCurrentEnv(), "CallGraphicJoGLView");
+}
+}
+// Method(s)
+
+void CallGraphicJoGLView::createJoGLView (JavaVM * jvm_, char * id){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidcreateJoGLViewjstringID = curEnv->GetStaticMethodID(cls, "createJoGLView", "(Ljava/lang/String;)V" ) ;
+if (voidcreateJoGLViewjstringID == NULL) {
+throw GiwsException::JniMethodNotFoundException(curEnv, "createJoGLView");
+}
+
+jstring id_ = curEnv->NewStringUTF( id );
+
+                         curEnv->CallStaticVoidMethod(cls, voidcreateJoGLViewjstringID ,id_);
+                        if (curEnv->ExceptionCheck()) {
+throw GiwsException::JniCallMethodException(curEnv);
+}
+}
+
+}
diff --git a/scilab/modules/gui/src/jni/CallGraphicJoGLView.hxx b/scilab/modules/gui/src/jni/CallGraphicJoGLView.hxx
new file mode 100644 (file)
index 0000000..16e3319
--- /dev/null
@@ -0,0 +1,141 @@
+/* Generated by GIWS (version 1.2.0) */
+/*
+
+Copyright 2007-2008 INRIA
+Copyright 2008-2010 DIGITEO
+
+Author : Sylvestre Ledru & others
+
+This is generated code.
+
+This software is a computer program whose purpose is to hide the complexity
+of accessing Java objects/methods from C++ code.
+
+This software is governed by the CeCILL-B license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL-B
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL-B license and that you accept its terms.
+*/
+
+
+#ifndef __ORG_SCILAB_MODULES_GUI_GRAPHICWINDOW_CALLGRAPHICJOGLVIEW__
+#define __ORG_SCILAB_MODULES_GUI_GRAPHICWINDOW_CALLGRAPHICJOGLVIEW__
+#include <iostream>
+#include <string>
+#include <string.h>
+#include <stdlib.h>
+#include <jni.h>
+
+#include "GiwsException.hxx"
+
+#ifndef _MSC_VER /* Defined anyway with Visual */
+#if !defined(byte)
+typedef signed char byte;
+#else
+#pragma message("Byte has been redefined elsewhere. Some problems can happen")
+#endif
+#endif
+
+namespace org_scilab_modules_gui_graphicWindow {
+class CallGraphicJoGLView {
+
+private:
+JavaVM * jvm;
+
+protected:
+jmethodID voidcreateJoGLViewjstringID; // cache method id
+
+
+
+jobject instance;
+jclass instanceClass; // cache class
+
+
+/**
+* Get the environment matching to the current thread.
+*/
+virtual JNIEnv * getCurrentEnv();
+
+public:
+// Constructor
+/**
+* Create a wrapping of the object from a JNIEnv.
+* It will call the default constructor
+* @param JEnv_ the Java Env
+*/
+CallGraphicJoGLView(JavaVM * jvm_);
+
+/**
+* Create a wrapping of an already existing object from a JNIEnv.
+* The object must have already been instantiated
+* @param JEnv_ the Java Env
+* @param JObj the object
+*/
+CallGraphicJoGLView(JavaVM * jvm_, jobject JObj);
+
+
+/** 
+* This is a fake constructor to avoid the constructor
+* chaining when dealing with extended giws classes 
+*/
+#ifdef FAKEGIWSDATATYPE
+CallGraphicJoGLView(fakeGiwsDataType::fakeGiwsDataType /* unused */) {}
+#endif
+
+// Destructor
+~CallGraphicJoGLView();
+
+// Generic method
+// Synchronization methods
+/**
+* Enter monitor associated with the object.
+* Equivalent of creating a "synchronized(obj)" scope in Java.
+*/
+void synchronize();
+
+/**
+* Exit monitor associated with the object.
+* Equivalent of ending a "synchronized(obj)" scope.
+*/
+void endSynchronize();
+
+// Methods
+static void createJoGLView(JavaVM * jvm_, char * id);
+
+
+                        /**
+                        * Get class name to use for static methods
+                        * @return class name to use for static methods
+                        */
+                        
+                static const std::string className()
+                {
+                return "org/scilab/modules/gui/graphicWindow/CallGraphicJoGLView";
+                }
+                
+};
+
+
+}
+#endif
diff --git a/scilab/modules/gui/src/jni/JoGLView.giws.xml b/scilab/modules/gui/src/jni/JoGLView.giws.xml
new file mode 100644 (file)
index 0000000..11e29a7
--- /dev/null
@@ -0,0 +1,7 @@
+<package name="org.scilab.modules.gui.graphicWindow">
+  <object name="CallGraphicJoGLView">
+    <method name="createJoGLView" returnType="void" modifier="static">
+      <parameter name="id" type="String" />
+    </method>
+  </object>
+</package>
index 518fb3b..6e5105c 100644 (file)
@@ -359,6 +359,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index fae6988..d6e93a0 100644 (file)
@@ -333,6 +333,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index dbbe7e2..bc75818 100644 (file)
@@ -338,6 +338,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 1fd4097..24635f2 100644 (file)
@@ -355,6 +355,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index d67f5f5..494d928 100644 (file)
@@ -342,6 +342,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 2e97928..693aaa6 100644 (file)
@@ -324,6 +324,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index d013810..dfa5641 100644 (file)
@@ -309,6 +309,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 8cb4bda..9a0748c 100644 (file)
@@ -322,6 +322,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index c0946e4..a54a9fa 100644 (file)
@@ -337,6 +337,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 7cfca1f..f6f0285 100644 (file)
@@ -336,6 +336,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 0f3fa55..213f192 100644 (file)
@@ -345,6 +345,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 917fa28..123a7e9 100644 (file)
@@ -332,6 +332,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 8d9bd5d..88c5d8f 100644 (file)
@@ -266,6 +266,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 96cebd3..3843d4e 100644 (file)
@@ -266,6 +266,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index ab7b55f..6a904f9 100644 (file)
@@ -333,6 +333,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index c7cf642..37ddf89 100644 (file)
@@ -310,6 +310,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index e6602be..18af28f 100644 (file)
@@ -267,6 +267,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 0c27b4f..b32b440 100644 (file)
@@ -335,6 +335,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index a54df58..2703cea 100644 (file)
@@ -352,6 +352,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 7a48d0b..f3af114 100644 (file)
@@ -267,6 +267,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index dc056c2..38f5bc2 100644 (file)
@@ -321,6 +321,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 1917515..24a00f2 100644 (file)
@@ -299,6 +299,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 3ab8af1..89ae539 100644 (file)
@@ -339,6 +339,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b50dcdb..64d5a3c 100644 (file)
@@ -382,6 +382,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index e136f0f..21fb808 100644 (file)
@@ -313,6 +313,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b1637ea..89a10a9 100644 (file)
@@ -303,6 +303,10 @@ libscirenderer_la_CFLAGS=  -I$(srcdir)/includes/
 libscirenderer_la_SOURCES = $(RENDERER_CPP_SOURCES) $(GATEWAY_C_SOURCES)
 
 SWIG_WRAPPERS = src/jni/FigureScilabCall.i
+                
+if SWIG
+  BUILT_SOURCES=swig
+endif
 
 # For the code check (splint)
 CHECK_SRC= $(GATEWAY_C_SOURCES)
@@ -316,7 +320,8 @@ libscirenderer_la_LIBADD =  $(top_builddir)/libs/doublylinkedlist/libscidoublyli
 # needs the rendererer before $(top_builddir)/modules/jvm/libscijvm.la
 
 
-GIWS_WRAPPERS=src/jni/ArcFillDrawerGL.giws.xml \
+GIWS_WRAPPERS= \
+src/jni/ArcFillDrawerGL.giws.xml \
 src/jni/ArcLineDrawerGL.giws.xml \
 src/jni/BackTrihedronDrawerGL.giws.xml \
 src/jni/CenteredTextDrawerGL.giws.xml \
index c9c85e9..f999cf1 100644 (file)
@@ -563,6 +563,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
@@ -943,6 +944,11 @@ libscirenderer_la_CFLAGS = -I$(srcdir)/includes/
 libscirenderer_la_SOURCES = $(RENDERER_CPP_SOURCES) $(GATEWAY_C_SOURCES)
 SWIG_WRAPPERS = src/jni/FigureScilabCall.i
 
+# Provides macros compilation, Java compilation, cleaning
+# If you want Makefile to call ant, added USEANT=1
+@GIWS_TRUE@BUILT_SOURCES = giws
+@SWIG_TRUE@BUILT_SOURCES = swig
+
 # For the code check (splint)
 CHECK_SRC = $(GATEWAY_C_SOURCES)
 INCLUDE_FLAGS = $(libscirenderer_la_CFLAGS)
@@ -951,7 +957,8 @@ INCLUDE_FLAGS = $(libscirenderer_la_CFLAGS)
 libscirenderer_la_LIBADD = $(top_builddir)/libs/doublylinkedlist/libscidoublylinkedlist.la $(top_builddir)/modules/output_stream/libscioutput_stream.la
 
 # needs the rendererer before $(top_builddir)/modules/jvm/libscijvm.la
-GIWS_WRAPPERS = src/jni/ArcFillDrawerGL.giws.xml \
+GIWS_WRAPPERS = \
+src/jni/ArcFillDrawerGL.giws.xml \
 src/jni/ArcLineDrawerGL.giws.xml \
 src/jni/BackTrihedronDrawerGL.giws.xml \
 src/jni/CenteredTextDrawerGL.giws.xml \
@@ -996,10 +1003,6 @@ src/jni/RenderingChecker.giws.xml \
 src/jni/XlFontManager.giws.xml \
 src/jni/SubwinBackgroundDrawerGL.giws.xml
 
-
-# Provides macros compilation, Java compilation, cleaning
-# If you want Makefile to call ant, added USEANT=1
-@GIWS_TRUE@BUILT_SOURCES = giws
 @GUI_TRUE@USEANT = 1
 @GUI_TRUE@pkglib_LTLIBRARIES = libscirenderer.la
 libscirenderer_la_LDFLAGS = -version-info $(SCILAB_LIBRARY_VERSION)
diff --git a/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DataManager.java b/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DataManager.java
new file mode 100644 (file)
index 0000000..91b2ec3
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ * 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
+ */
+
+package org.scilab.modules.renderer.JoGLView;
+
+import com.sun.opengl.util.BufferUtil;
+import org.scilab.forge.scirenderer.canvas.interfaces.buffers.IVertexBuffer;
+import org.scilab.forge.scirenderer.canvas.interfaces.canvas.ICanvas;
+import org.scilab.modules.graphic_objects.NativeGL;
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
+import org.scilab.modules.graphic_objects.graphicView.GraphicView;
+
+import java.nio.FloatBuffer;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Pierre Lando
+ */
+public class DataManager implements GraphicView {
+
+    private final Map<String, IVertexBuffer> vertexBuffers = new HashMap<String, IVertexBuffer>();
+    private final ICanvas canvas;
+
+
+    public DataManager(ICanvas canvas) {
+        this.canvas = canvas;
+        GraphicController.getController().register(this);
+    }
+
+    public IVertexBuffer getVertexBuffer(String id) {
+        if (vertexBuffers.containsKey(id)) {
+            return vertexBuffers.get(id);
+        } else {
+            IVertexBuffer vertexBuffer = canvas.getBuffersManager().newVertexBuffer();
+
+            int length = NativeGL.getGLDataLength(id);
+            FloatBuffer dataBuffer = BufferUtil.newFloatBuffer(length);
+            NativeGL.loadGLData(dataBuffer, id);
+
+            vertexBuffer.setData(dataBuffer, IVertexBuffer.ECoordinates.XYZW);
+
+            vertexBuffers.put(id, vertexBuffer);
+            return vertexBuffer;
+        }
+    }
+
+    @Override
+    public void updateObject(String id, String property) {
+        if (property.equals(GraphicObjectProperties.__GO_DATA_MODEL__) && vertexBuffers.containsKey(id)) {
+            IVertexBuffer vertexBuffer = vertexBuffers.get(id);
+
+            int length = NativeGL.getGLDataLength(id);
+            FloatBuffer dataBuffer = BufferUtil.newFloatBuffer(length);
+            NativeGL.loadGLData(dataBuffer, id);
+            
+            vertexBuffer.setData(dataBuffer, IVertexBuffer.ECoordinates.XYZW);
+        }
+    }
+
+    @Override
+    public void createObject(String s) {}
+
+    @Override
+    public void deleteObject(String id) {
+        if (vertexBuffers.containsKey(id)) {
+            canvas.getBuffersManager().freeBuffer(vertexBuffers.get(id));
+            vertexBuffers.remove(id);
+        }
+    }
+}
diff --git a/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DrawerVisitor.java b/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/DrawerVisitor.java
new file mode 100644 (file)
index 0000000..9adfc48
--- /dev/null
@@ -0,0 +1,423 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ * 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
+ */
+
+package org.scilab.modules.renderer.JoGLView;
+
+import org.scilab.forge.scirenderer.canvas.interfaces.appearance.IAppearance;
+import org.scilab.forge.scirenderer.canvas.interfaces.appearance.material.color.FinalColor;
+import org.scilab.forge.scirenderer.canvas.interfaces.appearance.material.color.IColor;
+import org.scilab.forge.scirenderer.canvas.interfaces.buffers.IVertexBuffer;
+import org.scilab.forge.scirenderer.canvas.interfaces.canvas.ICanvas;
+import org.scilab.forge.scirenderer.canvas.interfaces.core.math.FinalRectangle;
+import org.scilab.forge.scirenderer.canvas.interfaces.geometry.box.FinalBox;
+import org.scilab.forge.scirenderer.canvas.interfaces.geometry.box.IBox;
+import org.scilab.forge.scirenderer.canvas.interfaces.geometry.line.ILines;
+import org.scilab.forge.scirenderer.canvas.interfaces.geometry.line.Lines;
+import org.scilab.forge.scirenderer.canvas.interfaces.tranformations.ITransformation;
+import org.scilab.forge.scirenderer.canvas.interfaces.tranformations.Rotation;
+import org.scilab.forge.scirenderer.canvas.interfaces.tranformations.Scale;
+import org.scilab.forge.scirenderer.canvas.interfaces.tranformations.Translate;
+import org.scilab.modules.graphic_objects.arc.Arc;
+import org.scilab.modules.graphic_objects.axes.Axes;
+import org.scilab.modules.graphic_objects.axes.Box;
+import org.scilab.modules.graphic_objects.axis.Axis;
+import org.scilab.modules.graphic_objects.compound.Compound;
+import org.scilab.modules.graphic_objects.contouredObject.Line;
+import org.scilab.modules.graphic_objects.fec.Fec;
+import org.scilab.modules.graphic_objects.figure.ColorMap;
+import org.scilab.modules.graphic_objects.figure.Figure;
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
+import org.scilab.modules.graphic_objects.graphicObject.IVisitor;
+import org.scilab.modules.graphic_objects.imageplot.Grayplot;
+import org.scilab.modules.graphic_objects.imageplot.Matplot;
+import org.scilab.modules.graphic_objects.label.Label;
+import org.scilab.modules.graphic_objects.legend.Legend;
+import org.scilab.modules.graphic_objects.polyline.Polyline;
+import org.scilab.modules.graphic_objects.rectangle.Rectangle;
+import org.scilab.modules.graphic_objects.surface.Fac3d;
+import org.scilab.modules.graphic_objects.surface.Plot3d;
+import org.scilab.modules.graphic_objects.textObject.Text;
+import org.scilab.modules.graphic_objects.textObject.TextObject;
+import org.scilab.modules.graphic_objects.vectfield.Arrow;
+import org.scilab.modules.graphic_objects.vectfield.Champ;
+import org.scilab.modules.graphic_objects.vectfield.Segs;
+
+/**
+ * @author Pierre Lando
+ */
+public class DrawerVisitor implements IVisitor {
+    private static final double DEFAULT_ALPHA = 0.0;
+    private static final double DEFAULT_THETA = 270.0;
+    
+    private final IVertexBuffer boxBorderVertices;
+    private static final float[] boxBorderVerticesData = new float[] {
+        -1,-1,+1,1, -1,+1,+1,1,
+        -1,+1,-1,1, +1,+1,-1,1,
+        +1,-1,-1,1, +1,-1,+1,1
+    };
+
+    private static final Line.LineType HIDDEN_BORDER_PATTERN = Line.LineType.STYLE1;
+    private final IVertexBuffer hiddenBoxBorderVertices;
+    private static final float[] hiddenBoxBorderVerticesData = new float[] {
+        -1,-1,-1,1, +1,-1,-1,1,
+        -1,-1,-1,1, -1,+1,-1,1,
+        -1,-1,-1,1, -1,-1,+1,1
+    };
+
+    private final IVertexBuffer frontBoxBorderVertices;
+    private static final float[] frontBoxBorderVerticesData = new float[] {
+        +1,+1,+1,1, -1,+1,+1,1,
+        +1,+1,+1,1, +1,-1,+1,1,
+        +1,+1,+1,1, +1,+1,-1,1
+    };
+
+    private final ICanvas canvas;
+    private final DataManager dataManager;
+
+    private ColorMap colorMap;
+
+    public DrawerVisitor(ICanvas canvas) {
+        this.canvas = canvas;
+        this.dataManager = new DataManager(canvas);
+        boxBorderVertices = canvas.getBuffersManager().newVertexBuffer();
+        boxBorderVertices.setData(boxBorderVerticesData, IVertexBuffer.ECoordinates.XYZW);
+
+        hiddenBoxBorderVertices = canvas.getBuffersManager().newVertexBuffer();
+        hiddenBoxBorderVertices.setData(hiddenBoxBorderVerticesData, IVertexBuffer.ECoordinates.XYZW);
+
+        frontBoxBorderVertices = canvas.getBuffersManager().newVertexBuffer();
+        frontBoxBorderVertices.setData(frontBoxBorderVerticesData, IVertexBuffer.ECoordinates.XYZW);
+    }
+
+    @Override
+    public void finalize() throws Throwable {
+        super.finalize();
+        canvas.getBuffersManager().freeBuffer(boxBorderVertices);
+        canvas.getBuffersManager().freeBuffer(hiddenBoxBorderVertices);
+        canvas.getBuffersManager().freeBuffer(frontBoxBorderVertices);
+    }
+
+
+    /**
+     * Ask the given object to accept visitor.
+     * @param ids array of object identifier.
+     */
+    private void askAcceptVisitor(String[] ids) {
+        for (String id : ids) {
+            GraphicObject object = GraphicController.getController().getObjectFromId(id);
+            object.accept(this);
+        }
+    }
+
+    @Override
+    public void visit(Axes axes) {
+        if (axes.getVisible()) {
+            // Set current zone
+            /**********************************************************************************************************/
+            Double[] axesBounds = axes.getAxesBounds();
+            Double[] margins = axes.getMargins();
+
+            double x = (axesBounds[0] + axesBounds[2] * margins[0]);
+            double y = (1.0 - axesBounds[1] - axesBounds[3] * (1.0 - margins[3]));
+            double w = (1 - margins[0] - margins[1]) * axesBounds[2];
+            double h = (1 - margins[2] - margins[3]) * axesBounds[3];
+
+            canvas.getZoneControl().setCurrentZone(new FinalRectangle(x+w/2, y+h/2, w, h));
+            /***********************************************************************************************************
+             * Compute transformation matrix.
+             *
+             * Data -> centered data (translation)
+             * centered data -> scaled data (scale, depend on cube scaling)
+             * scaled data -> rotated data
+             * rotated data -> final 'in cube' data (scale, depend on isoview).
+             * set square good ratio.
+             *
+             **********************************************************************************************************/
+
+            // TODO : a vĂ©rifer. en fait FRect c'est qui ?
+            Double[] bounds = axes.getDataBounds();
+
+            double tmpX;
+            double tmpY;
+            double tmpZ;
+            
+            ITransformation transformation;
+
+            // Set zone aspect ratio.
+            double ratio = canvas.getZoneControl().getFinalAspectRatio();
+            if (ratio < 1.0) {
+                transformation = new Scale(1, ratio, 1);
+            } else {
+                transformation = new Scale(1/ratio, 1, 1);
+            }
+
+            // Rotate.
+            transformation.times(new Rotation(DEFAULT_ALPHA - axes.getRotationAngles()[0], 1.0, 0.0, 0.0));
+            transformation.times(new Rotation(DEFAULT_THETA - axes.getRotationAngles()[1], 0.0, 0.0, 1.0));
+
+            // If there is no cube scaling, we must take into account the distribution of data.
+            if (!axes.getCubeScaling()) {
+                tmpX = (bounds[1] - bounds[0]);
+                tmpY = (bounds[3] - bounds[2]);
+                tmpZ = (bounds[5] - bounds[4]);
+
+                /**
+                 * Here, we should divide the values by their maximum.
+                 * But the next operation will automatically.  
+                 */
+                transformation.times(new Scale(tmpX, tmpY, tmpZ));
+            }
+
+            // Compute bounds of projected data.
+            double matrix[] = transformation.getMatrix16dv();
+            tmpX = 1 / (Math.abs(matrix[0]) + Math.abs(matrix[4]) + Math.abs(matrix[8]));
+            tmpY = 1 / (Math.abs(matrix[1]) + Math.abs(matrix[5]) + Math.abs(matrix[9]));
+            tmpZ = 1 / (Math.abs(matrix[2]) + Math.abs(matrix[6]) + Math.abs(matrix[10]));
+
+            // Scale projected data to fit in the square.
+            if (axes.getIsoview()) {
+                double minScale = Math.min(tmpX, tmpY);
+                transformation = transformation.leftTimes(new Scale(minScale, minScale, tmpZ));
+            } else {
+                transformation = transformation.leftTimes(new Scale(tmpX, tmpY, tmpZ));
+            }
+
+
+            canvas.getTransformationsStack().push(transformation);
+
+            // Draw box.
+            /**********************************************************************************************************/
+            canvas.getZoneControl().clearZBuffer();
+            IColor backgroundColor = new FinalColor(colorMap.getScilabColor(axes.getBackground()));
+            IBox box = new FinalBox(2, 2, 2);
+            box.getAppearance().getFillProperties().getMaterial().setDiffuseColor(backgroundColor);
+            box.getAppearance().setRenderingMode(IAppearance.ERenderingMode.FILL);
+            canvas.draw(box);
+            canvas.getZoneControl().clearZBuffer();
+
+            // Draw box border.
+            /**********************************************************************************************************/
+            Box.BoxType boxed = axes.getBox().getBox();
+            if (boxed != Box.BoxType.OFF) {
+                /**
+                 * Mirror the cube such that the corner with the minimum Z value was (-1, -1, -1).
+                 */
+                canvas.getTransformationsStack().push(new Scale(
+                    matrix[2] < 0  ? -1 : 1,
+                    matrix[6] < 0  ? -1 : 1,
+                    matrix[10] < 0 ? -1 : 1
+                ));
+
+                ILines lines = new Lines();
+                lines.getLineProperties().setLineWidth(axes.getLineThickness().floatValue());
+
+                IColor lineColor;
+                lineColor = new FinalColor(colorMap.getScilabColor(axes.getHiddenAxisColor()));
+                lines.getLineProperties().getMaterial().setDiffuseColor(lineColor);
+                lines.getLineProperties().setLinePattern(HIDDEN_BORDER_PATTERN.asPattern());
+
+                lines.setMode(ILines.EMode.SEGMENTS);
+                lines.setVertexBuffer(hiddenBoxBorderVertices);
+                canvas.draw(lines);
+
+                if (boxed != Box.BoxType.HIDDEN_AXES) {
+                    lineColor = new FinalColor(colorMap.getScilabColor(axes.getLineColor()));
+                    lines.getLineProperties().getMaterial().setDiffuseColor(lineColor);
+
+                    lines.getLineProperties().setLinePattern(axes.getLine().getLineStyle().asPattern());
+                    lines.setMode(ILines.EMode.LOOP);
+                    lines.setVertexBuffer(boxBorderVertices);
+                    canvas.draw(lines);
+
+                    if (boxed != Box.BoxType.BACK_HALF) {
+                        lines.setMode(ILines.EMode.SEGMENTS);
+                        lines.setVertexBuffer(frontBoxBorderVertices);
+                        canvas.draw(lines);
+                    }
+                }
+
+                canvas.getTransformationsStack().pop();
+            }
+            /**********************************************************************************************************/
+
+            // Draw data.
+            /**********************************************************************************************************/
+
+            canvas.getTransformationsStack().pop();
+
+            // Reverse data if needed.
+            transformation.times(
+                new Scale(
+                    axes.getAxes()[0].getReverse() ? -1 : 1,
+                    axes.getAxes()[1].getReverse() ? -1 : 1,
+                    axes.getAxes()[2].getReverse() ? -1 : 1
+                )
+            );
+
+
+            // Scale data.
+            tmpX = 2/(bounds[1] - bounds[0]);
+            tmpY = 2/(bounds[3] - bounds[2]);
+            tmpZ = 2/(bounds[5] - bounds[4]);
+
+            transformation.times(new Scale(tmpX, tmpY, tmpZ));
+
+
+            // Translate data.
+            transformation.times(new Translate(
+               - (bounds[0] + bounds[1]) / 2.0,
+               - (bounds[2] + bounds[3]) / 2.0,
+               - (bounds[4] + bounds[5]) / 2.0
+            ));
+
+            canvas.getTransformationsStack().push(transformation);
+            askAcceptVisitor(axes.getChildren());
+            canvas.getTransformationsStack().pop();
+        }
+    }
+
+    @Override
+    public void visit(Arc arc) {
+        // TODO
+        System.out.println("How can I draw an arc ?");
+    }
+
+    @Override
+    public void visit(Axis axis) {
+        // TODO
+        System.out.println("How can I draw an axis ?");
+    }
+
+    @Override
+    public void visit(Compound compound) {
+        if (compound.getVisible()) {
+            askAcceptVisitor(compound.getChildren());
+        }
+    }
+
+    @Override
+    public void visit(Fec fec) {
+        // TODO
+        System.out.println("How can I draw a fec ?");
+    }
+
+    @Override
+    public void visit(Figure figure) {
+        if (figure.getVisible()) {
+            colorMap = figure.getColorMap();
+            int background = figure.getBackground();
+            IColor clearColor = new FinalColor(colorMap.getScilabColor(background));
+
+            canvas.setCoordinate(new FinalRectangle(.5,.5,1,1));
+            canvas.getZoneControl().setCurrentZone(new FinalRectangle(.5,.5,1,1));
+            canvas.getZoneControl().clearZone(clearColor);
+            canvas.getZoneControl().clearZBuffer();
+
+            askAcceptVisitor(figure.getChildren());
+        }
+    }
+
+    @Override
+    public void visit(Grayplot grayplot) {
+        // TODO
+        System.out.println("How can I draw a grayplot ?");
+    }
+
+    @Override
+    public void visit(Matplot matplot) {
+        // TODO
+        System.out.println("How can I draw a matplot ?");
+    }
+
+    @Override
+    public void visit(Label label) {
+        // TODO
+        System.out.println("How can I draw a label ?");
+    }
+
+    @Override
+    public void visit(Legend legend) {
+        // TODO
+        System.out.println("How can I draw a legend ?");
+    }
+
+    @Override
+    public void visit(Polyline polyline) {
+        /*
+        ISciBuffersManager buffersManager = canvas.getBuffersManager();
+        IVertexBuffer vertexBuffer = buffersManager.getVertexBuffer(polyline);
+        */
+
+        IVertexBuffer vertexBuffer = dataManager.getVertexBuffer(polyline.getIdentifier());
+        ILines lines = new Lines();
+        lines.setVertexBuffer(vertexBuffer);
+        
+        IColor frontColor = new FinalColor(colorMap.getScilabColor(polyline.getLineColor()));
+        float lineWidth = polyline.getLineThickness().floatValue();
+        short pattern = polyline.getLineStyleAsEnum().asPattern();
+
+        lines.setMode(ILines.EMode.STRIP);
+        lines.getLineProperties().setLineWidth(lineWidth);
+        lines.getLineProperties().setLinePattern(pattern);
+        lines.getLineProperties().getMaterial().setDiffuseColor(frontColor);
+
+        canvas.draw(lines);
+    }
+
+    @Override
+    public void visit(Rectangle rectangle) {
+        // TODO
+        System.out.println("How can I draw a rectangle ?");
+    }
+
+    @Override
+    public void visit(Fac3d fac3d) {
+        // TODO
+        System.out.println("How can I draw a fac3d ?");
+    }
+
+    @Override
+    public void visit(Plot3d plot3d) {
+        // TODO
+        System.out.println("How can I draw a plot3d ?");
+    }
+
+    @Override
+    public void visit(Text text) {
+        // TODO
+        System.out.println("How can I draw a text ?");
+    }
+
+    @Override
+    public void visit(TextObject textObject) {
+        // TODO
+        System.out.println("How can I draw a textObject ?");
+    }
+
+    @Override
+    public void visit(Arrow arrow) {
+        // TODO
+        System.out.println("How can I draw an arrow ?");
+    }
+
+    @Override
+    public void visit(Champ champ) {
+        // TODO
+        System.out.println("How can I draw a champ ?");
+    }
+
+    @Override
+    public void visit(Segs segs) {
+        // TODO
+        System.out.println("How can I draw a segs ?");
+    }
+}
diff --git a/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/editor/FigureFrame.java b/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/editor/FigureFrame.java
new file mode 100644 (file)
index 0000000..bf20f57
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ * 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
+ */
+
+package org.scilab.modules.renderer.JoGLView.editor;
+
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+
+import javax.swing.*;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.TreeCellRenderer;
+import javax.swing.tree.TreeModel;
+import java.awt.*;
+
+/**
+ * @author Pierre Lando
+ */
+public class FigureFrame extends JFrame {
+    private final String id;
+    private final TreeModel treeModel;
+    public FigureFrame(String id) {
+        this.id = id;
+        treeModel = new SciTreeModel(id);
+        initialize();
+    }
+
+    private void initialize() {
+        JTree tree = new JTree(treeModel);
+
+        tree.setCellRenderer(new TreeCellRenderer() {
+            private final TreeCellRenderer renderer = new DefaultTreeCellRenderer();
+            public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+                Object type = GraphicController.getController().getProperty((String) value, "Type");
+                return renderer.getTreeCellRendererComponent(tree, type, selected, expanded, leaf, row, hasFocus);
+            }
+        });
+
+        add(tree);
+        setSize(400, 500);
+        setVisible(true);
+    }
+}
diff --git a/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/editor/SciTreeModel.java b/scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/editor/SciTreeModel.java
new file mode 100644 (file)
index 0000000..24ae204
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2009-2010 - DIGITEO - Pierre Lando
+ *
+ * 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
+ */
+
+package org.scilab.modules.renderer.JoGLView.editor;
+
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+import org.scilab.modules.graphic_objects.graphicView.GraphicView;
+import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
+
+import javax.swing.event.EventListenerList;
+import javax.swing.event.TreeModelEvent;
+import javax.swing.event.TreeModelListener;
+import javax.swing.tree.TreeModel;
+import javax.swing.tree.TreePath;
+import java.util.Vector;
+
+/**
+ * @author Pierre Lando
+ */
+public class SciTreeModel implements TreeModel, GraphicView {
+    private final String rootId;
+    private final EventListenerList listeners = new EventListenerList();
+
+    public SciTreeModel(String id) {
+        this.rootId = id;
+        GraphicController.getController().register(this);
+    }
+
+    public Object getRoot() {
+        return rootId;
+    }
+
+    public Object getChild(Object parent, int index) {
+        if (parent instanceof String) {
+            String id = (String) parent;
+            Object children =  GraphicController.getController().getProperty(id, "Children");
+            if (children instanceof String[]) {
+                if (index >= 0 && index < ((String[]) children).length) {
+                    return ((String[]) children)[index];
+                }
+            }
+        }
+        return null;
+    }
+
+    public int getChildCount(Object parent) {
+        if (parent instanceof String) {
+            String id = (String) parent;
+            Object children =  GraphicController.getController().getProperty(id, "Children");
+            if (children instanceof String[]) {
+                return ((String[]) children).length;
+            }
+        }
+        return 0;
+    }
+
+    public boolean isLeaf(Object node) {
+        return getChildCount(node) == 0;
+    }
+
+    public void valueForPathChanged(TreePath path, Object newValue) {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+    public int getIndexOfChild(Object parent, Object child) {
+        String childId;
+        if (child instanceof String) {
+            childId = (String) child;
+            if (parent instanceof String) {
+                String id = (String) parent;
+                Object children =  GraphicController.getController().getProperty(id, "Children");
+                if (children instanceof String[]) {
+                    for (int i = 0 ; i < ((String[]) children).length ; i++) {
+                        if (((String[]) children)[i].equals(childId)) {
+                            return i;
+                        }
+                    }
+                }
+            }            
+        }
+        return -1;
+    }
+
+    public void addTreeModelListener(TreeModelListener l) {
+        listeners.add(TreeModelListener.class, l);
+    }
+
+    public void removeTreeModelListener(TreeModelListener l) {
+        listeners.remove(TreeModelListener.class, l);
+    }
+
+    public void updateObject(String id, String property) {
+        Vector<String> path = getPath(id);
+        if (path != null) {
+            for (TreeModelListener listener : listeners.getListeners(TreeModelListener.class)) {
+                TreeModelEvent e = new TreeModelEvent(id, path.toArray(), new int[]{0}, new Object[]{id});
+                listener.treeStructureChanged(e);
+            }
+        }
+    }
+
+    public void createObject(String id) {
+        Vector<String> path = getPath(id);
+        if (path != null) {
+            for (TreeModelListener listener : listeners.getListeners(TreeModelListener.class)) {
+                TreeModelEvent e = new TreeModelEvent(id, path.toArray(), new int[]{0}, new Object[]{id});
+                listener.treeNodesInserted(e);
+            }
+        }
+    }
+
+    public void deleteObject(String id) {
+        Vector<String> path = getPath(id);
+        if (path != null) {
+            for (TreeModelListener listener : listeners.getListeners(TreeModelListener.class)) {
+                TreeModelEvent e = new TreeModelEvent(id, path.toArray(), new int[]{0}, new Object[]{id});
+                listener.treeNodesRemoved(e);
+            }
+        }
+    }
+
+    private Vector<String> getPath(String id) {
+        String parentId = getParent(id);
+        // TODO : remove parentId.equals("")
+        if (parentId == null || parentId.equals("")) {
+            return null;
+        } else if (parentId.equals(rootId)) {
+            Vector<String> v = new Vector<String>();
+            v.add(rootId);
+            return v;
+        } else {
+            Vector<String> v = getPath(parentId);
+            if (v != null) {
+                v.add(parentId);
+            }
+            return v;
+        }
+    }
+
+    private String getParent(String id) {
+        Object parent = GraphicController.getController().getProperty(id, GraphicObjectProperties.__GO_PARENT__);
+        if (parent instanceof String) {
+            return (String) parent;
+        }
+        return null; 
+    }
+}
index d9641af..68183a1 100644 (file)
@@ -550,6 +550,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index a538d94..c31bac3 100644 (file)
@@ -808,6 +808,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 6be3959..0f28951 100644 (file)
@@ -332,6 +332,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index d41b8fc..8dad7ec 100644 (file)
@@ -322,6 +322,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 3868928..4e9233b 100644 (file)
@@ -331,6 +331,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 85838ac..ce025e9 100644 (file)
@@ -271,6 +271,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 3f39d51..1e8d2cb 100644 (file)
@@ -296,6 +296,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index f356a00..3e1a49f 100644 (file)
@@ -346,6 +346,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index e49a1d5..8118847 100644 (file)
@@ -325,6 +325,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index fae9351..69b293e 100644 (file)
@@ -307,6 +307,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 272ce87..58cafa1 100644 (file)
@@ -327,6 +327,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 4bcf622..6433745 100644 (file)
@@ -340,6 +340,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index c9d8b5a..b469cc2 100644 (file)
@@ -311,6 +311,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 7afa200..24311c0 100644 (file)
@@ -345,6 +345,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index cede725..1d88c2e 100644 (file)
@@ -266,6 +266,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 88f67e0..aaece68 100644 (file)
@@ -303,6 +303,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index c28a179..284207d 100644 (file)
@@ -307,6 +307,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b4130d7..60ca03d 100644 (file)
@@ -332,6 +332,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index 20a1f53..358c592 100644 (file)
@@ -334,6 +334,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index b8d8f2d..0a2dee4 100644 (file)
@@ -296,6 +296,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index f896432..0450efd 100644 (file)
@@ -345,6 +345,7 @@ RT_LIB = @RT_LIB@
 SAXON = @SAXON@
 SCICOS_ENABLE = @SCICOS_ENABLE@
 SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCIRENDERER = @SCIRENDERER@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SET_RELOCATABLE = @SET_RELOCATABLE@
index c3f373f..fa7d3e3 100644 (file)
@@ -15,6 +15,8 @@ jhdf5.jar=@JHDF5@
 
 jgraphx.jar=@JGRAPHX@
 
+scirenderer.jar=@SCIRENDERER@
+
 jrosetta-API.jar=@JROSETTA_API@
 
 jrosetta-engine.jar=@JROSETTA_ENGINE@