Reorganization
Allan Cornet [Mon, 31 Jul 2006 08:54:37 +0000 (08:54 +0000)]
Graphics modules

Module temp. for tests (memory bugs)

674 files changed:
scilab/Scilab.sln
scilab/modules/graphics2/Actions.c [new file with mode: 0644]
scilab/modules/graphics2/Alloc.c [new file with mode: 0644]
scilab/modules/graphics2/Axes.c [new file with mode: 0644]
scilab/modules/graphics2/Axes.h [new file with mode: 0644]
scilab/modules/graphics2/BuildObjects.c [new file with mode: 0644]
scilab/modules/graphics2/BuildObjects.h [new file with mode: 0644]
scilab/modules/graphics2/Champ.c [new file with mode: 0644]
scilab/modules/graphics2/CloneObjects.c [new file with mode: 0644]
scilab/modules/graphics2/CloneObjects.h [new file with mode: 0644]
scilab/modules/graphics2/Contour.c [new file with mode: 0644]
scilab/modules/graphics2/DestroyObjects.c [new file with mode: 0644]
scilab/modules/graphics2/DestroyObjects.h [new file with mode: 0644]
scilab/modules/graphics2/DrawObjects.c [new file with mode: 0644]
scilab/modules/graphics2/DrawObjects.h [new file with mode: 0644]
scilab/modules/graphics2/Events.c [new file with mode: 0644]
scilab/modules/graphics2/Events.h [new file with mode: 0644]
scilab/modules/graphics2/FeC.c [new file with mode: 0644]
scilab/modules/graphics2/FeC.p [new file with mode: 0644]
scilab/modules/graphics2/Format.c [new file with mode: 0644]
scilab/modules/graphics2/GetProperty.c [new file with mode: 0644]
scilab/modules/graphics2/GetProperty.h [new file with mode: 0644]
scilab/modules/graphics2/Graphics.h [new file with mode: 0644]
scilab/modules/graphics2/Gray.c [new file with mode: 0644]
scilab/modules/graphics2/HandleManagement.c [new file with mode: 0644]
scilab/modules/graphics2/HandleManagement.h [new file with mode: 0644]
scilab/modules/graphics2/InitObjects.c [new file with mode: 0644]
scilab/modules/graphics2/InitObjects.h [new file with mode: 0644]
scilab/modules/graphics2/Interaction.c [new file with mode: 0644]
scilab/modules/graphics2/Interaction.h [new file with mode: 0644]
scilab/modules/graphics2/MacMenus.c [new file with mode: 0644]
scilab/modules/graphics2/MacWinOther.c [new file with mode: 0644]
scilab/modules/graphics2/Makefile.in [new file with mode: 0644]
scilab/modules/graphics2/Math.c [new file with mode: 0644]
scilab/modules/graphics2/Math.h [new file with mode: 0644]
scilab/modules/graphics2/ObjectStructure.h [new file with mode: 0644]
scilab/modules/graphics2/Plo2d.c [new file with mode: 0644]
scilab/modules/graphics2/Plo2d1.c [new file with mode: 0644]
scilab/modules/graphics2/Plo2d2.c [new file with mode: 0644]
scilab/modules/graphics2/Plo2d3.c [new file with mode: 0644]
scilab/modules/graphics2/Plo2d4.c [new file with mode: 0644]
scilab/modules/graphics2/Plo2dEch.c [new file with mode: 0644]
scilab/modules/graphics2/Plo2dn.c [new file with mode: 0644]
scilab/modules/graphics2/Plo3d.c [new file with mode: 0644]
scilab/modules/graphics2/Plo3dn.c [new file with mode: 0644]
scilab/modules/graphics2/PloEch.h [new file with mode: 0644]
scilab/modules/graphics2/README [new file with mode: 0644]
scilab/modules/graphics2/Rec.c [new file with mode: 0644]
scilab/modules/graphics2/Rec.h [new file with mode: 0644]
scilab/modules/graphics2/RecLoad.c [new file with mode: 0644]
scilab/modules/graphics2/RecSave.c [new file with mode: 0644]
scilab/modules/graphics2/SetProperty.c [new file with mode: 0644]
scilab/modules/graphics2/SetProperty.h [new file with mode: 0644]
scilab/modules/graphics2/StringMatrix.c [new file with mode: 0644]
scilab/modules/graphics2/StringMatrix.h [new file with mode: 0644]
scilab/modules/graphics2/Tests.c [new file with mode: 0644]
scilab/modules/graphics2/Vect2Matrix.c [new file with mode: 0644]
scilab/modules/graphics2/Vect2Matrix.h [new file with mode: 0644]
scilab/modules/graphics2/Xcall.c [new file with mode: 0644]
scilab/modules/graphics2/Xcall1.c [new file with mode: 0644]
scilab/modules/graphics2/bcg.h [new file with mode: 0644]
scilab/modules/graphics2/changelog.txt [moved from scilab/modules/graphics/changelog.txt with 100% similarity]
scilab/modules/graphics2/clipping.c [new file with mode: 0644]
scilab/modules/graphics2/clipping.h [new file with mode: 0644]
scilab/modules/graphics2/color.h [new file with mode: 0644]
scilab/modules/graphics2/demos/anim/anim.dem [moved from scilab/modules/graphics/demos/anim/anim.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim1.dem [moved from scilab/modules/graphics/demos/anim/anim1.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim2.dem [moved from scilab/modules/graphics/demos/anim/anim2.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim3.dem [moved from scilab/modules/graphics/demos/anim/anim3.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim4.dem [moved from scilab/modules/graphics/demos/anim/anim4.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim5.dem [moved from scilab/modules/graphics/demos/anim/anim5.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim6.dem [moved from scilab/modules/graphics/demos/anim/anim6.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim6.sci [moved from scilab/modules/graphics/demos/anim/anim6.sci with 100% similarity]
scilab/modules/graphics2/demos/anim/anim7.dem [moved from scilab/modules/graphics/demos/anim/anim7.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim8.dem [moved from scilab/modules/graphics/demos/anim/anim8.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/anim_p1.dem [moved from scilab/modules/graphics/demos/anim/anim_p1.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/animxx.dem [moved from scilab/modules/graphics/demos/anim/animxx.dem with 100% similarity]
scilab/modules/graphics2/demos/anim/riemann.sci [moved from scilab/modules/graphics/demos/anim/riemann.sci with 100% similarity]
scilab/modules/graphics2/demos/anim/yt.wrt [moved from scilab/modules/graphics/demos/anim/yt.wrt with 100% similarity]
scilab/modules/graphics2/demos/anim/~anim6.sci [moved from scilab/modules/graphics/demos/anim/~anim6.sci with 100% similarity]
scilab/modules/graphics2/demos/bar/bar.dem [moved from scilab/modules/graphics/demos/bar/bar.dem with 100% similarity]
scilab/modules/graphics2/demos/bike.dem [moved from scilab/modules/graphics/demos/bike.dem with 100% similarity]
scilab/modules/graphics2/demos/cmplxfunc/MacCmplx.sci [moved from scilab/modules/graphics/demos/cmplxfunc/MacCmplx.sci with 100% similarity]
scilab/modules/graphics2/demos/cmplxfunc/cmplxfunc.dem [moved from scilab/modules/graphics/demos/cmplxfunc/cmplxfunc.dem with 100% similarity]
scilab/modules/graphics2/demos/contourf.dem [moved from scilab/modules/graphics/demos/contourf.dem with 100% similarity]
scilab/modules/graphics2/demos/dessin-1.dem [moved from scilab/modules/graphics/demos/dessin-1.dem with 100% similarity]
scilab/modules/graphics2/demos/dessin.dem [moved from scilab/modules/graphics/demos/dessin.dem with 100% similarity]
scilab/modules/graphics2/demos/dessin.dem.pos [moved from scilab/modules/graphics/demos/dessin.dem.pos with 100% similarity]
scilab/modules/graphics2/demos/fec/MESH [moved from scilab/modules/graphics/demos/fec/MESH with 100% similarity]
scilab/modules/graphics2/demos/fec/MESH.VAL [moved from scilab/modules/graphics/demos/fec/MESH.VAL with 100% similarity]
scilab/modules/graphics2/demos/fec/fec.dem [moved from scilab/modules/graphics/demos/fec/fec.dem with 100% similarity]
scilab/modules/graphics2/demos/fec/fec.ex1 [moved from scilab/modules/graphics/demos/fec/fec.ex1 with 100% similarity]
scilab/modules/graphics2/demos/fec/fec.ex2 [moved from scilab/modules/graphics/demos/fec/fec.ex2 with 100% similarity]
scilab/modules/graphics2/demos/fec/fec.ex3 [moved from scilab/modules/graphics/demos/fec/fec.ex3 with 100% similarity]
scilab/modules/graphics2/demos/fec/fec.ex4 [moved from scilab/modules/graphics/demos/fec/fec.ex4 with 100% similarity]
scilab/modules/graphics2/demos/fec/fec.info [moved from scilab/modules/graphics/demos/fec/fec.info with 100% similarity]
scilab/modules/graphics2/demos/fec/fec_demo.sci [moved from scilab/modules/graphics/demos/fec/fec_demo.sci with 100% similarity]
scilab/modules/graphics2/demos/graphics.dem [moved from scilab/modules/graphics/demos/graphics.dem with 100% similarity]
scilab/modules/graphics2/demos/misc/misc.dem [moved from scilab/modules/graphics/demos/misc/misc.dem with 100% similarity]
scilab/modules/graphics2/demos/misc/numerique.dem [moved from scilab/modules/graphics/demos/misc/numerique.dem with 100% similarity]
scilab/modules/graphics2/demos/misc/oscil.dem [moved from scilab/modules/graphics/demos/misc/oscil.dem with 100% similarity]
scilab/modules/graphics2/demos/misc/oscil.sci [moved from scilab/modules/graphics/demos/misc/oscil.sci with 100% similarity]
scilab/modules/graphics2/demos/misc/point.dem [moved from scilab/modules/graphics/demos/misc/point.dem with 100% similarity]
scilab/modules/graphics2/demos/peaks.sci [moved from scilab/modules/graphics/demos/peaks.sci with 100% similarity]
scilab/modules/graphics2/demos/portrait.dem [moved from scilab/modules/graphics/demos/portrait.dem with 100% similarity]
scilab/modules/graphics2/demos/sd.sav [moved from scilab/modules/graphics/demos/sd.sav with 100% similarity]
scilab/modules/graphics2/demos/surface/Macros.sci [moved from scilab/modules/graphics/demos/surface/Macros.sci with 100% similarity]
scilab/modules/graphics2/demos/surface/bezier.dem [moved from scilab/modules/graphics/demos/surface/bezier.dem with 100% similarity]
scilab/modules/graphics2/demos/surface/bezier.sci [moved from scilab/modules/graphics/demos/surface/bezier.sci with 100% similarity]
scilab/modules/graphics2/demos/surface/surfaces.dem [moved from scilab/modules/graphics/demos/surface/surfaces.dem with 100% similarity]
scilab/modules/graphics2/demos/surface/surfaces.sci [moved from scilab/modules/graphics/demos/surface/surfaces.sci with 100% similarity]
scilab/modules/graphics2/demos/xdemo-1.dem [moved from scilab/modules/graphics/demos/xdemo-1.dem with 100% similarity]
scilab/modules/graphics2/demos/xdemo.dem [moved from scilab/modules/graphics/demos/xdemo.dem with 100% similarity]
scilab/modules/graphics2/demos/xdemo.dem.pos [moved from scilab/modules/graphics/demos/xdemo.dem.pos with 100% similarity]
scilab/modules/graphics2/demos/xsetechfig.sce [moved from scilab/modules/graphics/demos/xsetechfig.sce with 100% similarity]
scilab/modules/graphics2/dr1Call.c [new file with mode: 0644]
scilab/modules/graphics2/etc/graphics.quit [moved from scilab/modules/graphics/etc/graphics.quit with 100% similarity]
scilab/modules/graphics2/etc/graphics.start [moved from scilab/modules/graphics/etc/graphics.start with 100% similarity]
scilab/modules/graphics2/fig.h [new file with mode: 0644]
scilab/modules/graphics2/giffonts.h [new file with mode: 0644]
scilab/modules/graphics2/graphics.fundef [new file with mode: 0644]
scilab/modules/graphics2/graphics.vcproj [new file with mode: 0644]
scilab/modules/graphics2/gsort.c [new file with mode: 0644]
scilab/modules/graphics2/gsort.h [new file with mode: 0644]
scilab/modules/graphics2/gw_graphics.c [new file with mode: 0644]
scilab/modules/graphics2/gw_graphics.h [new file with mode: 0644]
scilab/modules/graphics2/help/eng/GlobalProperty.xml [moved from scilab/modules/graphics/help/eng/GlobalProperty.xml with 100% similarity]
scilab/modules/graphics2/help/eng/Graphics.xml [moved from scilab/modules/graphics/help/eng/Graphics.xml with 100% similarity]
scilab/modules/graphics2/help/eng/LineSpec.xml [moved from scilab/modules/graphics/help/eng/LineSpec.xml with 100% similarity]
scilab/modules/graphics2/help/eng/Matplot.xml [moved from scilab/modules/graphics/help/eng/Matplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/Matplot1.xml [moved from scilab/modules/graphics/help/eng/Matplot1.xml with 100% similarity]
scilab/modules/graphics2/help/eng/Matplot_properties.xml [moved from scilab/modules/graphics/help/eng/Matplot_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/Sfgrayplot.xml [moved from scilab/modules/graphics/help/eng/Sfgrayplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/Sgrayplot.xml [moved from scilab/modules/graphics/help/eng/Sgrayplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/addcolor.xml [moved from scilab/modules/graphics/help/eng/addcolor.xml with 100% similarity]
scilab/modules/graphics2/help/eng/alufunctions.xml [moved from scilab/modules/graphics/help/eng/alufunctions.xml with 100% similarity]
scilab/modules/graphics2/help/eng/arc_properties.xml [moved from scilab/modules/graphics/help/eng/arc_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/axes_properties.xml [moved from scilab/modules/graphics/help/eng/axes_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/axis_properties.xml [moved from scilab/modules/graphics/help/eng/axis_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/bar.xml [moved from scilab/modules/graphics/help/eng/bar.xml with 100% similarity]
scilab/modules/graphics2/help/eng/barh.xml [moved from scilab/modules/graphics/help/eng/barh.xml with 100% similarity]
scilab/modules/graphics2/help/eng/barhomogenize.xml [moved from scilab/modules/graphics/help/eng/barhomogenize.xml with 100% similarity]
scilab/modules/graphics2/help/eng/black.xml [moved from scilab/modules/graphics/help/eng/black.xml with 100% similarity]
scilab/modules/graphics2/help/eng/bode.xml [moved from scilab/modules/graphics/help/eng/bode.xml with 100% similarity]
scilab/modules/graphics2/help/eng/champ.xml [moved from scilab/modules/graphics/help/eng/champ.xml with 100% similarity]
scilab/modules/graphics2/help/eng/champ1.xml [moved from scilab/modules/graphics/help/eng/champ1.xml with 100% similarity]
scilab/modules/graphics2/help/eng/champ_properties.xml [moved from scilab/modules/graphics/help/eng/champ_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/chart.xml [moved from scilab/modules/graphics/help/eng/chart.xml with 100% similarity]
scilab/modules/graphics2/help/eng/clear_pixmap.xml [moved from scilab/modules/graphics/help/eng/clear_pixmap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/clf.xml [moved from scilab/modules/graphics/help/eng/clf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/color.xml [moved from scilab/modules/graphics/help/eng/color.xml with 100% similarity]
scilab/modules/graphics2/help/eng/color_list.xml [moved from scilab/modules/graphics/help/eng/color_list.xml with 100% similarity]
scilab/modules/graphics2/help/eng/colorbar.xml [moved from scilab/modules/graphics/help/eng/colorbar.xml with 100% similarity]
scilab/modules/graphics2/help/eng/colordef.xml [moved from scilab/modules/graphics/help/eng/colordef.xml with 100% similarity]
scilab/modules/graphics2/help/eng/colormap.xml [moved from scilab/modules/graphics/help/eng/colormap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/compound_properties.xml [moved from scilab/modules/graphics/help/eng/compound_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/contour.xml [moved from scilab/modules/graphics/help/eng/contour.xml with 100% similarity]
scilab/modules/graphics2/help/eng/contour2d.xml [moved from scilab/modules/graphics/help/eng/contour2d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/contour2di.xml [moved from scilab/modules/graphics/help/eng/contour2di.xml with 100% similarity]
scilab/modules/graphics2/help/eng/contourf.xml [moved from scilab/modules/graphics/help/eng/contourf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/copy.xml [moved from scilab/modules/graphics/help/eng/copy.xml with 100% similarity]
scilab/modules/graphics2/help/eng/delete.xml [moved from scilab/modules/graphics/help/eng/delete.xml with 100% similarity]
scilab/modules/graphics2/help/eng/dragrect.xml [moved from scilab/modules/graphics/help/eng/dragrect.xml with 100% similarity]
scilab/modules/graphics2/help/eng/draw.xml [moved from scilab/modules/graphics/help/eng/draw.xml with 100% similarity]
scilab/modules/graphics2/help/eng/drawaxis.xml [moved from scilab/modules/graphics/help/eng/drawaxis.xml with 100% similarity]
scilab/modules/graphics2/help/eng/drawlater.xml [moved from scilab/modules/graphics/help/eng/drawlater.xml with 100% similarity]
scilab/modules/graphics2/help/eng/drawnow.xml [moved from scilab/modules/graphics/help/eng/drawnow.xml with 100% similarity]
scilab/modules/graphics2/help/eng/driver.xml [moved from scilab/modules/graphics/help/eng/driver.xml with 100% similarity]
scilab/modules/graphics2/help/eng/edit_curv.xml [moved from scilab/modules/graphics/help/eng/edit_curv.xml with 100% similarity]
scilab/modules/graphics2/help/eng/errbar.xml [moved from scilab/modules/graphics/help/eng/errbar.xml with 100% similarity]
scilab/modules/graphics2/help/eng/eval3d.xml [moved from scilab/modules/graphics/help/eng/eval3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/eval3dp.xml [moved from scilab/modules/graphics/help/eng/eval3dp.xml with 100% similarity]
scilab/modules/graphics2/help/eng/evans.xml [moved from scilab/modules/graphics/help/eng/evans.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fac3d.xml [moved from scilab/modules/graphics/help/eng/fac3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fchamp.xml [moved from scilab/modules/graphics/help/eng/fchamp.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fcontour.xml [moved from scilab/modules/graphics/help/eng/fcontour.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fcontour2d.xml [moved from scilab/modules/graphics/help/eng/fcontour2d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fec.xml [moved from scilab/modules/graphics/help/eng/fec.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fec_properties.xml [moved from scilab/modules/graphics/help/eng/fec_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fgrayplot.xml [moved from scilab/modules/graphics/help/eng/fgrayplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/figure_properties.xml [moved from scilab/modules/graphics/help/eng/figure_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fplot2d.xml [moved from scilab/modules/graphics/help/eng/fplot2d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fplot3d.xml [moved from scilab/modules/graphics/help/eng/fplot3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/fplot3d1.xml [moved from scilab/modules/graphics/help/eng/fplot3d1.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gainplot.xml [moved from scilab/modules/graphics/help/eng/gainplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gca.xml [moved from scilab/modules/graphics/help/eng/gca.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gce.xml [moved from scilab/modules/graphics/help/eng/gce.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gcf.xml [moved from scilab/modules/graphics/help/eng/gcf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gda.xml [moved from scilab/modules/graphics/help/eng/gda.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gdf.xml [moved from scilab/modules/graphics/help/eng/gdf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/genfac3d.xml [moved from scilab/modules/graphics/help/eng/genfac3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/geom3d.xml [moved from scilab/modules/graphics/help/eng/geom3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/get.xml [moved from scilab/modules/graphics/help/eng/get.xml with 100% similarity]
scilab/modules/graphics2/help/eng/getcolor.xml [moved from scilab/modules/graphics/help/eng/getcolor.xml with 100% similarity]
scilab/modules/graphics2/help/eng/getfont.xml [moved from scilab/modules/graphics/help/eng/getfont.xml with 100% similarity]
scilab/modules/graphics2/help/eng/getlinestyle.xml [moved from scilab/modules/graphics/help/eng/getlinestyle.xml with 100% similarity]
scilab/modules/graphics2/help/eng/getmark.xml [moved from scilab/modules/graphics/help/eng/getmark.xml with 100% similarity]
scilab/modules/graphics2/help/eng/getsymbol.xml [moved from scilab/modules/graphics/help/eng/getsymbol.xml with 100% similarity]
scilab/modules/graphics2/help/eng/glue.xml [moved from scilab/modules/graphics/help/eng/glue.xml with 100% similarity]
scilab/modules/graphics2/help/eng/gr_menu.xml [moved from scilab/modules/graphics/help/eng/gr_menu.xml with 100% similarity]
scilab/modules/graphics2/help/eng/graduate.xml [moved from scilab/modules/graphics/help/eng/graduate.xml with 100% similarity]
scilab/modules/graphics2/help/eng/graphics_entities.xml [moved from scilab/modules/graphics/help/eng/graphics_entities.xml with 100% similarity]
scilab/modules/graphics2/help/eng/graycolormap.xml [moved from scilab/modules/graphics/help/eng/graycolormap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/grayplot.xml [moved from scilab/modules/graphics/help/eng/grayplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/grayplot_properties.xml [moved from scilab/modules/graphics/help/eng/grayplot_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/graypolarplot.xml [moved from scilab/modules/graphics/help/eng/graypolarplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/helpbuildereng.sce [moved from scilab/modules/graphics/help/eng/helpbuildereng.sce with 100% similarity]
scilab/modules/graphics2/help/eng/hist3d.xml [moved from scilab/modules/graphics/help/eng/hist3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/histplot.xml [moved from scilab/modules/graphics/help/eng/histplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/hotcolormap.xml [moved from scilab/modules/graphics/help/eng/hotcolormap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/hsv2rgb.xml [moved from scilab/modules/graphics/help/eng/hsv2rgb.xml with 100% similarity]
scilab/modules/graphics2/help/eng/hsvcolormap.xml [moved from scilab/modules/graphics/help/eng/hsvcolormap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/isoview.xml [moved from scilab/modules/graphics/help/eng/isoview.xml with 100% similarity]
scilab/modules/graphics2/help/eng/jetcolormap.xml [moved from scilab/modules/graphics/help/eng/jetcolormap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/label_properties.xml [moved from scilab/modules/graphics/help/eng/label_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/legend.xml [moved from scilab/modules/graphics/help/eng/legend.xml with 100% similarity]
scilab/modules/graphics2/help/eng/legend_properties.xml [moved from scilab/modules/graphics/help/eng/legend_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/legends.xml [moved from scilab/modules/graphics/help/eng/legends.xml with 100% similarity]
scilab/modules/graphics2/help/eng/loadplots.xml [moved from scilab/modules/graphics/help/eng/loadplots.xml with 100% similarity]
scilab/modules/graphics2/help/eng/locate.xml [moved from scilab/modules/graphics/help/eng/locate.xml with 100% similarity]
scilab/modules/graphics2/help/eng/m_circle.xml [moved from scilab/modules/graphics/help/eng/m_circle.xml with 100% similarity]
scilab/modules/graphics2/help/eng/mesh.xml [moved from scilab/modules/graphics/help/eng/mesh.xml with 100% similarity]
scilab/modules/graphics2/help/eng/milk_drop.xml [moved from scilab/modules/graphics/help/eng/milk_drop.xml with 100% similarity]
scilab/modules/graphics2/help/eng/move.xml [moved from scilab/modules/graphics/help/eng/move.xml with 100% similarity]
scilab/modules/graphics2/help/eng/name2rgb.xml [moved from scilab/modules/graphics/help/eng/name2rgb.xml with 100% similarity]
scilab/modules/graphics2/help/eng/newaxes.xml [moved from scilab/modules/graphics/help/eng/newaxes.xml with 100% similarity]
scilab/modules/graphics2/help/eng/nf3d.xml [moved from scilab/modules/graphics/help/eng/nf3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/nyquist.xml [moved from scilab/modules/graphics/help/eng/nyquist.xml with 100% similarity]
scilab/modules/graphics2/help/eng/object_editor.xml [moved from scilab/modules/graphics/help/eng/object_editor.xml with 100% similarity]
scilab/modules/graphics2/help/eng/oldplot.xml [moved from scilab/modules/graphics/help/eng/oldplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/param3d.xml [moved from scilab/modules/graphics/help/eng/param3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/param3d1.xml [moved from scilab/modules/graphics/help/eng/param3d1.xml with 100% similarity]
scilab/modules/graphics2/help/eng/param3d_properties.xml [moved from scilab/modules/graphics/help/eng/param3d_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/paramfplot2d.xml [moved from scilab/modules/graphics/help/eng/paramfplot2d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/pie.xml [moved from scilab/modules/graphics/help/eng/pie.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot.xml [moved from scilab/modules/graphics/help/eng/plot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot2d.xml [moved from scilab/modules/graphics/help/eng/plot2d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot2d1.xml [moved from scilab/modules/graphics/help/eng/plot2d1.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot2d2.xml [moved from scilab/modules/graphics/help/eng/plot2d2.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot2d3.xml [moved from scilab/modules/graphics/help/eng/plot2d3.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot2d4.xml [moved from scilab/modules/graphics/help/eng/plot2d4.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot2d_old_version.xml [moved from scilab/modules/graphics/help/eng/plot2d_old_version.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot3d.xml [moved from scilab/modules/graphics/help/eng/plot3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot3d1.xml [moved from scilab/modules/graphics/help/eng/plot3d1.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot3d2.xml [moved from scilab/modules/graphics/help/eng/plot3d2.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot3d3.xml [moved from scilab/modules/graphics/help/eng/plot3d3.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plot3d_old_version.xml [moved from scilab/modules/graphics/help/eng/plot3d_old_version.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plotframe.xml [moved from scilab/modules/graphics/help/eng/plotframe.xml with 100% similarity]
scilab/modules/graphics2/help/eng/plzr.xml [moved from scilab/modules/graphics/help/eng/plzr.xml with 100% similarity]
scilab/modules/graphics2/help/eng/polarplot.xml [moved from scilab/modules/graphics/help/eng/polarplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/polyline_properties.xml [moved from scilab/modules/graphics/help/eng/polyline_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/printing.xml [moved from scilab/modules/graphics/help/eng/printing.xml with 100% similarity]
scilab/modules/graphics2/help/eng/rectangle_properties.xml [moved from scilab/modules/graphics/help/eng/rectangle_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/relocate_handle.xml [moved from scilab/modules/graphics/help/eng/relocate_handle.xml with 100% similarity]
scilab/modules/graphics2/help/eng/replot.xml [moved from scilab/modules/graphics/help/eng/replot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/rgb2name.xml [moved from scilab/modules/graphics/help/eng/rgb2name.xml with 100% similarity]
scilab/modules/graphics2/help/eng/rotate.xml [moved from scilab/modules/graphics/help/eng/rotate.xml with 100% similarity]
scilab/modules/graphics2/help/eng/rubberbox.xml [moved from scilab/modules/graphics/help/eng/rubberbox.xml with 100% similarity]
scilab/modules/graphics2/help/eng/sca.xml [moved from scilab/modules/graphics/help/eng/sca.xml with 100% similarity]
scilab/modules/graphics2/help/eng/scaling.xml [moved from scilab/modules/graphics/help/eng/scaling.xml with 100% similarity]
scilab/modules/graphics2/help/eng/scf.xml [moved from scilab/modules/graphics/help/eng/scf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/sd2sci.xml [moved from scilab/modules/graphics/help/eng/sd2sci.xml with 100% similarity]
scilab/modules/graphics2/help/eng/sda.xml [moved from scilab/modules/graphics/help/eng/sda.xml with 100% similarity]
scilab/modules/graphics2/help/eng/sdf.xml [moved from scilab/modules/graphics/help/eng/sdf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/secto3d.xml [moved from scilab/modules/graphics/help/eng/secto3d.xml with 100% similarity]
scilab/modules/graphics2/help/eng/segs_properties.xml [moved from scilab/modules/graphics/help/eng/segs_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/set.xml [moved from scilab/modules/graphics/help/eng/set.xml with 100% similarity]
scilab/modules/graphics2/help/eng/set_posfig_dim.xml [moved from scilab/modules/graphics/help/eng/set_posfig_dim.xml with 100% similarity]
scilab/modules/graphics2/help/eng/sgrid.xml [moved from scilab/modules/graphics/help/eng/sgrid.xml with 100% similarity]
scilab/modules/graphics2/help/eng/show_pixmap.xml [moved from scilab/modules/graphics/help/eng/show_pixmap.xml with 100% similarity]
scilab/modules/graphics2/help/eng/square.xml [moved from scilab/modules/graphics/help/eng/square.xml with 100% similarity]
scilab/modules/graphics2/help/eng/stringbox.xml [moved from scilab/modules/graphics/help/eng/stringbox.xml with 100% similarity]
scilab/modules/graphics2/help/eng/subplot.xml [moved from scilab/modules/graphics/help/eng/subplot.xml with 100% similarity]
scilab/modules/graphics2/help/eng/surf.xml [moved from scilab/modules/graphics/help/eng/surf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/surface_properties.xml [moved from scilab/modules/graphics/help/eng/surface_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/swap_handles.xml [moved from scilab/modules/graphics/help/eng/swap_handles.xml with 100% similarity]
scilab/modules/graphics2/help/eng/text_properties.xml [moved from scilab/modules/graphics/help/eng/text_properties.xml with 100% similarity]
scilab/modules/graphics2/help/eng/title.xml [moved from scilab/modules/graphics/help/eng/title.xml with 100% similarity]
scilab/modules/graphics2/help/eng/titlepage.xml [moved from scilab/modules/graphics/help/eng/titlepage.xml with 100% similarity]
scilab/modules/graphics2/help/eng/twinkle.xml [moved from scilab/modules/graphics/help/eng/twinkle.xml with 100% similarity]
scilab/modules/graphics2/help/eng/unglue.xml [moved from scilab/modules/graphics/help/eng/unglue.xml with 100% similarity]
scilab/modules/graphics2/help/eng/unzoom.xml [moved from scilab/modules/graphics/help/eng/unzoom.xml with 100% similarity]
scilab/modules/graphics2/help/eng/winsid.xml [moved from scilab/modules/graphics/help/eng/winsid.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xarc.xml [moved from scilab/modules/graphics/help/eng/xarc.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xarcs.xml [moved from scilab/modules/graphics/help/eng/xarcs.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xarrows.xml [moved from scilab/modules/graphics/help/eng/xarrows.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xaxis.xml [moved from scilab/modules/graphics/help/eng/xaxis.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xbasc.xml [moved from scilab/modules/graphics/help/eng/xbasc.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xbasimp.xml [moved from scilab/modules/graphics/help/eng/xbasimp.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xbasr.xml [moved from scilab/modules/graphics/help/eng/xbasr.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xchange.xml [moved from scilab/modules/graphics/help/eng/xchange.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xclea.xml [moved from scilab/modules/graphics/help/eng/xclea.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xclear.xml [moved from scilab/modules/graphics/help/eng/xclear.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xclick.xml [moved from scilab/modules/graphics/help/eng/xclick.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xclip.xml [moved from scilab/modules/graphics/help/eng/xclip.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xdel.xml [moved from scilab/modules/graphics/help/eng/xdel.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xend.xml [moved from scilab/modules/graphics/help/eng/xend.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xfarc.xml [moved from scilab/modules/graphics/help/eng/xfarc.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xfarcs.xml [moved from scilab/modules/graphics/help/eng/xfarcs.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xfpoly.xml [moved from scilab/modules/graphics/help/eng/xfpoly.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xfpolys.xml [moved from scilab/modules/graphics/help/eng/xfpolys.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xfrect.xml [moved from scilab/modules/graphics/help/eng/xfrect.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xget.xml [moved from scilab/modules/graphics/help/eng/xget.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xgetech.xml [moved from scilab/modules/graphics/help/eng/xgetech.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xgetmouse.xml [moved from scilab/modules/graphics/help/eng/xgetmouse.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xgraduate.xml [moved from scilab/modules/graphics/help/eng/xgraduate.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xgrid.xml [moved from scilab/modules/graphics/help/eng/xgrid.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xinfo.xml [moved from scilab/modules/graphics/help/eng/xinfo.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xinit.xml [moved from scilab/modules/graphics/help/eng/xinit.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xlfont.xml [moved from scilab/modules/graphics/help/eng/xlfont.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xload.xml [moved from scilab/modules/graphics/help/eng/xload.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xname.xml [moved from scilab/modules/graphics/help/eng/xname.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xnumb.xml [moved from scilab/modules/graphics/help/eng/xnumb.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xpause.xml [moved from scilab/modules/graphics/help/eng/xpause.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xpoly.xml [moved from scilab/modules/graphics/help/eng/xpoly.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xpolys.xml [moved from scilab/modules/graphics/help/eng/xpolys.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xrect.xml [moved from scilab/modules/graphics/help/eng/xrect.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xrects.xml [moved from scilab/modules/graphics/help/eng/xrects.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xrpoly.xml [moved from scilab/modules/graphics/help/eng/xrpoly.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2bmp.xml [moved from scilab/modules/graphics/help/eng/xs2bmp.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2emf.xml [moved from scilab/modules/graphics/help/eng/xs2emf.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2eps.xml [moved from scilab/modules/graphics/help/eng/xs2eps.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2fig.xml [moved from scilab/modules/graphics/help/eng/xs2fig.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2gif.xml [moved from scilab/modules/graphics/help/eng/xs2gif.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2ppm.xml [moved from scilab/modules/graphics/help/eng/xs2ppm.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xs2ps.xml [moved from scilab/modules/graphics/help/eng/xs2ps.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xsave.xml [moved from scilab/modules/graphics/help/eng/xsave.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xsegs.xml [moved from scilab/modules/graphics/help/eng/xsegs.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xselect.xml [moved from scilab/modules/graphics/help/eng/xselect.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xset.xml [moved from scilab/modules/graphics/help/eng/xset.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xsetech.xml [moved from scilab/modules/graphics/help/eng/xsetech.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xsetm.xml [moved from scilab/modules/graphics/help/eng/xsetm.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xstring.xml [moved from scilab/modules/graphics/help/eng/xstring.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xstringb.xml [moved from scilab/modules/graphics/help/eng/xstringb.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xstringl.xml [moved from scilab/modules/graphics/help/eng/xstringl.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xtape.xml [moved from scilab/modules/graphics/help/eng/xtape.xml with 100% similarity]
scilab/modules/graphics2/help/eng/xtitle.xml [moved from scilab/modules/graphics/help/eng/xtitle.xml with 100% similarity]
scilab/modules/graphics2/help/eng/zgrid.xml [moved from scilab/modules/graphics/help/eng/zgrid.xml with 100% similarity]
scilab/modules/graphics2/help/eng/zoom_rect.xml [moved from scilab/modules/graphics/help/eng/zoom_rect.xml with 100% similarity]
scilab/modules/graphics2/help/fr/Graphics.xml [moved from scilab/modules/graphics/help/fr/Graphics.xml with 100% similarity]
scilab/modules/graphics2/help/fr/addcolor.xml [moved from scilab/modules/graphics/help/fr/addcolor.xml with 100% similarity]
scilab/modules/graphics2/help/fr/alufunctions.xml [moved from scilab/modules/graphics/help/fr/alufunctions.xml with 100% similarity]
scilab/modules/graphics2/help/fr/bar.xml [moved from scilab/modules/graphics/help/fr/bar.xml with 100% similarity]
scilab/modules/graphics2/help/fr/barh.xml [moved from scilab/modules/graphics/help/fr/barh.xml with 100% similarity]
scilab/modules/graphics2/help/fr/barhomogenize.xml [moved from scilab/modules/graphics/help/fr/barhomogenize.xml with 100% similarity]
scilab/modules/graphics2/help/fr/chart.xml [moved from scilab/modules/graphics/help/fr/chart.xml with 100% similarity]
scilab/modules/graphics2/help/fr/contour2di.xml [moved from scilab/modules/graphics/help/fr/contour2di.xml with 100% similarity]
scilab/modules/graphics2/help/fr/contourf.xml [moved from scilab/modules/graphics/help/fr/contourf.xml with 100% similarity]
scilab/modules/graphics2/help/fr/dragrect.xml [moved from scilab/modules/graphics/help/fr/dragrect.xml with 100% similarity]
scilab/modules/graphics2/help/fr/drawaxis.xml [moved from scilab/modules/graphics/help/fr/drawaxis.xml with 100% similarity]
scilab/modules/graphics2/help/fr/edit_curv.xml [moved from scilab/modules/graphics/help/fr/edit_curv.xml with 100% similarity]
scilab/modules/graphics2/help/fr/errbar.xml [moved from scilab/modules/graphics/help/fr/errbar.xml with 100% similarity]
scilab/modules/graphics2/help/fr/eval3d.xml [moved from scilab/modules/graphics/help/fr/eval3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/eval3dp.xml [moved from scilab/modules/graphics/help/fr/eval3dp.xml with 100% similarity]
scilab/modules/graphics2/help/fr/fac3d.xml [moved from scilab/modules/graphics/help/fr/fac3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/fec.xml [moved from scilab/modules/graphics/help/fr/fec.xml with 100% similarity]
scilab/modules/graphics2/help/fr/fgrayplot.xml [moved from scilab/modules/graphics/help/fr/fgrayplot.xml with 100% similarity]
scilab/modules/graphics2/help/fr/genfac3d.xml [moved from scilab/modules/graphics/help/fr/genfac3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/geom3d.xml [moved from scilab/modules/graphics/help/fr/geom3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/getsymbol.xml [moved from scilab/modules/graphics/help/fr/getsymbol.xml with 100% similarity]
scilab/modules/graphics2/help/fr/gr_menu.xml [moved from scilab/modules/graphics/help/fr/gr_menu.xml with 100% similarity]
scilab/modules/graphics2/help/fr/graduate.xml [moved from scilab/modules/graphics/help/fr/graduate.xml with 100% similarity]
scilab/modules/graphics2/help/fr/helpbuilderfr.sce [moved from scilab/modules/graphics/help/fr/helpbuilderfr.sce with 100% similarity]
scilab/modules/graphics2/help/fr/hist3d.xml [moved from scilab/modules/graphics/help/fr/hist3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/histplot.xml [moved from scilab/modules/graphics/help/fr/histplot.xml with 100% similarity]
scilab/modules/graphics2/help/fr/legends.xml [moved from scilab/modules/graphics/help/fr/legends.xml with 100% similarity]
scilab/modules/graphics2/help/fr/locate.xml [moved from scilab/modules/graphics/help/fr/locate.xml with 100% similarity]
scilab/modules/graphics2/help/fr/milk_drop.xml [moved from scilab/modules/graphics/help/fr/milk_drop.xml with 100% similarity]
scilab/modules/graphics2/help/fr/nf3d.xml [moved from scilab/modules/graphics/help/fr/nf3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/object_editor.xml [moved from scilab/modules/graphics/help/fr/object_editor.xml with 100% similarity]
scilab/modules/graphics2/help/fr/paramfplot2d.xml [moved from scilab/modules/graphics/help/fr/paramfplot2d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/pie.xml [moved from scilab/modules/graphics/help/fr/pie.xml with 100% similarity]
scilab/modules/graphics2/help/fr/plotframe.xml [moved from scilab/modules/graphics/help/fr/plotframe.xml with 100% similarity]
scilab/modules/graphics2/help/fr/printing.xml [moved from scilab/modules/graphics/help/fr/printing.xml with 100% similarity]
scilab/modules/graphics2/help/fr/relocate_handle.xml [moved from scilab/modules/graphics/help/fr/relocate_handle.xml with 100% similarity]
scilab/modules/graphics2/help/fr/replot.xml [moved from scilab/modules/graphics/help/fr/replot.xml with 100% similarity]
scilab/modules/graphics2/help/fr/rotate.xml [moved from scilab/modules/graphics/help/fr/rotate.xml with 100% similarity]
scilab/modules/graphics2/help/fr/scaling.xml [moved from scilab/modules/graphics/help/fr/scaling.xml with 100% similarity]
scilab/modules/graphics2/help/fr/sd2sci.xml [moved from scilab/modules/graphics/help/fr/sd2sci.xml with 100% similarity]
scilab/modules/graphics2/help/fr/secto3d.xml [moved from scilab/modules/graphics/help/fr/secto3d.xml with 100% similarity]
scilab/modules/graphics2/help/fr/square.xml [moved from scilab/modules/graphics/help/fr/square.xml with 100% similarity]
scilab/modules/graphics2/help/fr/stringbox.xml [moved from scilab/modules/graphics/help/fr/stringbox.xml with 100% similarity]
scilab/modules/graphics2/help/fr/subplot.xml [moved from scilab/modules/graphics/help/fr/subplot.xml with 100% similarity]
scilab/modules/graphics2/help/fr/swap_handles.xml [moved from scilab/modules/graphics/help/fr/swap_handles.xml with 100% similarity]
scilab/modules/graphics2/help/fr/titlepage.xml [moved from scilab/modules/graphics/help/fr/titlepage.xml with 100% similarity]
scilab/modules/graphics2/help/fr/winsid.xml [moved from scilab/modules/graphics/help/fr/winsid.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xarc.xml [moved from scilab/modules/graphics/help/fr/xarc.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xarcs.xml [moved from scilab/modules/graphics/help/fr/xarcs.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xarrows.xml [moved from scilab/modules/graphics/help/fr/xarrows.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xaxis.xml [moved from scilab/modules/graphics/help/fr/xaxis.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xbasc.xml [moved from scilab/modules/graphics/help/fr/xbasc.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xbasimp.xml [moved from scilab/modules/graphics/help/fr/xbasimp.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xbasr.xml [moved from scilab/modules/graphics/help/fr/xbasr.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xchange.xml [moved from scilab/modules/graphics/help/fr/xchange.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xclea.xml [moved from scilab/modules/graphics/help/fr/xclea.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xclear.xml [moved from scilab/modules/graphics/help/fr/xclear.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xclick.xml [moved from scilab/modules/graphics/help/fr/xclick.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xclip.xml [moved from scilab/modules/graphics/help/fr/xclip.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xdel.xml [moved from scilab/modules/graphics/help/fr/xdel.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xend.xml [moved from scilab/modules/graphics/help/fr/xend.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xfarc.xml [moved from scilab/modules/graphics/help/fr/xfarc.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xfarcs.xml [moved from scilab/modules/graphics/help/fr/xfarcs.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xfpoly.xml [moved from scilab/modules/graphics/help/fr/xfpoly.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xfrect.xml [moved from scilab/modules/graphics/help/fr/xfrect.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xgetech.xml [moved from scilab/modules/graphics/help/fr/xgetech.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xgraduate.xml [moved from scilab/modules/graphics/help/fr/xgraduate.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xgrid.xml [moved from scilab/modules/graphics/help/fr/xgrid.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xinfo.xml [moved from scilab/modules/graphics/help/fr/xinfo.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xinit.xml [moved from scilab/modules/graphics/help/fr/xinit.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xname.xml [moved from scilab/modules/graphics/help/fr/xname.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xnumb.xml [moved from scilab/modules/graphics/help/fr/xnumb.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xpause.xml [moved from scilab/modules/graphics/help/fr/xpause.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xpoly.xml [moved from scilab/modules/graphics/help/fr/xpoly.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xpolys.xml [moved from scilab/modules/graphics/help/fr/xpolys.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xrect.xml [moved from scilab/modules/graphics/help/fr/xrect.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xrects.xml [moved from scilab/modules/graphics/help/fr/xrects.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xrpoly.xml [moved from scilab/modules/graphics/help/fr/xrpoly.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xsegs.xml [moved from scilab/modules/graphics/help/fr/xsegs.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xselect.xml [moved from scilab/modules/graphics/help/fr/xselect.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xset.xml [moved from scilab/modules/graphics/help/fr/xset.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xsetech.xml [moved from scilab/modules/graphics/help/fr/xsetech.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xsetm.xml [moved from scilab/modules/graphics/help/fr/xsetm.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xstring.xml [moved from scilab/modules/graphics/help/fr/xstring.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xstringb.xml [moved from scilab/modules/graphics/help/fr/xstringb.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xstringl.xml [moved from scilab/modules/graphics/help/fr/xstringl.xml with 100% similarity]
scilab/modules/graphics2/help/fr/xtape.xml [moved from scilab/modules/graphics/help/fr/xtape.xml with 100% similarity]
scilab/modules/graphics2/help/helpbuilder.sce [moved from scilab/modules/graphics/help/helpbuilder.sce with 100% similarity]
scilab/modules/graphics2/intcommongraphics.h [new file with mode: 0644]
scilab/modules/graphics2/intgget.c [new file with mode: 0644]
scilab/modules/graphics2/intgget.h [new file with mode: 0644]
scilab/modules/graphics2/intgset.c [new file with mode: 0644]
scilab/modules/graphics2/intgset.h [new file with mode: 0644]
scilab/modules/graphics2/licence.txt [moved from scilab/modules/graphics/licence.txt with 100% similarity]
scilab/modules/graphics2/macros/%h_copy.sci [moved from scilab/modules/graphics/macros/%h_copy.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_delete.sci [moved from scilab/modules/graphics/macros/%h_delete.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_draw.sci [moved from scilab/modules/graphics/macros/%h_draw.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_e.sci [moved from scilab/modules/graphics/macros/%h_e.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_get.sci [moved from scilab/modules/graphics/macros/%h_get.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_load.sci [moved from scilab/modules/graphics/macros/%h_load.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_matrix.sci [moved from scilab/modules/graphics/macros/%h_matrix.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_p.sci [moved from scilab/modules/graphics/macros/%h_p.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_save.sci [moved from scilab/modules/graphics/macros/%h_save.sci with 100% similarity]
scilab/modules/graphics2/macros/%h_set.sci [moved from scilab/modules/graphics/macros/%h_set.sci with 100% similarity]
scilab/modules/graphics2/macros/%xload.sci [moved from scilab/modules/graphics/macros/%xload.sci with 100% similarity]
scilab/modules/graphics2/macros/%xsave.sci [moved from scilab/modules/graphics/macros/%xsave.sci with 100% similarity]
scilab/modules/graphics2/macros/Sfgrayplot.sci [moved from scilab/modules/graphics/macros/Sfgrayplot.sci with 100% similarity]
scilab/modules/graphics2/macros/Sgrayplot.sci [moved from scilab/modules/graphics/macros/Sgrayplot.sci with 100% similarity]
scilab/modules/graphics2/macros/TitleLabel.sci [moved from scilab/modules/graphics/macros/TitleLabel.sci with 100% similarity]
scilab/modules/graphics2/macros/addcolor.sci [moved from scilab/modules/graphics/macros/addcolor.sci with 100% similarity]
scilab/modules/graphics2/macros/bar.sci [moved from scilab/modules/graphics/macros/bar.sci with 100% similarity]
scilab/modules/graphics2/macros/barh.sci [moved from scilab/modules/graphics/macros/barh.sci with 100% similarity]
scilab/modules/graphics2/macros/barhomogenize.sci [moved from scilab/modules/graphics/macros/barhomogenize.sci with 100% similarity]
scilab/modules/graphics2/macros/black.sci [moved from scilab/modules/graphics/macros/black.sci with 100% similarity]
scilab/modules/graphics2/macros/bode.sci [moved from scilab/modules/graphics/macros/bode.sci with 100% similarity]
scilab/modules/graphics2/macros/buildmacros.sce [moved from scilab/modules/graphics/macros/buildmacros.sce with 100% similarity]
scilab/modules/graphics2/macros/chart.sci [moved from scilab/modules/graphics/macros/chart.sci with 100% similarity]
scilab/modules/graphics2/macros/check2dFun.sci [moved from scilab/modules/graphics/macros/check2dFun.sci with 100% similarity]
scilab/modules/graphics2/macros/checkXYPair.sci [moved from scilab/modules/graphics/macros/checkXYPair.sci with 100% similarity]
scilab/modules/graphics2/macros/clear_pixmap.sci [moved from scilab/modules/graphics/macros/clear_pixmap.sci with 100% similarity]
scilab/modules/graphics2/macros/clf.sci [moved from scilab/modules/graphics/macros/clf.sci with 100% similarity]
scilab/modules/graphics2/macros/color.sci [moved from scilab/modules/graphics/macros/color.sci with 100% similarity]
scilab/modules/graphics2/macros/colorbar.sci [moved from scilab/modules/graphics/macros/colorbar.sci with 100% similarity]
scilab/modules/graphics2/macros/colordef.sci [moved from scilab/modules/graphics/macros/colordef.sci with 100% similarity]
scilab/modules/graphics2/macros/contour.sci [moved from scilab/modules/graphics/macros/contour.sci with 100% similarity]
scilab/modules/graphics2/macros/contour2d.sci [moved from scilab/modules/graphics/macros/contour2d.sci with 100% similarity]
scilab/modules/graphics2/macros/contourf.sci [moved from scilab/modules/graphics/macros/contourf.sci with 100% similarity]
scilab/modules/graphics2/macros/dragrect.sci [moved from scilab/modules/graphics/macros/dragrect.sci with 100% similarity]
scilab/modules/graphics2/macros/edit_curv.sci [moved from scilab/modules/graphics/macros/edit_curv.sci with 100% similarity]
scilab/modules/graphics2/macros/errbar.sci [moved from scilab/modules/graphics/macros/errbar.sci with 100% similarity]
scilab/modules/graphics2/macros/eval3d.sci [moved from scilab/modules/graphics/macros/eval3d.sci with 100% similarity]
scilab/modules/graphics2/macros/eval3dp.sci [moved from scilab/modules/graphics/macros/eval3dp.sci with 100% similarity]
scilab/modules/graphics2/macros/evans.sci [moved from scilab/modules/graphics/macros/evans.sci with 100% similarity]
scilab/modules/graphics2/macros/fac3d.sci [moved from scilab/modules/graphics/macros/fac3d.sci with 100% similarity]
scilab/modules/graphics2/macros/fac3d1.sci [moved from scilab/modules/graphics/macros/fac3d1.sci with 100% similarity]
scilab/modules/graphics2/macros/fchamp.sci [moved from scilab/modules/graphics/macros/fchamp.sci with 100% similarity]
scilab/modules/graphics2/macros/fcontour.sci [moved from scilab/modules/graphics/macros/fcontour.sci with 100% similarity]
scilab/modules/graphics2/macros/fcontour2d.sci [moved from scilab/modules/graphics/macros/fcontour2d.sci with 100% similarity]
scilab/modules/graphics2/macros/fgrayplot.sci [moved from scilab/modules/graphics/macros/fgrayplot.sci with 100% similarity]
scilab/modules/graphics2/macros/fplot2d.sci [moved from scilab/modules/graphics/macros/fplot2d.sci with 100% similarity]
scilab/modules/graphics2/macros/fplot3d.sci [moved from scilab/modules/graphics/macros/fplot3d.sci with 100% similarity]
scilab/modules/graphics2/macros/fplot3d1.sci [moved from scilab/modules/graphics/macros/fplot3d1.sci with 100% similarity]
scilab/modules/graphics2/macros/gainplot.sci [moved from scilab/modules/graphics/macros/gainplot.sci with 100% similarity]
scilab/modules/graphics2/macros/gca.sci [moved from scilab/modules/graphics/macros/gca.sci with 100% similarity]
scilab/modules/graphics2/macros/gce.sci [moved from scilab/modules/graphics/macros/gce.sci with 100% similarity]
scilab/modules/graphics2/macros/gcf.sci [moved from scilab/modules/graphics/macros/gcf.sci with 100% similarity]
scilab/modules/graphics2/macros/gda.sci [moved from scilab/modules/graphics/macros/gda.sci with 100% similarity]
scilab/modules/graphics2/macros/gdf.sci [moved from scilab/modules/graphics/macros/gdf.sci with 100% similarity]
scilab/modules/graphics2/macros/ged.sci [moved from scilab/modules/graphics/macros/ged.sci with 100% similarity]
scilab/modules/graphics2/macros/ged_insert.sci [moved from scilab/modules/graphics/macros/ged_insert.sci with 100% similarity]
scilab/modules/graphics2/macros/genfac3d.sci [moved from scilab/modules/graphics/macros/genfac3d.sci with 100% similarity]
scilab/modules/graphics2/macros/getColorIndex.sci [moved from scilab/modules/graphics/macros/getColorIndex.sci with 100% similarity]
scilab/modules/graphics2/macros/getLineSpec.sci [moved from scilab/modules/graphics/macros/getLineSpec.sci with 100% similarity]
scilab/modules/graphics2/macros/getPlotPropertyName.sci [moved from scilab/modules/graphics/macros/getPlotPropertyName.sci with 100% similarity]
scilab/modules/graphics2/macros/getSurfPropertyName.sci [moved from scilab/modules/graphics/macros/getSurfPropertyName.sci with 100% similarity]
scilab/modules/graphics2/macros/getTitleLabelPropertyNam.sci [moved from scilab/modules/graphics/macros/getTitleLabelPropertyNam.sci with 100% similarity]
scilab/modules/graphics2/macros/getcolor.sci [moved from scilab/modules/graphics/macros/getcolor.sci with 100% similarity]
scilab/modules/graphics2/macros/getfont.sci [moved from scilab/modules/graphics/macros/getfont.sci with 100% similarity]
scilab/modules/graphics2/macros/getlinestyle.sci [moved from scilab/modules/graphics/macros/getlinestyle.sci with 100% similarity]
scilab/modules/graphics2/macros/getmark.sci [moved from scilab/modules/graphics/macros/getmark.sci with 100% similarity]
scilab/modules/graphics2/macros/getsymbol.sci [moved from scilab/modules/graphics/macros/getsymbol.sci with 100% similarity]
scilab/modules/graphics2/macros/ghdl2tree.sci [moved from scilab/modules/graphics/macros/ghdl2tree.sci with 100% similarity]
scilab/modules/graphics2/macros/ghdl_fields.sci [moved from scilab/modules/graphics/macros/ghdl_fields.sci with 100% similarity]
scilab/modules/graphics2/macros/gr_macros.sce [moved from scilab/modules/graphics/macros/gr_macros.sce with 100% similarity]
scilab/modules/graphics2/macros/gr_menu.sci [moved from scilab/modules/graphics/macros/gr_menu.sci with 100% similarity]
scilab/modules/graphics2/macros/graduate.sci [moved from scilab/modules/graphics/macros/graduate.sci with 100% similarity]
scilab/modules/graphics2/macros/graycolormap.sci [moved from scilab/modules/graphics/macros/graycolormap.sci with 100% similarity]
scilab/modules/graphics2/macros/graypolarplot.sci [moved from scilab/modules/graphics/macros/graypolarplot.sci with 100% similarity]
scilab/modules/graphics2/macros/hist3d.sci [moved from scilab/modules/graphics/macros/hist3d.sci with 100% similarity]
scilab/modules/graphics2/macros/histplot.sci [moved from scilab/modules/graphics/macros/histplot.sci with 100% similarity]
scilab/modules/graphics2/macros/hotcolormap.sci [moved from scilab/modules/graphics/macros/hotcolormap.sci with 100% similarity]
scilab/modules/graphics2/macros/hsv2rgb.sci [moved from scilab/modules/graphics/macros/hsv2rgb.sci with 100% similarity]
scilab/modules/graphics2/macros/hsvcolormap.sci [moved from scilab/modules/graphics/macros/hsvcolormap.sci with 100% similarity]
scilab/modules/graphics2/macros/isoview.sci [moved from scilab/modules/graphics/macros/isoview.sci with 100% similarity]
scilab/modules/graphics2/macros/jetcolormap.sci [moved from scilab/modules/graphics/macros/jetcolormap.sci with 100% similarity]
scilab/modules/graphics2/macros/legend.sci [moved from scilab/modules/graphics/macros/legend.sci with 100% similarity]
scilab/modules/graphics2/macros/legends.sci [moved from scilab/modules/graphics/macros/legends.sci with 100% similarity]
scilab/modules/graphics2/macros/loadplots.sci [moved from scilab/modules/graphics/macros/loadplots.sci with 100% similarity]
scilab/modules/graphics2/macros/locate.sci [moved from scilab/modules/graphics/macros/locate.sci with 100% similarity]
scilab/modules/graphics2/macros/m_circle.sci [moved from scilab/modules/graphics/macros/m_circle.sci with 100% similarity]
scilab/modules/graphics2/macros/mesh.sci [moved from scilab/modules/graphics/macros/mesh.sci with 100% similarity]
scilab/modules/graphics2/macros/milk_drop.sci [moved from scilab/modules/graphics/macros/milk_drop.sci with 100% similarity]
scilab/modules/graphics2/macros/name2rgb.sci [moved from scilab/modules/graphics/macros/name2rgb.sci with 100% similarity]
scilab/modules/graphics2/macros/nf3d.sci [moved from scilab/modules/graphics/macros/nf3d.sci with 100% similarity]
scilab/modules/graphics2/macros/nyquist.sci [moved from scilab/modules/graphics/macros/nyquist.sci with 100% similarity]
scilab/modules/graphics2/macros/oldplot.sci [moved from scilab/modules/graphics/macros/oldplot.sci with 100% similarity]
scilab/modules/graphics2/macros/paramfplot2d.sci [moved from scilab/modules/graphics/macros/paramfplot2d.sci with 100% similarity]
scilab/modules/graphics2/macros/pie.sci [moved from scilab/modules/graphics/macros/pie.sci with 100% similarity]
scilab/modules/graphics2/macros/plot.sci [moved from scilab/modules/graphics/macros/plot.sci with 100% similarity]
scilab/modules/graphics2/macros/plot3d2.sci [moved from scilab/modules/graphics/macros/plot3d2.sci with 100% similarity]
scilab/modules/graphics2/macros/plot3d3.sci [moved from scilab/modules/graphics/macros/plot3d3.sci with 100% similarity]
scilab/modules/graphics2/macros/plotframe.sci [moved from scilab/modules/graphics/macros/plotframe.sci with 100% similarity]
scilab/modules/graphics2/macros/plzr.sci [moved from scilab/modules/graphics/macros/plzr.sci with 100% similarity]
scilab/modules/graphics2/macros/polarplot.sci [moved from scilab/modules/graphics/macros/polarplot.sci with 100% similarity]
scilab/modules/graphics2/macros/replot.sci [moved from scilab/modules/graphics/macros/replot.sci with 100% similarity]
scilab/modules/graphics2/macros/rgb2name.sci [moved from scilab/modules/graphics/macros/rgb2name.sci with 100% similarity]
scilab/modules/graphics2/macros/rotate.sci [moved from scilab/modules/graphics/macros/rotate.sci with 100% similarity]
scilab/modules/graphics2/macros/rubberbox.sci [moved from scilab/modules/graphics/macros/rubberbox.sci with 100% similarity]
scilab/modules/graphics2/macros/sca.sci [moved from scilab/modules/graphics/macros/sca.sci with 100% similarity]
scilab/modules/graphics2/macros/scaling.sci [moved from scilab/modules/graphics/macros/scaling.sci with 100% similarity]
scilab/modules/graphics2/macros/scf.sci [moved from scilab/modules/graphics/macros/scf.sci with 100% similarity]
scilab/modules/graphics2/macros/sd2sci.sci [moved from scilab/modules/graphics/macros/sd2sci.sci with 100% similarity]
scilab/modules/graphics2/macros/sda.sci [moved from scilab/modules/graphics/macros/sda.sci with 100% similarity]
scilab/modules/graphics2/macros/sdf.sci [moved from scilab/modules/graphics/macros/sdf.sci with 100% similarity]
scilab/modules/graphics2/macros/secto3d.sci [moved from scilab/modules/graphics/macros/secto3d.sci with 100% similarity]
scilab/modules/graphics2/macros/setDefaultColor.sci [moved from scilab/modules/graphics/macros/setDefaultColor.sci with 100% similarity]
scilab/modules/graphics2/macros/setPlotProperty.sci [moved from scilab/modules/graphics/macros/setPlotProperty.sci with 100% similarity]
scilab/modules/graphics2/macros/setSurfProperty.sci [moved from scilab/modules/graphics/macros/setSurfProperty.sci with 100% similarity]
scilab/modules/graphics2/macros/setTitleLabelProperty.sci [moved from scilab/modules/graphics/macros/setTitleLabelProperty.sci with 100% similarity]
scilab/modules/graphics2/macros/sgrid.sci [moved from scilab/modules/graphics/macros/sgrid.sci with 100% similarity]
scilab/modules/graphics2/macros/show_pixmap.sci [moved from scilab/modules/graphics/macros/show_pixmap.sci with 100% similarity]
scilab/modules/graphics2/macros/square.sci [moved from scilab/modules/graphics/macros/square.sci with 100% similarity]
scilab/modules/graphics2/macros/stringbox.sci [moved from scilab/modules/graphics/macros/stringbox.sci with 100% similarity]
scilab/modules/graphics2/macros/subplot.sci [moved from scilab/modules/graphics/macros/subplot.sci with 100% similarity]
scilab/modules/graphics2/macros/surf.sci [moved from scilab/modules/graphics/macros/surf.sci with 100% similarity]
scilab/modules/graphics2/macros/title.sci [moved from scilab/modules/graphics/macros/title.sci with 100% similarity]
scilab/modules/graphics2/macros/titlepage.sci [moved from scilab/modules/graphics/macros/titlepage.sci with 100% similarity]
scilab/modules/graphics2/macros/twinkle.sci [moved from scilab/modules/graphics/macros/twinkle.sci with 100% similarity]
scilab/modules/graphics2/macros/xbasc.sci [moved from scilab/modules/graphics/macros/xbasc.sci with 100% similarity]
scilab/modules/graphics2/macros/xbasimp.sci [moved from scilab/modules/graphics/macros/xbasimp.sci with 100% similarity]
scilab/modules/graphics2/macros/xbasr.sci [moved from scilab/modules/graphics/macros/xbasr.sci with 100% similarity]
scilab/modules/graphics2/macros/xclear.sci [moved from scilab/modules/graphics/macros/xclear.sci with 100% similarity]
scilab/modules/graphics2/macros/xclip.sci [moved from scilab/modules/graphics/macros/xclip.sci with 100% similarity]
scilab/modules/graphics2/macros/xlabel.sci [moved from scilab/modules/graphics/macros/xlabel.sci with 100% similarity]
scilab/modules/graphics2/macros/xnumb.sci [moved from scilab/modules/graphics/macros/xnumb.sci with 100% similarity]
scilab/modules/graphics2/macros/xrpoly.sci [moved from scilab/modules/graphics/macros/xrpoly.sci with 100% similarity]
scilab/modules/graphics2/macros/xsetm.sci [moved from scilab/modules/graphics/macros/xsetm.sci with 100% similarity]
scilab/modules/graphics2/macros/ylabel.sci [moved from scilab/modules/graphics/macros/ylabel.sci with 100% similarity]
scilab/modules/graphics2/macros/zgrid.sci [moved from scilab/modules/graphics/macros/zgrid.sci with 100% similarity]
scilab/modules/graphics2/macros/zlabel.sci [moved from scilab/modules/graphics/macros/zlabel.sci with 100% similarity]
scilab/modules/graphics2/matdes.c [new file with mode: 0644]
scilab/modules/graphics2/matdes.h [new file with mode: 0644]
scilab/modules/graphics2/nues1.c [new file with mode: 0644]
scilab/modules/graphics2/paintop.h [new file with mode: 0644]
scilab/modules/graphics2/periFig.c [new file with mode: 0644]
scilab/modules/graphics2/periFig.h [new file with mode: 0644]
scilab/modules/graphics2/periGif.c [new file with mode: 0644]
scilab/modules/graphics2/periGif.h [new file with mode: 0644]
scilab/modules/graphics2/periMac.h [new file with mode: 0644]
scilab/modules/graphics2/periPos.c [new file with mode: 0644]
scilab/modules/graphics2/periPos.h [new file with mode: 0644]
scilab/modules/graphics2/periWin.c [new file with mode: 0644]
scilab/modules/graphics2/periWin.h [new file with mode: 0644]
scilab/modules/graphics2/periX11.c [new file with mode: 0644]
scilab/modules/graphics2/periX11.h [new file with mode: 0644]
scilab/modules/graphics2/qsort-char.c [new file with mode: 0644]
scilab/modules/graphics2/qsort-double.c [new file with mode: 0644]
scilab/modules/graphics2/qsort-int.c [new file with mode: 0644]
scilab/modules/graphics2/qsort-int16.c [new file with mode: 0644]
scilab/modules/graphics2/qsort-short.c [new file with mode: 0644]
scilab/modules/graphics2/qsort-string.c [new file with mode: 0644]
scilab/modules/graphics2/qsort.c [new file with mode: 0644]
scilab/modules/graphics2/readme.txt [moved from scilab/modules/graphics/readme.txt with 100% similarity]
scilab/modules/graphics2/resources.h [new file with mode: 0644]
scilab/modules/graphics2/sciCall.c [new file with mode: 0644]
scilab/modules/graphics2/sciMatrix.c [new file with mode: 0644]
scilab/modules/graphics2/sciMatrix.h [new file with mode: 0644]
scilab/modules/graphics2/scigraphic.h [new file with mode: 0644]
scilab/modules/graphics2/src/gd/Makefile [moved from scilab/modules/graphics/src/gd/Makefile with 100% similarity]
scilab/modules/graphics2/src/gd/bdftogd [moved from scilab/modules/graphics/src/gd/bdftogd with 100% similarity]
scilab/modules/graphics2/src/gd/bdftogd.c [moved from scilab/modules/graphics/src/gd/bdftogd.c with 100% similarity]
scilab/modules/graphics2/src/gd/demoin.gif [moved from scilab/modules/graphics/src/gd/demoin.gif with 100% similarity]
scilab/modules/graphics2/src/gd/gd.c [moved from scilab/modules/graphics/src/gd/gd.c with 100% similarity]
scilab/modules/graphics2/src/gd/gd.h [moved from scilab/modules/graphics/src/gd/gd.h with 100% similarity]
scilab/modules/graphics2/src/gd/gd.vcproj [moved from scilab/modules/graphics/src/gd/gd.vcproj with 100% similarity]
scilab/modules/graphics2/src/gd/gddemo.c [moved from scilab/modules/graphics/src/gd/gddemo.c with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontg.c [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontg.c with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontg.h [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontg.h with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontl.c [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontl.c with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontl.h [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontl.h with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontmb.c [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontmb.c with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontmb.h [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontmb.h with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfonts.c [moved from scilab/modules/graphics/src/gd/gdfonts/gdfonts.c with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfonts.h [moved from scilab/modules/graphics/src/gd/gdfonts/gdfonts.h with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontt.c [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontt.c with 100% similarity]
scilab/modules/graphics2/src/gd/gdfonts/gdfontt.h [moved from scilab/modules/graphics/src/gd/gdfonts/gdfontt.h with 100% similarity]
scilab/modules/graphics2/src/gd/giftogd.c [moved from scilab/modules/graphics/src/gd/giftogd.c with 100% similarity]
scilab/modules/graphics2/src/gd/index.html [moved from scilab/modules/graphics/src/gd/index.html with 100% similarity]
scilab/modules/graphics2/src/gd/mathmake.c [moved from scilab/modules/graphics/src/gd/mathmake.c with 100% similarity]
scilab/modules/graphics2/src/gd/mtables.c [moved from scilab/modules/graphics/src/gd/mtables.c with 100% similarity]
scilab/modules/graphics2/src/gd/readme [moved from scilab/modules/graphics/src/gd/readme with 100% similarity]
scilab/modules/graphics2/src/gd/readme.txt [moved from scilab/modules/graphics/src/gd/readme.txt with 100% similarity]
scilab/modules/graphics2/src/gd/webgif.c [moved from scilab/modules/graphics/src/gd/webgif.c with 100% similarity]
scilab/modules/graphics2/src/gd/xfonts.c [moved from scilab/modules/graphics/src/gd/xfonts.c with 100% similarity]
scilab/modules/graphics2/src/xdr/Makefile [moved from scilab/modules/graphics/src/xdr/Makefile with 100% similarity]
scilab/modules/graphics2/src/xdr/Makefile.inc [moved from scilab/modules/graphics/src/xdr/Makefile.inc with 100% similarity]
scilab/modules/graphics2/src/xdr/rpc/types.h [moved from scilab/modules/graphics/src/xdr/rpc/types.h with 100% similarity]
scilab/modules/graphics2/src/xdr/rpc/xdr.h [moved from scilab/modules/graphics/src/xdr/rpc/xdr.h with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr.3 [moved from scilab/modules/graphics/src/xdr/xdr.3 with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr.c [moved from scilab/modules/graphics/src/xdr/xdr.c with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr.vcproj [moved from scilab/modules/graphics/src/xdr/xdr.vcproj with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr_array.c [moved from scilab/modules/graphics/src/xdr/xdr_array.c with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr_float.c [moved from scilab/modules/graphics/src/xdr/xdr_float.c with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr_mem.c [moved from scilab/modules/graphics/src/xdr/xdr_mem.c with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr_rec.c [moved from scilab/modules/graphics/src/xdr/xdr_rec.c with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr_reference.c [moved from scilab/modules/graphics/src/xdr/xdr_reference.c with 100% similarity]
scilab/modules/graphics2/src/xdr/xdr_stdio.c [moved from scilab/modules/graphics/src/xdr/xdr_stdio.c with 100% similarity]
scilab/modules/graphics2/tcl/ged/Arc.tcl [moved from scilab/modules/graphics/tcl/ged/Arc.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Axes.tcl [moved from scilab/modules/graphics/tcl/ged/Axes.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Axis.tcl [moved from scilab/modules/graphics/tcl/ged/Axis.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Champ.tcl [moved from scilab/modules/graphics/tcl/ged/Champ.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Compound.tcl [moved from scilab/modules/graphics/tcl/ged/Compound.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Fac3d.tcl [moved from scilab/modules/graphics/tcl/ged/Fac3d.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Fec.tcl [moved from scilab/modules/graphics/tcl/ged/Fec.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Figure.tcl [moved from scilab/modules/graphics/tcl/ged/Figure.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Grayplot.tcl [moved from scilab/modules/graphics/tcl/ged/Grayplot.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Legend.tcl [moved from scilab/modules/graphics/tcl/ged/Legend.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Matplot.tcl [moved from scilab/modules/graphics/tcl/ged/Matplot.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/ObjectsBrowser.tcl [moved from scilab/modules/graphics/tcl/ged/ObjectsBrowser.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Plot3d.tcl [moved from scilab/modules/graphics/tcl/ged/Plot3d.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Polyline.tcl [moved from scilab/modules/graphics/tcl/ged/Polyline.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Rectangle.tcl [moved from scilab/modules/graphics/tcl/ged/Rectangle.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Segs.tcl [moved from scilab/modules/graphics/tcl/ged/Segs.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/Text.tcl [moved from scilab/modules/graphics/tcl/ged/Text.tcl with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/arc.gif [moved from scilab/modules/graphics/tcl/ged/images/arc.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/axes.gif [moved from scilab/modules/graphics/tcl/ged/images/axes.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/axis.gif [moved from scilab/modules/graphics/tcl/ged/images/axis.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/champ.gif [moved from scilab/modules/graphics/tcl/ged/images/champ.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/compound.gif [moved from scilab/modules/graphics/tcl/ged/images/compound.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/fac3d.gif [moved from scilab/modules/graphics/tcl/ged/images/fac3d.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/fec.gif [moved from scilab/modules/graphics/tcl/ged/images/fec.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/figure.gif [moved from scilab/modules/graphics/tcl/ged/images/figure.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/grayplot.gif [moved from scilab/modules/graphics/tcl/ged/images/grayplot.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/leaf.gif [moved from scilab/modules/graphics/tcl/ged/images/leaf.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/legend.gif [moved from scilab/modules/graphics/tcl/ged/images/legend.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/matplot.gif [moved from scilab/modules/graphics/tcl/ged/images/matplot.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/passwd.gif [moved from scilab/modules/graphics/tcl/ged/images/passwd.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/plot3d.gif [moved from scilab/modules/graphics/tcl/ged/images/plot3d.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/polyline.gif [moved from scilab/modules/graphics/tcl/ged/images/polyline.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/rectangle.gif [moved from scilab/modules/graphics/tcl/ged/images/rectangle.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/segs.gif [moved from scilab/modules/graphics/tcl/ged/images/segs.gif with 100% similarity]
scilab/modules/graphics2/tcl/ged/images/text.gif [moved from scilab/modules/graphics/tcl/ged/images/text.gif with 100% similarity]
scilab/modules/graphics2/w_rottext.c [new file with mode: 0644]
scilab/modules/graphics2/w_rottext.h [new file with mode: 0644]
scilab/routines/int/gifimg.c

index a888aaa..2a8cea6 100644 (file)
@@ -164,12 +164,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dumpexts", "tools\Dumpexts\
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "f2c", "libs\f2c\src\f2c.vcproj", "{7B77E45C-9E80-4DDA-A3C8-C6C8FEBAA190}"\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gd", "modules\graphics\src\gd\gd.vcproj", "{4C0B22D1-F74D-42DF-B90D-71CBC1B43DC4}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gd", "modules\graphics2\src\gd\gd.vcproj", "{4C0B22D1-F74D-42DF-B90D-71CBC1B43DC4}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {3170E4C2-1173-4264-A222-7EE8CCB3DDF7} = {3170E4C2-1173-4264-A222-7EE8CCB3DDF7}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "modules\graphics\graphics.vcproj", "{8CCDD3C2-B025-4A12-A986-1AA28D7C0C33}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "modules\graphics2\graphics.vcproj", "{8CCDD3C2-B025-4A12-A986-1AA28D7C0C33}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {3170E4C2-1173-4264-A222-7EE8CCB3DDF7} = {3170E4C2-1173-4264-A222-7EE8CCB3DDF7}\r
        EndProjectSection\r
@@ -323,7 +323,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wsci", "routines\wsci\wsci.
                {3170E4C2-1173-4264-A222-7EE8CCB3DDF7} = {3170E4C2-1173-4264-A222-7EE8CCB3DDF7}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xdr", "modules\graphics\src\xdr\xdr.vcproj", "{3396F078-1296-47EB-B817-78CB36265DD1}"\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xdr", "modules\graphics2\src\xdr\xdr.vcproj", "{3396F078-1296-47EB-B817-78CB36265DD1}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {3170E4C2-1173-4264-A222-7EE8CCB3DDF7} = {3170E4C2-1173-4264-A222-7EE8CCB3DDF7}\r
        EndProjectSection\r
diff --git a/scilab/modules/graphics2/Actions.c b/scilab/modules/graphics2/Actions.c
new file mode 100644 (file)
index 0000000..9809816
--- /dev/null
@@ -0,0 +1,514 @@
+/*------------------------------------------------------------------------
+ *    Graphic library
+ *    Copyright (C) 1998-2001 Enpc/Jean-Philippe Chancelier
+ *    jpc@cermics.enpc.fr 
+ --------------------------------------------------------------------------*/
+
+#include "Math.h"
+#include "Graphics.h" 
+#include "GetProperty.h"
+#include "SetProperty.h"
+#include "DrawObjects.h"
+
+extern int xinitxend_flag;
+
+/********************************************************
+ * the functions in this file are called from 
+ * callback ( see jpc_SGraph.c ) for the XWindow version 
+ * Nov 1998 : we must be sure that during the evaluation of 
+ *            scig_xxx an other function scig_yyy won't be 
+ *            run. This is possible since during the execution of 
+ *            one scig_xxx function a sciprint can be performed 
+ *            and it will lead to an event check which can 
+ *            produce a call to an other scig_yyy function 
+ *            flag scig_buzy  is used to check for that 
+ *            
+ ********************************************************/
+extern int sciSwitchWindow  __PARAMS((int *winnum));/* NG */
+extern void sciGetIdFigure __PARAMS((int *vect, int *id, int *iflag));/* NG */
+#if !defined(_MSC_VER)
+extern int WithBackingStore();
+#endif
+static int scig_buzy = 0;
+
+/********************************************************
+ * A handler which can be dynamically set to custiomize 
+ * action of scig_xxx functions 
+ ********************************************************/
+
+int scig_handler_none(int win_num) {return win_num;};
+
+Scig_handler scig_handler = scig_handler_none;
+
+Scig_handler set_scig_handler(Scig_handler f)
+{
+  Scig_handler old = scig_handler;
+  scig_handler = f;
+  return old;
+}
+
+void reset_scig_handler(void)
+{
+  scig_handler = scig_handler_none;
+}
+
+/********************************************************
+ * Basic Replay : redraw recorded graphics 
+ ********************************************************/
+
+void scig_replay(integer win_num)
+{
+  /* Modification Allan CORNET Mai 2004 */
+  integer verb=0,cur,pix,na,backing;
+  char name[4];
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","pixmap",&verb,&pix,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+
+#if defined(_MSC_VER)
+  backing = 0;
+#else
+  backing = WithBackingStore();
+#endif
+  if (backing) 
+    {
+      C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+    }
+  else 
+    {
+      if (pix == 0) 
+       {
+         if ( (GetDriver()) != 'R') C2F(SetDriver)("Rec",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+         C2F(dr)("xclear","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+         if (version_flag() == 0)
+           {
+             sciRedrawFigure();
+             C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+           }
+         else C2F(dr)("xreplay","v",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+       }
+      else
+       {
+         C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+       }
+    }
+
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  scig_buzy = 0;
+}
+
+
+/********************************************************
+ * Basic Replay : expose graphics i.e 
+ * if we have a pixmap we can perform a wshow 
+ * else we perform a sgig_replay 
+ ********************************************************/
+
+void scig_expose(integer win_num)
+{
+  integer verb=0,cur,pix,na,backing;
+  char name[4];
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","pixmap",&verb,&pix,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+
+#if defined(_MSC_VER)
+  backing = 0;
+#else
+  backing = WithBackingStore();
+#endif
+  if (backing) 
+    {
+      /* only used whith X11 were pixmap mode can be used for backing store 
+       * we are here in a case where the pixmap is used for backing store 
+       */
+      C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+    }
+  else 
+    {
+      if (pix == 0) 
+       {
+         if ( (GetDriver()) != 'R') 
+           C2F(SetDriver)("Rec",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+         C2F(dr)("xclear","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+         if (version_flag() == 0)
+           {
+             sciRedrawFigure();
+             C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+           }
+         else 
+           C2F(dr)("xreplay","v",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+       }
+      else
+       {
+         C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+       }
+    }
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  scig_buzy = 0;
+}
+
+/********************************************************
+ * Redraw graphic window win_num  after resizing 
+ ********************************************************/
+
+void scig_resize(integer win_num)
+{
+  integer verb=0,cur,na,pix,backing;
+  char name[4];
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  if ( (GetDriver()) !='R') 
+    C2F(SetDriver)("Rec",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","pixmap",&verb,&pix,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  CPixmapResize1();
+  C2F(dr)("xclear","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+#if defined(_MSC_VER)
+  backing = 0;
+#else
+  backing = WithBackingStore();
+#endif
+  if (version_flag() == 0) {
+      sciRedrawFigure();
+/*       if (pix==1) C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);     */
+      if (backing && pix!=1 ) C2F(dr)("xset","wshow",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);    
+    }
+  else 
+    C2F(dr)("xreplay","v",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  scig_buzy = 0;
+}
+
+/********************************************************
+ * Just resize a pixmap (win95 only)
+ ********************************************************/
+
+void scig_resize_pixmap(integer win_num)
+{
+  integer verb=0,cur,na;
+  char name[4];
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(SetDriver)("Int",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  CPixmapResize1();
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  scig_buzy = 0;
+}
+
+
+/********************************************************
+ * clear window 
+ ********************************************************/
+
+void  scig_erase(integer win_num)
+{
+  integer verb=0,cur,na;
+  char name[4];
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  if ( (GetDriver()) !='R') 
+    C2F(SetDriver)("Rec",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  if (version_flag() == 0) sciXbasc(); /*NG */
+  C2F(dr)("xclear","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xstart","v",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  scig_buzy = 0;
+}
+
+/********************************************************
+ * send recorded graphics to file bufname in ``driver'' syntax ( Pos or Fig )
+ * win_num : the number of the window,
+ * colored : 1 if color is wanted
+ * bufname : string the name of the file 
+ * driver : driver for code generation 
+ ********************************************************/
+
+int scig_tops(integer win_num, integer colored, char *bufname, char *driver)
+{
+  char name[4];
+  integer zero=0,un=1,ierr;
+  integer verb=0,cur,na,screenc;
+  int save_xinitxend_flag = xinitxend_flag;
+
+  if ( scig_buzy  == 1 ) return 0;
+  ierr = 0;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,5L,7L);  
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,5L,7L);
+  if (version_flag() == 0) {
+    sciPointObj *curFig=sciGetCurrentFigure ();
+    integer bg;
+    
+    if(curFig == (sciPointObj *) NULL){
+      Scierror(999,"No current graphic window %d found for exporting to %s\r\n",win_num,driver);
+      C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      /* to force a reset in the graphic scales for the graphic window number cur */
+      if(GetDriverId() == 1) SwitchWindow(&cur);
+      scig_buzy = 0;
+      return ierr;
+    }
+    
+    C2F(dr)("xget","background",&verb,&bg,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,5L,11L);
+    /* Rajout F.Leray 06.04.04 */
+    bg = sciGetBackground(curFig);
+    C2F(dr)("xsetdr",driver,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    /* xinit from screen (for the colormap definition) */
+    C2F(dr)("xinit2",bufname,&win_num,&ierr,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    if (ierr != 0) goto bad;
+    set_version_flag(0);
+    sciSetCurrentFigure(curFig);
+    C2F(dr)("xset","background",&bg,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,5L,7L);
+    xinitxend_flag = 0; /* we force to draw */
+    sciDrawObj(curFig);
+  }
+  else {
+    struct BCG * XGC = (struct BCG *) NULL;
+    C2F(dr)("xsetdr",driver,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    /* xinit from screen (for the colormap definition) */
+    C2F(dr)("xinit2",bufname,&win_num,&ierr,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    if (ierr != 0)  goto bad;
+     if (colored==1) 
+      C2F(dr)("xset","use color",&un,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    else
+      C2F(dr)("xset","use color",&zero,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    getcolordef(&screenc);
+    /** we set the default screen color to the value of colored 
+       because we don't want that recorded events such as xset("default") could 
+       change the color status .
+       and we set the UseColorFlag to 1 not to replay xset("use color",..) events 
+    **/
+    setcolordef(colored);
+    UseColorFlag(1);
+
+    /* we want to draw something with a driver in old style */
+    /* I force the current ScilabXgc.graphicsversion = 1 */ /* F.Leray 18.05.05 */
+    XGC=(struct BCG *) sciGetCurrentScilabXgc ();
+    XGC->graphicsversion = 1;
+
+    C2F(dr)("xreplay","v",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    /** back to default values **/
+    UseColorFlag(0);
+    setcolordef(screenc);
+  }
+  C2F(dr)("xend","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  if(version_flag() == 0) xinitxend_flag = save_xinitxend_flag; /* put back the xinit_xend value */
+bad:
+  C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  /* to force a reset in the graphic scales */
+  SwitchWindow(&cur);
+  scig_buzy = 0;
+  return ierr;
+}
+
+int C2F(xg2psofig)(char *fname, integer *len, integer *iwin, integer *color, char *driver, long int l1, long int l2)
+{
+  int sc;
+  if ( *color == -1 ) 
+    getcolordef(&sc);
+  else 
+    sc= *color;
+  scig_tops(*iwin,sc,fname,driver);
+  return scig_tops(*iwin,sc,fname,driver);
+}
+
+/*******************************************************
+ * 2D Zoom 
+ ******************************************************/
+
+int scig_2dzoom(integer win_num)
+{
+  char name[4];
+  int ret;
+
+  if ( scig_buzy  == 1 ) return 0; ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  /* if ( (GetDriver()) !='R'&&version_flag !=0) */ /* F.Leray 03.03.04*/
+  if ( (GetDriver()) !='R'&& version_flag() !=0)
+    {
+      wininfo("Zoom works only with the Rec driver");
+      return 0;
+    }
+  else 
+    {
+      integer verb=0,cur,na;
+      C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+      C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      ret=zoom();
+      if (cur != win_num)
+       C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  scig_buzy = 0;
+  return ret;
+}
+
+
+/*******************************************************
+ * Unzoom function 
+ ******************************************************/
+
+void   scig_unzoom(integer win_num)
+{
+  integer verb=0,cur,na;
+  char name[4];
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  /* if ( (GetDriver()) !='R'&&version_flag !=0) */ /* F.Leray 03.03.04*/
+  if ( (GetDriver()) !='R'&& version_flag() !=0)
+    {
+      wininfo("UnZoom works only with the Rec driver ");
+    }
+  else 
+    {
+      C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+      C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      unzoom();
+      if (cur != win_num)
+       C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  scig_buzy = 0;
+}
+
+/*******************************************************
+ * 3d rotation function 
+ ******************************************************/
+
+int scig_3drot(integer win_num)
+{
+  integer verb=0,cur,na,ret;
+  char name[4];
+  if ( scig_buzy  == 1 ) return 0;
+  scig_buzy =1;
+  GetDriver1(name,PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0);
+  /*  if ( (GetDriver()) !='R'&&version_flag !=0) */ /* F.Leray 03.03.04 */
+  if ( (GetDriver()) !='R'&& version_flag() !=0)
+    {
+      wininfo("Rot3D works only with the Rec driver");
+      return 0;
+    }
+  else 
+    {
+      C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+      C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      ret=I3dRotation();
+      if (cur != win_num)
+       C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      C2F(dr)("xsetdr",name, PI0, PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  scig_buzy = 0;
+  return ret;
+}
+
+/********************************************************
+ * graphic Window selection 
+ ********************************************************/
+
+void scig_sel(integer win_num)
+{
+  char c ;
+  int v=1;
+  if ((c=GetDriver())=='R' || c == 'X' || c == 'W')
+    {
+      C2F(dr)("xset","window",&win_num,&v,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      if (version_flag() == 0) sciSwitchWindow(&win_num);
+    }
+}
+
+/********************************************************
+ * graphic Window raise 
+ ********************************************************/
+
+void scig_raise(integer win_num)
+{
+  char c ;
+  int cur,n,na,verb=0,iflag=0;
+
+  if (version_flag() == 0) /* NG */
+    { 
+      sciGetIdFigure (PI0,&n,&iflag);
+      if (n>0)
+       {
+         C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         if (win_num != cur)
+           {
+             C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             sciSwitchWindow(&win_num);
+             C2F(dr)("xselect","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+           }
+         else
+           {
+             C2F(dr)("xselect","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+           }
+       }
+      else
+       { 
+         C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         sciSwitchWindow(&win_num);
+       }
+    }
+  else 
+    {
+      if ((c=GetDriver())=='R' || c == 'X' || c == 'W')
+       {
+         C2F(getwins)(&n,PI0 ,&iflag);
+         if (n>0) /* at least on figure exists, preserve the current one*/
+           {
+             C2F (dr)("xget", "window",&verb,&cur,&n,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xselect","v",PI0,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+           }
+         else
+           {
+             C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+           }
+       }
+    }
+}
+
+
+/********************************************************
+ * Reload a saved graphic
+ ********************************************************/
+
+void scig_loadsg(int win_num, char *filename)
+{
+  integer verb=0,cur,na;
+  if ( scig_buzy  == 1 ) return ;
+  scig_buzy =1;
+  C2F(dr)("xget","window",&verb,&cur,&na,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","window",&win_num,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(xloadplots)(filename,0L);
+  C2F(dr)("xset","window",&cur,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  scig_buzy = 0;
+}
+
diff --git a/scilab/modules/graphics2/Alloc.c b/scilab/modules/graphics2/Alloc.c
new file mode 100644 (file)
index 0000000..210f3dc
--- /dev/null
@@ -0,0 +1,89 @@
+/*------------------------------------------------------------------------
+ *    Graphic library
+ *    Copyright (C) 1998-2001 Enpc/Jean-Philippe Chancelier
+ *    jpc@cermics.enpc.fr 
+ --------------------------------------------------------------------------*/
+
+/*------------------------------------------------------------------------
+ * Allocation routines for working arrays 
+ ------------------------------------------------------------------------*/
+
+#include <string.h> /* in case of dbmalloc use */
+#include "Math.h"
+
+
+#include "MALLOC.h" /* MALLOC */
+
+
+/*--------------------------------------------
+ * void graphic_alloc_info() 
+ * void graphic_alloc_free()
+ * void * graphic_alloc(indice,n,size)
+ *
+ * maintains a set of S_alloc_max working arrays 
+ * Usage : 
+ *   int *x = graphic_alloc(0,10,sizeof(int)) 
+ *   double *y = graphic_alloc(1,100,sizeof(double))
+ --------------------------------------------*/
+
+#define NBPOINTS 256 
+
+typedef struct s_alloc { 
+  int init;          /* used for first allocation check */
+  unsigned int size; /* currently allocated space in bytes */
+  void *storage;     /* pointer to allocated space */
+} S_alloc;
+
+#define S_alloc_max 9 
+
+static S_alloc Storage[S_alloc_max] = { {0,0,NULL},{0,0,NULL},{0,0,NULL},
+                                       {0,0,NULL},{0,0,NULL},{0,0,NULL},
+                                       {0,0,NULL},{0,0,NULL},{0,0,NULL}};
+
+void * graphic_alloc(int indice, int n, unsigned int size)
+{
+  integer *p; 
+  unsigned int size_needed = n*size;
+  unsigned int block_size = Storage[indice].size;
+  /* check indice */
+  if ( indice < 0 || indice >= S_alloc_max ) return 0;
+  if ( n == 0 ) return 0;
+  if (size_needed <= block_size  ) 
+    /* no need to alloc or realloc */
+    return Storage[indice].storage;
+  /* compute size to be dynamically allocated */
+  while ( size_needed > block_size ) block_size += NBPOINTS ;
+  if ( Storage[indice].init == 0) 
+    /** Allocation **/
+    { p = (integer*) MALLOC( block_size); }
+  else
+    /** Reallocation **/
+    { p = (integer *)  REALLOC( Storage[indice].storage,block_size ) ; }
+  if ( p == NULL) 
+    return 0;
+  Storage[indice].storage= p ;
+  Storage[indice].init = 1;
+  Storage[indice].size = block_size;
+  return Storage[indice].storage;
+}
+
+void graphic_alloc_info(void)
+{
+  unsigned int gsize=0;
+  int i;
+  for (i = 0 ; i < S_alloc_max ; i++) 
+    if ( Storage[i].init == 1 ) gsize += Storage[i].size;
+  sciprint("Graphic allocated dynamic memory: %ud bytes\n",gsize);
+}
+
+void graphic_alloc_free(void)
+{
+  int i;
+  for (i = 0 ; i < S_alloc_max ; i++) 
+    if ( Storage[i].init == 1 ) 
+      {
+       FREE(Storage[i].storage);
+       Storage[i].init = 0;
+      }
+}
+
diff --git a/scilab/modules/graphics2/Axes.c b/scilab/modules/graphics2/Axes.c
new file mode 100644 (file)
index 0000000..166c331
--- /dev/null
@@ -0,0 +1,3337 @@
+/*------------------------------------------------------------------------
+ *    Graphic library
+ *    Copyright (C) 1998-2000 Enpc/Jean-Philippe Chancelier
+ *    Copyright (C) 2006      INRIA/Jean-Baptiste Silvy
+ *    jpc@cereve.enpc.fr 
+ --------------------------------------------------------------------------*/
+/*------------------------------------------------------------------------
+ * Axis drawing for 2d plots 
+ *--------------------------------------------------------------------------*/
+
+#include <math.h>
+#include <string.h>
+#include <stdio.h>
+#include "Math.h"
+#include "Graphics.h" 
+#include "PloEch.h"
+#include "Axes.h"
+#include "DestroyObjects.h"
+#include "DrawObjects.h"
+#include "InitObjects.h"
+
+
+#include "MALLOC.h" /* MALLOC */
+
+
+
+#include "GetProperty.h"
+
+static sciPointObj * psubwin;/* NG */
+extern sciPointObj * paxesmdl ;
+
+static double  x_convert __PARAMS((char xy_type,double x[] ,int i));
+static double  y_convert __PARAMS((char xy_type,double x[] ,int i));
+extern void NumberFormat __PARAMS((char *str,integer k,integer a));
+static void aplotv1  __PARAMS((char*));
+static void aplotv2  __PARAMS((char*));
+
+
+static void axesplot(char* ,sciPointObj*);
+static int SciAxisNew(char pos,sciPointObj *psubwin, double xy,int fontsize,int fontstyle,int textcolor,int ticscolor, int seg);
+
+static void DrawXTics(char pos, sciPointObj * psubwin, double xy, char * c_format, int * fontid, int textcolor,int ticscolor,int color_kp, int *logrect, int smallersize);
+static void DrawYTics(char pos, sciPointObj * psubwin, double xy, char * c_format, int * fontid, int textcolor,int ticscolor,int color_kp, int *logrect, int smallersize);
+static int XDrawAxisLine(double xminval,double xmaxval,double xy, int ticscolor, int color_kp);
+static int YDrawAxisLine(double yminval,double ymaxval,double xy, int ticscolor, int color_kp);
+static void FindXYMinMaxAccordingTL(sciPointObj * psubwin, double *xminval,double *yminval,double *xmaxval,double *ymaxval);
+
+static int DrawXSubTics(char pos, sciPointObj * psubwin, double xy,int ticscolor,int color_kp);
+static int DrawYSubTics(char pos, sciPointObj * psubwin, double xy,int ticscolor,int color_kp);
+
+static int DrawXGrid(sciPointObj * psubwin);
+static int DrawYGrid(sciPointObj * psubwin);
+
+static void YGradPosition(sciPointObj * psubwin, int xx, int rect2);
+static void XGradPosition(sciPointObj * psubwin, int yy, int rect3);
+
+int SciDrawLines(char pos, sciPointObj * psubwin, double xy, int textcolor,int ticscolor);
+
+extern int version_flag();
+/*--------------------------------------------------------------
+ * Draw Axis or only rectangle
+ *----------------------------------------------------------------*/
+
+void axis_draw(strflag)
+     char strflag[];
+{ 
+  /* using foreground to draw axis */
+  integer verbose=0,narg,xz[10],fg,i,ixbox[5],iybox[5],p=5,n=1,color,color_kp; 
+ /*  int isoflag = -1; */
+  char c = (strlen(strflag) >= 3) ? strflag[2] : '1';
+  C2F(dr)("xget","foreground",&verbose,&fg,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","line style",&verbose,xz,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","line style",(i=1,&i),PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","color",&verbose,xz+1,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","color",&fg,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 
+
+  if (version_flag() == 0){
+    psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+    
+    /* F.Leray test on color here*/
+    color=sciGetBackground(psubwin);
+    
+
+    ixbox[0]=ixbox[4]=Cscale.WIRect1[0];iybox[0]=iybox[4]=Cscale.WIRect1[1];
+    ixbox[1]=ixbox[0];iybox[1]=Cscale.WIRect1[1]+Cscale.WIRect1[3];
+    ixbox[2]=Cscale.WIRect1[0]+Cscale.WIRect1[2];iybox[2]=iybox[1];
+    ixbox[3]=ixbox[2];iybox[3]=iybox[0]; 
+    C2F(dr)("xget","pattern",&verbose,&color_kp,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    C2F(dr)("xset","pattern",&color,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);         
+    C2F(dr)("xarea", "v", &p, ixbox, iybox, &n, PI0, PI0, PD0, PD0, PD0, PD0, 5L,0L);
+    C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);       
+  }
+
+  switch ( c) 
+    {
+    case '0' :
+      break ;
+    case '2' :
+      if (version_flag() == 0) pSUBWIN_FEATURE (psubwin)->axes.rect = BT_ON;  /* NG */
+       
+      C2F(dr)("xrect","xv",&Cscale.WIRect1[0],&Cscale.WIRect1[1],&Cscale.WIRect1[2],&Cscale.WIRect1[3]
+             ,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      break;
+    default :
+
+      if (version_flag() == 0)
+       {
+         axesplot(strflag,psubwin);
+         break;
+       }
+      else
+       {
+         if ( strflag[1] == '5' || strflag[1] =='6' )
+           /* using auto rescale */
+           aplotv1(strflag); /* use 'i' xy_type */
+         else
+           aplotv2(strflag); /* use 'r' xy_type */
+         break;
+       }
+    
+    }
+
+
+
+  C2F(dr)("xset","line style",xz,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","color",xz+1,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+
+}
+
+/* F.Leray 16.12.04 */
+/* Same thing as axis_draw without the background area set */
+/* Only used in NG mode */
+void axis_draw2(strflag)
+     char strflag[];
+{ 
+  /* using foreground to draw axis */
+  integer verbose=0,narg,xz[10],fg,i,color; 
+  /*  int isoflag = -1; */
+  char c = (strlen(strflag) >= 3) ? strflag[2] : '1';
+  C2F(dr)("xget","foreground",&verbose,&fg,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","line style",&verbose,xz,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","line style",(i=1,&i),PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","color",&verbose,xz+1,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","color",&fg,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 
+  
+  psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+  
+  /* F.Leray test on color here*/
+  color=sciGetBackground(psubwin);
+  
+  switch ( c) 
+    {
+      /*case '0' :
+        break ;*/
+    case '2' :
+      pSUBWIN_FEATURE (psubwin)->axes.rect = BT_ON;
+      
+      C2F(dr)("xrect","xv",&Cscale.WIRect1[0],&Cscale.WIRect1[1],&Cscale.WIRect1[2],&Cscale.WIRect1[3]
+             ,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      break;
+    default :
+      axesplot(strflag,psubwin);
+      break;
+    }
+
+  C2F(dr)("xset","line style",xz,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","color",xz+1,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+}
+
+/* Only paint the area of the axes */
+/* ans does not draw any graduations or ticks, lines... */
+void DrawAxesBackground()
+{ 
+  /* using foreground to draw axis */
+  integer verbose=0,narg,xz[10],fg,i,ixbox[5],iybox[5],p=5,n=1,color,color_kp; 
+ /*  int isoflag = -1; */
+  C2F(dr)("xget","foreground",&verbose,&fg,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","line style",&verbose,xz,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","line style",(i=1,&i),PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xget","color",&verbose,xz+1,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","color",&fg,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); 
+
+  psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+    
+  /* F.Leray test on color here*/
+  color=sciGetBackground(psubwin);
+  
+  ixbox[0]=ixbox[4]=Cscale.WIRect1[0];iybox[0]=iybox[4]=Cscale.WIRect1[1];
+  ixbox[1]=ixbox[0];iybox[1]=Cscale.WIRect1[1]+Cscale.WIRect1[3];
+  ixbox[2]=Cscale.WIRect1[0]+Cscale.WIRect1[2];iybox[2]=iybox[1];
+  ixbox[3]=ixbox[2];iybox[3]=iybox[0]; 
+  C2F(dr)("xget","pattern",&verbose,&color_kp,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","pattern",&color,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);   
+  C2F(dr)("xarea", "v", &p, ixbox, iybox, &n, PI0, PI0, PD0, PD0, PD0, PD0, 5L,0L);
+  C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);         
+
+  C2F(dr)("xset","line style",xz,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","color",xz+1,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+
+}
+
+/*--------------------------------------------------------------
+ *  aplot: used to draw a box + x and y ticks and scales 
+ *  xmin,ymin,xmax,ymax : are the boundary values
+ *  xnax and ynax gives the ticks numbers ex: nax=[3,7];
+ *  will give 8 big ticks (7 intervals) with numbers and 
+ *  each big interval will be divided in 3 small intervals.
+ *----------------------------------------------------------------*/
+
+static void aplotv2(strflag) 
+     char *strflag;
+{
+  char dir = 'l';
+  int nx,ny;
+  int fontsize=-1,textcolor=-1,ticscolor=-1 ; /*==> use default values  */
+  int fontstyle= 0; 
+  int seg =0;
+  double x[4],y[4],x1,y1;
+  char xstr,ystr;  
+  char dirx = 'd';
+  int i;
+  sciSubWindow * ppSubWin = NULL ;
+  char c = (strlen(strflag) >= 3) ? strflag[2] : '1';
+  x[0] = Cscale.frect[0]; x[1] = Cscale.frect[2] ; x[2]=Cscale.Waaint1[1];
+  y[0]=  Cscale.frect[1]; y[1] = Cscale.frect[3] ; y[2]=Cscale.Waaint1[3]; 
+
+  /* Comments on the x and y arrays:
+   x = [xmin,xmax,nb_subtics_on_x_axis]
+   y = [ymin,ymax,nb_subtics_on_y_axis]
+  */
+
+  /** Cscale.frect[4]= xmin ymin xmax ymax **/ 
+
+  
+
+  if (version_flag() == 0)
+  {
+    /* initialize only there since in old style no subwin */
+    ppSubWin = pSUBWIN_FEATURE(psubwin) ;
+    Cscale.xtics[2] = ppSubWin->axes.xlim[2];
+    Cscale.ytics[2] = ppSubWin->axes.ylim[2]; 
+
+    /* Remis F.Leray 06.05.04 */
+    for(i=0 ; i<4 ; i++ )
+      Cscale.frect[i]=  ppSubWin->FRect[i] ;
+
+    Cscale.xtics[1] = (Cscale.frect[2] / (exp10( Cscale.xtics[2]))) ; 
+    Cscale.xtics[0] = (Cscale.frect[0]  / (exp10( Cscale.xtics[2]))) ;
+    Cscale.xtics[3] = inint(Cscale.xtics[1]-Cscale.xtics[0]);
+    Cscale.ytics[1] = (Cscale.frect[3] / (exp10( Cscale.ytics[2]))) ; 
+    Cscale.ytics[0] = (Cscale.frect[1]  / (exp10( Cscale.ytics[2]))) ;
+    Cscale.ytics[3] = inint(Cscale.ytics[1]-Cscale.ytics[0]);
+  }   
+
+
+  switch ( c ) 
+    { 
+    case '3' : /* right axis */ 
+      x1 = x[1]; y1 = y[0]; dir = 'r'; 
+      break;
+    case '4' : /* centred axis */
+      seg=1;
+      x1 = (x[0]+x[1])/2.0;y1=(y[0]+y[1])/2.0; 
+      break ;
+    case '5': /* centred at (0,0) */
+      seg=1;
+      x1 = y1 = 0.0; 
+      break;
+    case '1' : /* left axis */
+    default : 
+      x1 = x[0]; y1 = y[0];   
+      break;
+    } 
+   
+  if ((version_flag() == 0) && (c != '4'))
+    {  
+      xstr = ppSubWin->axes.xdir;
+      switch (xstr) 
+       {
+       case 'u':  
+         y1 = y[1];
+         dirx='u';   
+         break;
+       case 'c':  
+         y1=(y[0]>0.0) ? y[0]: 0.0;
+         y1=(y[1]<0.0) ? y[0]: y1; 
+         seg =1; 
+         dirx ='d';                           
+         break;
+       default :  
+         y1= y[0];;
+         dirx ='d'; 
+         break;
+       }
+      ystr = ppSubWin->axes.ydir;
+      switch (ystr) 
+       {
+       case 'r': 
+         x1=x[1];
+         dir='r';    
+         break;
+       case 'c': 
+         x1=(x[0]>0.0) ? x[0]: 0.0;
+         x1=(x[1]<0.0) ? x[0]: x1; 
+         seg =1; 
+         dir ='l';                              
+         break; 
+       default : 
+         x1= x[0];
+         dir ='l';  
+         break;
+       }
+    }
+  if ( c != '4' && c != '5' ) {
+    if (   (version_flag() == 0) 
+        && ( ppSubWin->axes.rect == BT_OFF || ppSubWin->axes.rect == BT_HIDDEN_AXIS ))
+    {
+      seg=1; /* seg=1 means not to draw a rectangle (cases wherexy-axis is centered in the middle of the frame or in (0,0))*/
+    }
+    else
+    {
+      /** frame rectangle **/
+      C2F(dr)("xrect","v",&Cscale.WIRect1[0],&Cscale.WIRect1[1],&Cscale.WIRect1[2],&Cscale.WIRect1[3], 
+             PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  }
+
+  if (version_flag() == 0){  
+    
+    Cscale.Waaint1[0]= ppSubWin->axes.subint[0]+1;
+    Cscale.Waaint1[1]= (integer) (ppSubWin->axes.xlim[3]); /*SS 02/01/03 */ /* Give the number of intervals on x*/
+    Cscale.Waaint1[2]= ppSubWin->axes.subint[1]+1; 
+    Cscale.Waaint1[3]= (integer) (ppSubWin->axes.ylim[3]);/*SS 02/01/03 */  /* Give the number of intervals on y*/
+
+    /* Above: Number of tics on x-axis: Cscale.Waaint1[0]*/
+    /*        Number of tics on y-axis: Cscale.Waaint1[2]*/
+
+    /* Above: Number of subtics on x-axis: Cscale.Waaint1[1]*/
+    /*        Number of subtics on y-axis: Cscale.Waaint1[3]*/
+
+    ticscolor = ppSubWin->axes.ticscolor;
+    /*textcolor=pSUBWIN_FEATURE (psubwin)->axes.textcolor;
+      fontsize=pSUBWIN_FEATURE (psubwin)->axes.fontsize;*/
+    textcolor=sciGetFontForeground(psubwin);
+    fontsize=sciGetFontDeciWidth(psubwin)/100;
+    /* F.Leray 08.04.04 New data for Axes Font*/
+    fontstyle=sciGetFontStyle(psubwin);
+    
+  }
+
+  /** x-axis **/
+  ny=1,nx=3;
+  Sci_Axis(dirx,'r',x,&nx,&y1,&ny,NULL,Cscale.Waaint1[0],NULL,fontsize,textcolor,fontstyle,ticscolor,Cscale.logflag[0],seg,0);
+  /** y-axis **/
+  ny=3,nx=1;
+  Sci_Axis(dir,'r',&x1,&nx,y,&ny,NULL,Cscale.Waaint1[2],NULL,fontsize,textcolor,fontstyle,ticscolor,Cscale.logflag[1],seg,0);
+}
+
+static void aplotv1(strflag)
+     char *strflag;
+{
+  char dir = 'l';
+  char c = (strlen(strflag) >= 3) ? strflag[2] : '1';
+  int nx,ny,seg=0,i;
+  int fontsize = -1 ,textcolor = -1 ,ticscolor = -1 ; /* default values */
+  int fontstyle= 0;
+  double  x1,y1;
+  char xstr,ystr; 
+  char dirx = 'd';
+  double CSxtics[4], CSytics[4];
+  sciSubWindow * ppSubWin = NULL ;
+  seg=0; 
+  
+  switch ( c ) 
+    { 
+    case '3' : /* right axis */
+      x1= Cscale.xtics[1]*exp10(Cscale.xtics[2]);
+      y1= Cscale.ytics[0]*exp10(Cscale.ytics[2]);
+      dir = 'r';
+      break;
+    case '4' : /* centred axis */
+      seg=1;
+      x1= (Cscale.xtics[0]+Cscale.xtics[1])*exp10(Cscale.xtics[2])/2.0;
+      y1= (Cscale.ytics[0]+Cscale.xtics[1])*exp10(Cscale.ytics[2])/2.0;
+      break ;
+    case '5': /* centred at (0,0) */
+      seg=1;
+      x1 = y1 = 0.0; 
+      break;
+    case '1' : /* left axis */
+    default :  
+      x1= Cscale.xtics[0]*exp10(Cscale.xtics[2]);
+      y1= Cscale.ytics[0]*exp10(Cscale.ytics[2]);
+      break;
+    }
+       
+  if ((version_flag() == 0) && (c != '4'))
+    {  
+      xstr = ppSubWin->axes.xdir;
+      switch (xstr) 
+       {
+       case 'u':  
+         y1=Cscale.ytics[1]*exp10(Cscale.ytics[2]);
+         dirx='u';   
+         break;
+       case 'c':  
+         y1=(Cscale.ytics[0]*exp10(Cscale.ytics[2])>0.0)?Cscale.ytics[0]*exp10(Cscale.ytics[2]): 0.0;
+         y1=(Cscale.ytics[1]*exp10(Cscale.ytics[2])<0.0)?Cscale.ytics[0]*exp10(Cscale.ytics[2]): y1; 
+         seg =1; 
+         dirx ='d';                           
+         break;
+       default :  
+         y1= Cscale.ytics[0]*exp10(Cscale.ytics[2]);
+         dirx ='d'; 
+         break;
+       }
+      ystr=pSUBWIN_FEATURE(psubwin)->axes.ydir;
+      switch (ystr) 
+       {
+       case 'r': 
+         x1=Cscale.xtics[1]*exp10(Cscale.xtics[2]);
+         dir='r';    
+         break;
+       case 'c': 
+         x1=(Cscale.xtics[0]*exp10(Cscale.xtics[2])>0.0)?Cscale.xtics[0]*exp10(Cscale.xtics[2]): 0.0;
+         x1=(Cscale.xtics[1]*exp10(Cscale.xtics[2])<0.0)?Cscale.xtics[0]*exp10(Cscale.xtics[2]): x1; 
+         seg =1; 
+         dir ='l';                              
+         break; 
+       default : 
+         x1= Cscale.xtics[0]*exp10(Cscale.xtics[2]);
+         dir ='l';  
+         break;
+       }
+    }
+  
+  if ( c != '4' && c != '5' ) {
+    if (    (version_flag() == 0) 
+         && (ppSubWin->axes.rect == BT_OFF || ppSubWin->axes.rect == BT_HIDDEN_AXIS) )
+    {
+      seg=1;
+    }
+    else
+    {
+      /** frame rectangle **/
+      C2F(dr)("xrect","v",&Cscale.WIRect1[0],&Cscale.WIRect1[1],&Cscale.WIRect1[2],&Cscale.WIRect1[3], 
+             PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  }
+
+  if (version_flag() == 0)
+  {  
+    ppSubWin = pSUBWIN_FEATURE(psubwin) ;
+    Cscale.Waaint1[0]= ppSubWin->axes.subint[0]+1;
+    Cscale.Waaint1[1]= (integer) (ppSubWin->axes.xlim[3]); /*SS 02/01/03 */
+    Cscale.Waaint1[2]= ppSubWin->axes.subint[1]+1; 
+    Cscale.Waaint1[3]= (integer) (ppSubWin->axes.ylim[3]);/*SS 02/01/03 */
+
+    ticscolor = ppSubWin->axes.ticscolor;
+    textcolor=sciGetFontForeground(psubwin);
+    fontsize=sciGetFontDeciWidth(psubwin)/100;
+    fontstyle=sciGetFontStyle(psubwin);
+  }
+  /* Handle CSxtics and CSytics instead of directly overwrite */
+  /* Cscale.xtics and Cscale.ytics */
+
+  for (i=0;i<4;i++) CSxtics[i] = Cscale.xtics[i];
+  for (i=0;i<4;i++) CSytics[i] = Cscale.ytics[i];
+
+
+  /** x-axis **/
+  ny=1,nx=4;
+  Sci_Axis(dirx,'i',CSxtics,&nx,&y1,&ny,NULL,Cscale.Waaint1[0],
+          NULL,fontsize,textcolor,fontstyle,ticscolor,Cscale.logflag[0],seg,0);
+  
+  /** y-axis **/
+  ny=4,nx=1;
+  Sci_Axis(dir,'i',&x1,&nx,CSytics,&ny,NULL,Cscale.Waaint1[2],
+          NULL,fontsize,textcolor,fontstyle,ticscolor,Cscale.logflag[1],seg,0);
+}
+
+
+/*-------------------------------------------------------------
+ * Sci_Axis : 
+ *   Drawing axis 
+ *   pos = 'r' | 'l' | 'u' | 'd' : gives the tics directions 
+ *         'r' and 'l' are used for vertical axis 
+ *         'u' and 'd' for horizontal axis 
+ *   xy_type = 'v' (for vector) or 'r' (for range) 
+ *         'v' means that tics position are given by a vector 
+ *         'r' means that tics position are in a range i.e given by a vector of size 3 
+ *             [min,max,number_of_intervals] 
+ *         'i' means that tics positions are in a range given by four number (integers) 
+ *             [k1,k2,e,number_of intervale] -> [k1*10^e,k2*10^e] 
+ *   x vector of size nx 
+ *   y vector of size ny 
+ *         if pos = 'r' or 'l' then x must be of size 1 
+ *              the size of y i.e ny must be 3 if xy_type == 'r' or 4 if xy_type == 'i'
+ *              str if non null gives the string to be used at ticks marks 
+ *              it must be then of size ny or of size y[3]+1 (if xy_type == 'r') 
+ *              or y[4]+1 (if xy_type == 'i') 
+ *         if pos = 'u' or 'd  ' then y must be of size 1 
+ *              the size of x i.e nx must be 3 if xy_type == 'r' or 4 if xy_type == 'i'
+ *              str if non null gives the string to be used at ticks marks 
+ *              it must be then of size ny or of size y[3]+1 (if xy_type == 'r')
+ *              or y[4]+1 (if xy_type == 'i') 
+ *   str = char *str[] string vector, see above for size constraints 
+ *              Warning str must be null terminated 
+ *   subtics or subints : number of sub intervals 
+ *   format : format for tick marks.
+ *            format is only used if str is NULL
+ *            if format is null a format is computed else format is used 
+ *   fontsize and textcolor : 
+ *            XXXXX : to be done 
+ *   seg_flag : 0 or 1, flag which control the drawing of the segment associated to the axis 
+ *            if 1 the segment is drawn 
+ *-------------------------------------------------------------*/
+
+void sci_axis(char pos, char xy_type, double *x, int *nx, double *y, int *ny,
+             char *str[], int subtics, char *format, int fontsize, int textcolor, 
+             int fontstyle, int ticscolor, char logflag, int seg_flag)
+{
+  if (GetDriver()=='R') 
+    StoreSciAxis("axis",pos,xy_type,x,nx,y,ny,str,subtics,format,fontsize,textcolor,fontstyle,ticscolor,logflag,seg_flag);
+  Sci_Axis(pos,xy_type,x,nx,y,ny,str,subtics,format,fontsize,textcolor,fontstyle,ticscolor,logflag,seg_flag,0);
+}
+
+void Sci_Axis(char pos, char xy_type, double *x, int *nx, double *y, int *ny,
+             char *str[], int subtics, char *format, int fontsize, int textcolor, 
+             int fontstyle, int ticscolor, char logflag, int seg_flag, int axisbuild_flag)
+{
+  int Nx,Ny,debug,j;
+  double angle=0.0,vxx,vxx1;
+  int vx[2],vy[2],xm[2],ym[2];
+  char c_format[5];
+  integer flag=0,xx=0,yy=0,posi[2],rect[4],dash[6],trois=3;/**DJ.Abdemouche 2003**/
+  integer i,barlength;
+  int ns=2,iflag=0;
+  integer fontid[2],fontsize_kp, narg,verbose=0,logrect[4],smallersize,color_kp; 
+  integer pstyle;
+  int x3, y3, xpassed = 0, ypassed = 0; /* for log. case management */
+ /*** 01/07/2002 -> 11.05.04 ***/ /* F.Leray : Re-put the Djalel modif. for a better display 
+                        using tight_limits='on' and/or isoview='on' */
+  double xmin,xmax,ymin, ymax; 
+  sciPointObj * psubwin = NULL;
+  double pas; /* used for logarithmic grid */
+
+  fontid[0]= fontstyle;
+  
+  if (version_flag() == 0)
+    psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+  
+  C2F(dr)("xget","font",&verbose,fontid,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  fontsize_kp = fontid[1] ;
+  if ((version_flag() == 0) && ( fontsize == -1 ))
+    { fontid[0]= 0; fontid[1]= 1;  fontsize_kp = fontid[1] ;
+    fontid[0]= fontstyle;
+    C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);}
+  
+  if ( fontsize != -1 ) 
+    {
+      fontid[1] = fontsize ;
+      fontid[0]= fontstyle;
+      C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  if ( textcolor != -1 || ticscolor != -1 ) 
+    {
+      C2F(dr)("xget","pattern",&verbose,&color_kp,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+
+  if (logflag == 'l' )
+    {
+      C2F(dr)("xstringl","10",&xx,&yy,logrect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);      
+      smallersize=fontid[1]-2;
+      C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  if (version_flag() == 0) 
+    {
+      /* Pb here, dim of x and y can be lesser than 4 (ie in example_eng.tst : nx = 6 and ny = 1) F.Leray 25.02.04
+       x and y are either double x[3] (resp. y[3]) or simply a double !  F.Leray 05.03.04
+       So a test on x[3] (resp. y[3]) is ALWAYS bad!!
+       NO!! It depends on the xy_type as follow (see in aplotv1):*/
+      /*
+       *   xy_type = 'v' (for vector) or 'r' (for range) 
+       *         'v' means that tics position are given by a vector 
+       *         'r' means that tics position are in a range i.e given by a vector of size 3 
+       *             [min,max,number_of_intervals] 
+       *         'i' means that tics positions are in a range given by four number (integers) 
+       *             [k1,k2,e,number_of intervals] -> [k1*10^e,k2*10^e] */
+
+      if(xy_type == 'i') {     /* Adding F.Leray 05.03.04*/
+       /*F.Leray Modification on 09.03.04*/
+       switch ( pos ) {
+       case 'u' : case 'd' :  
+         if(pSUBWIN_FEATURE(psubwin)->logflags[0] == 'n')
+           while (x[3]>10)  x[3]=floor(x[3]/2); 
+         else{
+           if(x[3] > 12){ /* F.Leray arbitrary value=12 for the moment */
+             x3=(int)x[3];     /* if x[3]>12 algo is triggered to search a divisor */
+             for(j=x3-1;j>1;j--)
+               if(x3%j == 0){
+                 x[3]=j; 
+                 xpassed = 1;
+               }
+             if(xpassed != 1) x[3] = 1;
+           }
+         }
+         
+         break;
+       case 'r' : case 'l' :
+         if(pSUBWIN_FEATURE(psubwin)->logflags[1] == 'n')
+           while (y[3]>10)  y[3]=floor(y[3]/2);
+         else{
+           if(y[3] > 12){
+             y3=(int)y[3];
+             for(j=y3-1;j>1;j--)
+               if(y3%j == 0){
+                 y[3]=j;
+                 ypassed = 1;
+               }
+             if(ypassed != 1) y[3] = 1;
+           }
+       }
+       
+       break;
+       }
+      }
+      
+
+    }
+
+  
+  /** Real to Pixel values **/
+  switch ( xy_type ) 
+    {
+    case 'v' : Nx= *nx; Ny= *ny; break;
+    case 'r' :
+      switch ( pos ) {
+      case 'u' : case 'd' : Nx = (int) x[2]+1; break;
+      case 'r' : case 'l' : Ny = (int) y[2]+1; break;
+      }
+      break;
+    case 'i' : 
+      switch ( pos ) {
+      case 'u' : case 'd' : Nx = (int) x[3]+1; break; 
+      case 'r' : case 'l' : Ny = (int) y[3]+1; break;
+      }
+      break;
+    default: 
+      sciprint("Sci_Axis: wrong type argument xy_type\r\n");
+    }
+  switch (pos ) 
+    {
+    case 'u' : 
+    case 'd' :
+      /** Horizontal axes **/
+      barlength =  (integer) (Cscale.WIRect1[3]/50.0);
+      /** compute a format **/
+      if (str == NULL && format == NULL )  
+       switch (xy_type ) {
+       case 'v' : ChoixFormatE1(c_format,x,Nx);break;
+       case 'r' : ChoixFormatE (c_format,x[0],x[1],(x[1]-x[0])/x[2]);break;
+       case 'i' : 
+         ChoixFormatE (c_format,
+                       (x[0] * exp10(x[2])),
+                       (x[1] * exp10(x[2])),
+                       ((x[1] * exp10(x[2])) - (x[0] * exp10(x[2])))/x[3]); break; /* Adding F.Leray 06.05.04 */
+       }
+      /** the horizontal segment **/
+
+      /*F.Leray 26.02.04*/
+      debug = version_flag();
+
+      vx[0] =  XScale(x_convert(xy_type, x , 0)); /* C EST LA que se calcule les positions initiales et finales (en x et y) de la barre support de l'axe des abscisses */
+      vx[1] =  XScale(x_convert(xy_type, x , Nx-1));
+      vy[0]= vy[1] = ym[0] = YScale(y[0]);
+      if ( seg_flag == 1) 
+       {
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+       }
+      /******* 01/07/2002  -> 11.05.04 **********/
+      if (version_flag() == 0) psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+      if ((version_flag() == 0) 
+         && (pSUBWIN_FEATURE (psubwin)->tight_limits == TRUE || pSUBWIN_FEATURE (psubwin)->isoview == TRUE )
+         && axisbuild_flag == 0){  
+       xmax=Cscale.frect[2];
+       xmin=Cscale.frect[0];
+
+       if(xy_type == 'i')
+         {
+        /*    x[1] = floor(Cscale.frect[2] / (exp10( x[2]))) ;   */
+/*         x[0] =  ceil(Cscale.frect[0]  / (exp10( x[2]))) ;  */
+
+           x[1] = floor(  Cscale.xtics[1] );
+           x[0] =  ceil(  Cscale.xtics[0] );
+           x[3]=inint(x[1]-x[0]);
+           while (x[3]>10)  x[3]=floor(x[3]/2);
+           Nx=(int)(x[3]+1);
+
+           /* re-compute a format when tight_limits or isoview == ON */
+           ChoixFormatE (c_format,
+                         (x[0] * exp10(x[2])),
+                         (x[1] * exp10(x[2])),
+                         ((x[1] * exp10(x[2])) - (x[0] * exp10(x[2])))/x[3]); /* Adding F.Leray 15.05.04 */
+         }
+       /* THESE 2 last cases are unreachable because we use the condition : */
+       /* axisbuild_flag == 0 */
+       else if (xy_type == 'r') /* normally unreachable */
+         {
+           sciprint(" Normally, unreachable case \n");
+         /*   x[1] = floor(Cscale.frect[2]) ;   */
+/*         x[0] =  ceil(Cscale.frect[0]) ;  */
+/*         x[2]=inint(x[1]-x[0]); */
+/*         while (x[2]>10)  x[2]=floor(x[2]/2); */
+/*         Nx=x[2]+1;  */
+         }
+       else if(xy_type == 'v') /* normally unreachable */
+         {
+           sciprint(" Normally, unavailable case  AAA \n");
+         }
+      }
+
+
+      pas = ((double) Cscale.WIRect1[2]) / ((double) Cscale.Waaint1[1]);
+
+      /**********************/
+      /** loop on the ticks **/
+      if (Nx==1) break;
+      for (i=0 ; i < Nx ; i++)
+       {  
+         char foo[100];
+         vxx = x_convert(xy_type,x,i);
+         if ( str != NULL)  
+           sprintf(foo,"%s",str[i]);
+         else if ( format == NULL) 
+           {
+             /* defaults format */
+             /*F.Leray 19.05.04 */
+             /* When Sci_Axis is called by aplotv1, format is NULL : it can not be something else...*/
+             /* format can also be NULL if non specified and coming from ConstructAxes method called in Objdrawaxis (see matdes.c) */
+             sprintf(foo,c_format,vxx);
+           }
+         else {
+           sprintf(foo,format,vxx);
+         }
+         
+
+         C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+         /* tick is computed in vx,vy and string is displayed at posi[0],posi[1] position */
+
+         vx[0] = vx[1] = xm[0] =  XScale(vxx);
+         posi[0] = inint( xm[0] -rect[2]/2.0);
+
+         if ( pos == 'd' ) 
+           {
+             posi[1]=inint( ym[0] + 1.2*barlength + rect[3]);
+             vy[0]= ym[0];vy[1]= ym[0] + barlength ;
+           }
+         else 
+           { 
+             posi[1]=inint( ym[0] - 1.2*barlength);
+             vy[0]= ym[0];vy[1]= ym[0] - barlength;
+           }
+         if ( textcolor != -1 ) C2F(dr)("xset","pattern",&textcolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         C2F(dr)("xstring",foo,&(posi[0]),&(posi[1]),PI0,&flag,PI0,PI0,&angle, PD0,PD0,PD0,0L,0L);
+         if ( logflag == 'l' )
+           {
+             C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xstring","10",(posi[0] -= logrect[2],&posi[0]),
+                     (posi[1] += logrect[3],&posi[1]),
+                     PI0,&flag,PI0,PI0,&angle,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+           }
+         if ( textcolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         /*** MAJ Djalel.A 21/01/2003 ***/ 
+         if (version_flag() == 0) 
+           if (pSUBWIN_FEATURE (psubwin)->grid[0] > -1) { /**DJ.Abdemouche 2003**/
+             if(pSUBWIN_FEATURE (psubwin)->logflags[0] == 'l'){
+               if ((vx[0] != Cscale.WIRect1[0]) && (vx[0] != (Cscale.WIRect1[0]+ Cscale.WIRect1[2])))
+                 {
+                   pstyle=pSUBWIN_FEATURE (psubwin)->grid[0] ;
+                   C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F (dr) ("xset", "line style",&trois,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   vy[0]=Cscale.WIRect1[1];
+                   vy[1]=Cscale.WIRect1[1]+Cscale.WIRect1[3];  
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&pstyle,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }
+               
+               if(i < Nx -1 ){
+                 int jinit=1;
+                 /* In case there is a log. scale, add. sub-grid taking account of this special scale F.Leray 07.05.04 */
+                 pstyle=pSUBWIN_FEATURE (psubwin)->grid[0] ;
+                 C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 C2F (dr) ("xset", "line style",&trois,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 vy[0]=Cscale.WIRect1[1];
+                 vy[1]=Cscale.WIRect1[1]+Cscale.WIRect1[3];
+                 
+                 if ( i== 0 ) jinit=2; /* no grid on plot boundary */
+                 for (j= jinit; j < 10 ; j++)
+                   {
+                     vx[0]=vx[1]= Cscale.WIRect1[0] + inint( ((double) i)*pas)+ inint(log10(((double)j))*pas);
+                     C2F(dr)("xsegs","v", vx, vy, &ns,&pstyle,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   }
+                 C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+               }
+             }
+             else if(pSUBWIN_FEATURE (psubwin)->logflags[0] == 'n'){
+               if ((vx[0] != Cscale.WIRect1[0]) && (vx[0] != (Cscale.WIRect1[0]+ Cscale.WIRect1[2])))
+                 {
+                   pstyle=pSUBWIN_FEATURE (psubwin)->grid[0] ;
+                   C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F (dr) ("xset", "line style",&trois,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   vy[0]=Cscale.WIRect1[1];
+                   vy[1]=Cscale.WIRect1[1]+Cscale.WIRect1[3];  
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&pstyle,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }
+             }
+           }
+         /***/
+         /* subtics */
+         if ( i < Nx-1 ) 
+           {
+             int j;
+             double dx ; 
+             vxx1= x_convert(xy_type,x,i+1);
+             dx = (vxx1-vxx)/subtics;
+             for ( j = 1 ; j < subtics; j++){ 
+               vx[0] = vx[1] = XScale(vxx+dx*j);
+               if ( pos == 'd' ) 
+                 { vy[0]= ym[0];vy[1]=  (integer) (ym[0] + barlength/2.0) ; }
+               else 
+                 { vy[0]= ym[0];vy[1]=  (integer) (ym[0] - barlength/2.0) ; }
+               C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             }
+           } 
+         /***   01/07/2002  -> 11.05.04 ****/
+         if (version_flag() == 0) psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+         if ((version_flag() == 0) 
+             && (pSUBWIN_FEATURE (psubwin)->tight_limits == TRUE || pSUBWIN_FEATURE (psubwin)->isoview == TRUE )
+             && axisbuild_flag == 0){  
+           if ( i == 0 ) 
+             {
+               int j;
+               double dx ; 
+               vxx1= x_convert(xy_type,x,i+1);
+               dx = (vxx1-vxx)/subtics;
+               for ( j = 1 ; j < subtics; j++) {  
+                 if ( vxx-dx*j > xmin){
+                   vx[0] = vx[1] = XScale(vxx-dx*j);
+                   if ( pos == 'd' ) 
+                     { vy[0]= ym[0];vy[1]=(int) (ym[0] + barlength/2.0) ; }
+                   else 
+                     { vy[0]= ym[0];vy[1]= (int)(ym[0] - barlength/2.0); }
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }}
+             } 
+           if ( i == Nx-1 ) 
+             {
+               int j;
+               double dx ; 
+               vxx1= x_convert(xy_type,x,i+1);
+               dx = (vxx1-vxx)/subtics;
+               for ( j = 1 ; j < subtics; j++) {  
+                 if ( vxx+dx*j < xmax){
+                   vx[0] = vx[1] = XScale(vxx+dx*j);
+                   if ( pos == 'd' ) 
+                     { vy[0]= ym[0];vy[1]= (int)(ym[0] + barlength/2.0) ; }
+                   else 
+                     { vy[0]= ym[0];vy[1]= (int)(ym[0] - barlength/2.0); }
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }}
+             } 
+         }
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+       }
+      break;
+    case 'r' : 
+    case 'l' :
+
+      /** Vertical axes **/
+      barlength =  (integer) (Cscale.WIRect1[2]/75.0);
+      if (str == NULL &&  format == NULL )  
+       switch (xy_type ) {
+       case 'v' : ChoixFormatE1(c_format,y,Ny);break;
+       case 'r' : ChoixFormatE(c_format,y[0],y[1],(y[1]-y[0])/y[2]);break;
+       case 'i' : 
+         ChoixFormatE (c_format,
+                       (y[0] * exp10(y[2])),
+                       (y[1] * exp10(y[2])),
+                       ((y[1] * exp10(y[2])) - (y[0] * exp10(y[2])))/y[3]); break; /* Adding F.Leray 06.05.04 */
+       }
+      /** the vertical segment **/
+      vy[0] =  YScale(y_convert(xy_type, y , 0));
+      vy[1] =  YScale(y_convert(xy_type, y , Ny-1));
+      vx[0]= vx[1] = xm[0]= XScale(x[0]);
+      if ( seg_flag == 1) 
+       {
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+       }
+
+      /***   01/07/2002 -> 11 and 12.05.04 ****/
+      if (version_flag() == 0) psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+      if ((version_flag() == 0) 
+         && (pSUBWIN_FEATURE (psubwin)->tight_limits == TRUE || pSUBWIN_FEATURE (psubwin)->isoview == TRUE )
+         && axisbuild_flag == 0){  
+       ymax=Cscale.frect[3];
+       ymin=Cscale.frect[1];
+
+       if(xy_type == 'i')
+         {
+         /*   y[1] = floor(Cscale.frect[3] / (exp10( y[2]))) ;   */
+/*         y[0] =  ceil(Cscale.frect[1]  / (exp10( y[2]))) ;  */
+
+           y[1] = floor( Cscale.ytics[1] );
+           y[0] =  ceil( Cscale.ytics[0] );
+
+           y[3]=inint(y[1]-y[0]);
+           while (y[3]>10)  y[3]=floor(y[3]/2);
+           Ny=(int)(y[3]+1);
+
+           /* re-compute a format when tight_limits or isoview == ON */
+           ChoixFormatE (c_format,
+                         (y[0] * exp10(y[2])),
+                         (y[1] * exp10(y[2])),
+                         ((y[1] * exp10(y[2])) - (y[0] * exp10(y[2])))/y[3]);
+         }
+       /* THESE 2 last cases are unreachable because we use the condition : */
+       /* axisbuild_flag == 0 */
+       else if (xy_type == 'r') /* normally unreachable */
+         {
+           sciprint(" Normally, unreachable case \n");
+          /*  y[1] = floor(Cscale.frect[3]) ;   */
+/*         y[0] =  ceil(Cscale.frect[1]) ;  */
+/*         y[2]=inint(y[1]-y[0]); */
+/*         while (y[2]>10)  y[2]=floor(y[2]/2); */
+/*         Ny=y[2]+1;  */
+         }
+       else if(xy_type == 'v')  /* normally unreachable */
+         {
+           sciprint(" Normally, unreachable case \n");
+         }
+      }
+
+
+
+      pas = ((double) Cscale.WIRect1[3]) / ((double) Cscale.Waaint1[3]);
+      /** loop on the ticks **/
+      if (Ny==1) break; /*D.Abdemouche 16/12/2003*/
+      for (i=0 ; i < Ny ; i++)
+       { 
+         char foo[100];
+         vxx = y_convert(xy_type,y,i);
+         if ( str != NULL)  
+           sprintf(foo,"%s",str[i]);
+         else if ( format == NULL)
+           { 
+             /* defaults format */
+             /*F.Leray 19.05.04 */
+             /* When Sci_Axis is called by aplotv1, format is NULL : it can not be something else...*/
+             /* format can also be NULL if non specified and coming from ConstructAxes method called in Objdrawaxis (see matdes.c) */
+             sprintf(foo,c_format,vxx);
+           }
+         else{ 
+           sprintf(foo,format,vxx);
+         }
+         
+         
+         C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         
+         /* tick is computed in vx,vy and string is displayed at posi[0],posi[1] position */
+
+         vy[0]= vy[1] = ym[0] = YScale(vxx);
+         posi[1]=inint( ym[0] +rect[3]/2.0);
+         if ( pos == 'r' ) 
+           {
+             posi[0]=inint( xm[0] + 1.2*barlength);
+             vx[0]= xm[0];vx[1]= xm[0]+barlength;
+           }
+         else 
+           { 
+             posi[0]=inint(xm[0] - 1.2*barlength - rect[2]);
+             vx[0]= xm[0];vx[1]= xm[0] - barlength;
+           }
+         if ( textcolor != -1 ) C2F(dr)("xset","pattern",&textcolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         C2F(dr)("xstring",foo,&(posi[0]),&(posi[1]),PI0,&flag,PI0,PI0,&angle, PD0,PD0,PD0,0L,0L);
+         if ( logflag == 'l' )
+           {
+             C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xstring","10",(posi[0] -= logrect[2],&posi[0]),
+                     (posi[1] += logrect[3],&posi[1]),
+                     PI0,&flag,PI0,PI0,&angle,PD0,PD0,PD0,0L,0L);
+             C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+           }
+         if ( textcolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         /*** MAJ Djalel.A 21/01/2003 ***/ 
+         if (version_flag() == 0)
+           if (pSUBWIN_FEATURE (psubwin)->grid[1] > -1 ){ /**DJ.Abdemouche 2003**/
+             if(pSUBWIN_FEATURE (psubwin)->logflags[1] == 'l'){
+               if ((vy[0] != Cscale.WIRect1[1]) && (vy[0] != (Cscale.WIRect1[1]+ Cscale.WIRect1[3])))
+                 {
+                   pstyle=pSUBWIN_FEATURE (psubwin)->grid[1] ;
+                   vx[0]=Cscale.WIRect1[0];
+                   vx[1]=Cscale.WIRect1[0]+Cscale.WIRect1[2];  
+                   C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F (dr) ("xset", "line style",&trois,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&pstyle,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }
+               
+               if(i < Ny -1 ){
+                 int jinit=1;
+                 /* In case there is a log. scale, add. sub-grid taking account of this special scale F.Leray 07.05.04 */
+                 pstyle=pSUBWIN_FEATURE (psubwin)->grid[1] ;
+                 C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 C2F (dr) ("xset", "line style",&trois,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 vx[0]=Cscale.WIRect1[0];
+                 vx[1]=Cscale.WIRect1[0]+Cscale.WIRect1[2]; 
+                 
+                 if ( i== Cscale.Waaint1[3]-1 ) jinit=2; /* no grid on plot boundary */
+                 for (j= jinit; j < 10 ; j++)
+                   {
+                     vy[0]=vy[1]= Cscale.WIRect1[1] + inint( ((double) i+1)*pas)- inint(log10(((double)j))*pas);
+                     C2F(dr)("xsegs","v", vx, vy, &ns,&pstyle,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   }
+                 C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+               }
+             }
+             else  if(pSUBWIN_FEATURE (psubwin)->logflags[1] == 'n'){
+               if ((vy[0] != Cscale.WIRect1[1]) && (vy[0] != (Cscale.WIRect1[1]+ Cscale.WIRect1[3])))
+                 {
+                   pstyle=pSUBWIN_FEATURE (psubwin)->grid[1] ;
+                   vx[0]=Cscale.WIRect1[0];
+                   vx[1]=Cscale.WIRect1[0]+Cscale.WIRect1[2];  
+                   C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F (dr) ("xset", "line style",&trois,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&pstyle,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                   C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }
+             }
+           }
+         /* subtics */
+         if ( i < Ny-1 ) 
+           {
+             int j;
+             double dy ; 
+             vxx1= y_convert(xy_type,y,i+1);
+             dy = (vxx1-vxx)/subtics;
+             for ( j = 1 ; j < subtics; j++) 
+               {
+                 vy[0] = vy[1] = YScale(vxx+dy*j);
+                 if ( pos == 'r' ) 
+                   { vx[0]= xm[0];vx[1]= (integer) (xm[0] + barlength/2.0) ; }
+                 else 
+                   { vx[0]= xm[0];vx[1]= (integer) (xm[0] - barlength/2.0) ; }
+                 C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+               }
+           }
+         /***   01/07/2002 -> 12.05.04 ****/
+         if (version_flag() == 0) psubwin = sciGetSelectedSubWin (sciGetCurrentFigure ());
+         if ((version_flag() == 0) 
+             && (pSUBWIN_FEATURE (psubwin)->tight_limits == TRUE || pSUBWIN_FEATURE (psubwin)->isoview == TRUE )
+             && axisbuild_flag == 0){
+           if ( i == 0 )  
+             {
+               int j;
+               double dy ; 
+               vxx1= y_convert(xy_type,y,i+1);
+               dy = (vxx1-vxx)/subtics;
+               for ( j = 1 ; j < subtics; j++) {  
+                 if ( vxx-dy*j > ymin){
+                   vy[0] = vy[1] = YScale(vxx-dy*j);
+                   if ( pos == 'r' ) 
+                     { vx[0]= xm[0];vx[1]= (int)(xm[0] + barlength/2.0) ; }
+                   else 
+                     { vx[0]= xm[0];vx[1]= (int) (xm[0] - barlength/2.0); }
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }}
+             }
+           if ( i == Ny-1 )
+             {
+               int j;
+               double dy ; 
+               vxx1= y_convert(xy_type,y,i+1);
+               dy = (vxx1-vxx)/subtics;
+               for ( j = 1 ; j < subtics; j++) {  
+                 if ( vxx+dy*j < ymax){
+                   vy[0] = vy[1] = YScale(vxx+dy*j);
+                   if ( pos == 'r' ) 
+                     { vx[0]= xm[0];vx[1]= (int)(xm[0] + barlength/2.0) ; }
+                   else 
+                     { vx[0]= xm[0];vx[1]= (int)(xm[0] - barlength/2.0); }
+                   C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                 }}
+             }  
+         }
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+       }
+      break;
+    }
+  /* reset font to its current size */ 
+  if ( fontsize != -1 || logflag == 'l' )
+    {
+      fontid[1] = fontsize_kp;
+      C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  /* reset to current color */
+  if ( textcolor != -1 || ticscolor != -1 ) 
+    {
+      C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+
+}
+
+/* from double to pixel */ 
+
+static double  x_convert(char xy_type, double *x , int i)
+{
+  switch ( xy_type ) { 
+  case 'v' :  return x[i];
+  case 'r' :  return x[0]+i*(x[1]-x[0])/x[2];
+  case 'i' :  return exp10(x[2])*(x[0] + i*(x[1]-x[0])/x[3]);
+  }
+  return 0.0;
+}
+
+static double y_convert(char xy_type, double *y , int i)
+{
+  switch ( xy_type ) { 
+  case 'v' :  return y[i]; 
+  case 'r' :  return y[0]+i*(y[1]-y[0])/y[2];
+  case 'i' :  return exp10(y[2])*(y[0] + i*(y[1]-y[0])/y[3]); 
+  }
+  return 0.0; 
+}
+
+
+
+/* Format pour imprimer un nombre de la forme k10^a */
+
+extern void NumberFormat(char *str, integer k, integer a)
+{
+  if ( k==0)
+    {
+      sprintf(str,"0");
+    }
+  else
+    {
+      switch (a)
+       {
+       case -1: sprintf(str,"%.1f",(double)k/10.0);break;
+       case -2: sprintf(str,"%.2f",(double)k/100.0);break;
+       case 0 : sprintf(str,"%d",(int)k);break;
+       case 1 : sprintf(str,"%d0",(int)k);break;
+       case 2 : sprintf(str,"%d00",(int)k);break;
+       default: sprintf(str,"%de%d",(int)k,(int)a) ;break;
+
+       }
+    }
+
+}
+
+/*---------------------------------------------------------------------
+ *Trace l'enveloppe convexe de la boite contenant le dessin 
+ * et renvoit dans InsideU et InsideD les indices des points dans xbox et ybox
+ * qui sont sur les 2 tri\`edres a l'interieur de l'enveloppe convexe
+ *---------------------------------------------------------------------*/
+
+void Convex3d_Box(double *xbox, double *ybox, integer *InsideU, integer *InsideD, char *legend, integer *flag, double *bbox)
+{
+  double xmaxi;
+  integer ixbox[8],iybox[8];
+  integer xind[8];
+  integer ind2,ind3,ind;
+  integer p,n,dvect[1],dash[6];
+  integer verbose=0,narg,pat;
+  integer i,j;
+  /** dans xbox[8] se trouve l'abscisse des points successifs   **/
+  /** de la boite qui continent la surface                      **/
+  /** on stocke dans xind[8] les indices des points de la boite **/
+  /** qui sont sur l'enveloppe convexe en partant du pointeger en haut **/
+  /** a droite et en tournant ds le sens trigonometrique           **/
+  /** par exemple avec : **/
+  /*      4 ----- 5        */
+  /*       /    /|         */
+  /*     7----6  |         */
+  /*      | 0 | / 1        */
+  /*     3----- 2          */
+  /** on doit trouver xind={5,4,7,3,2,1}; **/
+  /** on en profite pour stocker aussi les points des triedres **/
+
+  xmaxi=((double) Maxi(xbox,8L));
+  ind= -1;
+  for (i =0 ; i < 8 ; i++)
+    {
+      MaxiInd(xbox,8L,&ind,xmaxi);
+      if ( ind > 3)
+       {
+         xind[0]=ind;
+         break;
+       }
+    }
+  if (ind < 0 || ind > 8) 
+    {
+      Scistring("xind out of bounds");
+      xind[0]=0;
+    }
+  UpNext(xind[0],&ind2,&ind3);
+  if (ybox[ind2] > ybox[ind3]) 
+    {
+      xind[1]=ind2;InsideU[0]=ind3;
+    }
+  else 
+    {
+      xind[1]=ind3;InsideU[0]=ind2;
+    }
+  UpNext(ind2,&ind2,&ind3); InsideU[1]=xind[0];
+  InsideU[2]=ind2; InsideU[3]=InsideU[0]-4;
+  xind[2]=ind2;
+  /* le pointeger en bas qui correspond */
+  xind[3]=ind2-4;
+  DownNext(xind[3],&ind2,&ind3);
+  if (ybox[ind2] < ybox[ind3]) 
+    {
+      xind[4]=ind2;InsideD[0]=ind3;
+    }
+  else  
+    {
+      xind[4]=ind3;InsideD[0]=ind2;
+    }
+  DownNext(ind2,&ind2,&ind3);
+  InsideD[1]=xind[3];
+  InsideD[2]=ind2;
+  InsideD[3]=InsideD[0]+4;
+  xind[5]=ind2;
+  for (i=0; i < 6 ; i++)
+    {
+      ixbox[i]=XScale(xbox[xind[i]]);
+      iybox[i]=YScale(ybox[xind[i]]);
+    }
+  ixbox[6]=ixbox[0];iybox[6]=iybox[0];
+  p=7,n=1;
+  C2F(dr)("xget","foreground",&verbose,dvect,&narg, PI0, PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  /** On trace l'enveloppe cvxe **/
+  C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","line style",(j=1,&j),PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    
+  if (flag[2]>=3){
+    C2F(dr)("xpolys","v",ixbox,iybox,dvect,&n,&p
+           ,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  }
+  C2F(dr)("xget","pattern",&verbose,&pat,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","pattern",dvect,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+  if (flag[2]>=3)AxesStrings(flag[2],ixbox,iybox,xind,legend,bbox);
+  C2F(dr)("xset","pattern",&pat,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+}
+
+
+
+
+static void axesplot(strflag, psubwin)
+     char * strflag;
+     sciPointObj * psubwin;
+{
+  char dir = 'l';
+  char c = (strlen(strflag) >= 3) ? strflag[2] : '1';
+  int seg=0;
+  int fontsize = -1 ,textcolor = -1 ,ticscolor = -1 ; /* default values */
+  int fontstyle= 0;
+  double  x1,y1;
+  char xstr,ystr; 
+  char dirx = 'd';
+ /*  double CSxtics[4], CSytics[4]; */
+
+
+  int lastxindex = 0, lastyindex = 0;
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+
+  if( ppsubwin->tight_limits == TRUE || ppsubwin->isoview == TRUE)
+    {
+      switch ( c )
+       {
+       case '3' : /* right axis */
+         x1= ppsubwin->axes.xlim[1];
+         y1= ppsubwin->axes.ylim[0];
+         dir = 'r';
+         break;
+       case '4' : /* centred axis */
+         seg=1;
+         x1= (ppsubwin->axes.xlim[0]+ppsubwin->axes.xlim[1])/2.0;
+         y1= (ppsubwin->axes.ylim[0]+ppsubwin->axes.ylim[1])/2.0;
+         break ;
+       case '5': /* centred at (0,0) */
+         seg=1;
+         x1 = y1 = 0.0;
+         break;
+       case '1' : /* left axis */
+       default :
+         x1=  ppsubwin->axes.xlim[0];
+         y1=  ppsubwin->axes.ylim[1];
+         break;
+       }
+    }
+  else  /* tight_limits == FALSE */
+    {
+      lastxindex = ppsubwin->axes.nxgrads - 1;
+      lastyindex = ppsubwin->axes.nygrads - 1;
+     
+        switch ( c )
+       {
+       case '3' : /* right axis */
+         x1= ppsubwin->axes.xgrads[lastxindex];
+         y1= ppsubwin->axes.ygrads[0];
+         dir = 'r';
+         break;
+       case '4' : /* centred axis */
+         seg=1;
+         x1= (ppsubwin->axes.xgrads[0]+ppsubwin->axes.xgrads[lastxindex])/2.0;
+         y1= (ppsubwin->axes.ygrads[0]+ppsubwin->axes.ygrads[lastyindex])/2.0;
+         break ;
+       case '5': /* centred at (0,0) */
+         seg=1;
+         x1 = y1 = 0.0;
+         break;
+       case '1' : /* left axis */
+       default :
+         x1= ppsubwin->axes.xgrads[0];
+         y1= ppsubwin->axes.ygrads[0];
+       break;
+       }
+    }
+       
+
+
+  if(ppsubwin->tight_limits == TRUE || ppsubwin->isoview == TRUE)
+    {
+      if (c != '4')
+       {
+         xstr=ppsubwin->axes.xdir;
+         if(ppsubwin->axes.reverse[1] == FALSE)
+           { /* y reverse axis : NO */
+             switch (xstr)
+               {
+               case 'u':
+                 y1= ppsubwin->axes.ylim[1];
+                 dirx='u';
+                 break;
+               case 'c':
+                 y1= (ppsubwin->axes.ylim[0]>0.0)?ppsubwin->axes.ylim[0]:0.0;
+                 y1= (ppsubwin->axes.ylim[1]<0.0)?ppsubwin->axes.ylim[0]:y1;
+                 seg =1;
+                 dirx ='d';
+                 break;
+               default :
+                 y1= ppsubwin->axes.ylim[0];
+                 dirx ='d';
+                 break;
+               }
+           }
+         else
+           { /* y reverse axis : YES */
+             switch (xstr)
+               {
+               case 'u':
+                 y1= ppsubwin->axes.ylim[0];
+                 dirx='u';
+                 break;
+               case 'c':
+                 y1= (ppsubwin->axes.ylim[0]>0.0)?ppsubwin->axes.ylim[0]:0.0;
+                 y1= (ppsubwin->axes.ylim[1]<0.0)?ppsubwin->axes.ylim[0]:y1;
+                 seg =1;
+                 dirx ='d';
+                 break;
+               default :
+                 y1= ppsubwin->axes.ylim[1];
+                 dirx ='d';
+                 break;
+               }
+           }
+
+         ystr=ppsubwin->axes.ydir;
+         if(ppsubwin->axes.reverse[0] == FALSE)
+           { /* x reverse axis : NO */
+             switch (ystr)
+               {
+               case 'r':
+                 x1= ppsubwin->axes.xlim[1];
+                 dir='r';
+                 break;
+               case 'c':
+                 x1=(ppsubwin->axes.xlim[0]>0.0)?ppsubwin->axes.xlim[0]:0.0;
+                 x1=(ppsubwin->axes.xlim[1]<0.0)?ppsubwin->axes.xlim[0]:x1;
+                 seg =1;
+                 dir ='l';
+                 break;
+               default :
+                 x1= ppsubwin->axes.xlim[0];
+                 dir ='l';
+                 break;
+               }
+           }
+         else
+           { /* x reverse axis : YES */
+             switch (ystr)
+               {
+               case 'r':
+                 x1= ppsubwin->axes.xlim[0];
+                 dir='r';
+                 break;
+               case 'c':
+                 x1=(ppsubwin->axes.xlim[0]>0.0)?ppsubwin->axes.xlim[0]:0.0;
+                 x1=(ppsubwin->axes.xlim[1]<0.0)?ppsubwin->axes.xlim[0]:x1;
+                 seg =1;
+                 dir ='l';
+                 break;
+               default :
+                 x1= ppsubwin->axes.xlim[1];
+                 dir ='l';
+                 break;
+               }
+           }
+       }
+    }
+  else  /* tight_limits == FALSE */
+    {
+      lastxindex = ppsubwin->axes.nxgrads - 1;
+      lastyindex = ppsubwin->axes.nygrads - 1;
+      
+      if (c != '4')
+       {
+         xstr=ppsubwin->axes.xdir;
+         if(ppsubwin->axes.reverse[1] == FALSE)
+           { /* y reverse axis : NO */
+             switch (xstr)
+               {
+               case 'u':
+                 y1=ppsubwin->axes.ygrads[lastyindex];
+                 dirx='u';
+                 break;
+               case 'c':
+                 y1=(ppsubwin->axes.ygrads[0]>0.0)?ppsubwin->axes.ygrads[0]:0.0;
+                 y1=(ppsubwin->axes.ygrads[lastyindex]<0.0)?ppsubwin->axes.ygrads[0]:y1;
+                 seg =1;
+                 dirx ='d';
+             break;
+               default :
+                 y1= ppsubwin->axes.ygrads[0];
+                 dirx ='d';
+                 break;
+               }
+           }
+         else
+           { /* y reverse axis : YES */
+             switch (xstr)
+               {
+               case 'u':
+                 y1=ppsubwin->axes.ygrads[0];
+                 dirx='u';
+                 break;
+               case 'c':
+                 y1=(ppsubwin->axes.ygrads[0]>0.0)?ppsubwin->axes.ygrads[0]:0.0;
+                 y1=(ppsubwin->axes.ygrads[lastyindex]<0.0)?ppsubwin->axes.ygrads[0]:y1;
+                 seg =1;
+                 dirx ='d';
+                 break;
+               default :
+                 y1= ppsubwin->axes.ygrads[lastyindex];
+                 dirx ='d';
+                 break;
+               }
+           }
+         
+         ystr=ppsubwin->axes.ydir;
+         if(ppsubwin->axes.reverse[0] == FALSE)
+           { /* x reverse axis : NO */
+             switch (ystr)
+               {
+               case 'r':
+                 x1= ppsubwin->axes.xgrads[lastxindex];
+                 dir='r';
+                 break;
+               case 'c':
+                 x1=(ppsubwin->axes.xgrads[0]>0.0)?ppsubwin->axes.xgrads[0]:0.0;
+                 x1=(ppsubwin->axes.xgrads[lastxindex]<0.0)?ppsubwin->axes.xgrads[0]:x1;
+                 seg =1;
+                 dir ='l';
+                 break;
+               default :
+                 x1= ppsubwin->axes.xgrads[0];
+                 dir ='l';
+                 break;
+               }
+           }
+         else
+           { /* x reverse axis : YES */
+             switch (ystr)
+               {
+               case 'r':
+                 x1= ppsubwin->axes.xgrads[0];
+                 dir='r';
+                 break;
+               case 'c':
+                 x1=(ppsubwin->axes.xgrads[0]>0.0)?ppsubwin->axes.xgrads[0]:0.0;
+                 x1=(ppsubwin->axes.xgrads[lastxindex]<0.0)?ppsubwin->axes.xgrads[0]:x1;
+                 seg =1;
+                 dir ='l';
+                 break;
+               default :
+                 x1= ppsubwin->axes.xgrads[lastxindex];
+                 dir ='l';
+                 break;
+               }
+           }
+       }
+    }
+  
+  ticscolor=sciGetForeground(psubwin);
+  textcolor=sciGetFontForeground(psubwin);
+  fontsize=sciGetFontDeciWidth(psubwin)/100;
+  fontstyle=sciGetFontStyle(psubwin);
+  /** x-axis **/
+  SciAxisNew(dirx,psubwin,y1,fontsize,fontstyle,textcolor,ticscolor,seg);
+  
+  /** y-axis **/
+  SciAxisNew(dir,psubwin,x1,fontsize,fontstyle,textcolor,ticscolor,seg);
+
+  /* Once the 2 axes are plotted, we can draw :
+     1. the axes lines
+     2. the box lines over if necessary (i.e. seg == 1) */
+  if ( ppsubwin->axes.axes_visible[0] )
+  {
+    SciDrawLines(dirx,psubwin,y1,textcolor,ticscolor);
+  }
+  SciDrawLines(dir, psubwin,x1,textcolor,ticscolor);
+  
+  
+  if ( c != '4' && c != '5' )
+  {
+    if ( sciGetBoxType(psubwin) == BT_OFF || sciGetBoxType(psubwin) == BT_HIDDEN_AXIS )
+    {
+      seg = 1 ;
+    }
+    else
+    {
+      /** frame rectangle **/
+      C2F(dr)("xrect","v",&Cscale.WIRect1[0],&Cscale.WIRect1[1],&Cscale.WIRect1[2],&Cscale.WIRect1[3], 
+             PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  }
+}
+
+
+/****************************************************************************/
+/********************************** COMMON to X and Y ***********************/
+/****************************************************************************/
+
+
+int SciDrawLines(char pos, sciPointObj * psubwin, double xy, int textcolor,int ticscolor)
+{
+  double xminval, yminval, xmaxval, ymaxval;
+  int verbose = 0, narg, color_kp;
+
+  if ( textcolor != -1 || ticscolor != -1 ) 
+    {
+      C2F(dr)("xget","pattern",&verbose,&color_kp,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  
+  FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval);
+
+  if(pos=='u' || pos=='d'){ /* X */
+    if( pSUBWIN_FEATURE (psubwin)->axes.axes_visible[0] == TRUE )
+      XDrawAxisLine(xminval,xmaxval,xy,ticscolor,color_kp);
+  } else if(pos=='l' || pos=='r'){ /* Y */
+    if(pSUBWIN_FEATURE (psubwin)->axes.axes_visible[1] == TRUE)
+      YDrawAxisLine(yminval,ymaxval,xy,ticscolor,color_kp);
+  }
+  
+  
+  
+  
+  return 0;
+}
+
+/****************************************************************************/
+/********************************** X ***************************************/
+/****************************************************************************/
+
+
+static int DrawXSubTics(char pos, sciPointObj * psubwin, double xy,int ticscolor,int color_kp)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval,yminval,xmaxval,ymaxval;
+   
+  int vx[2],vy[2],ym[2];
+  int barlength = 0;
+  int ns=2,iflag=0;
+  
+  int nbtics = 0,i,j;
+  int nbsubtics = ppsubwin->axes.nbsubtics[0];
+  char logflag = ppsubwin->logflags[0];
+  
+  double *grads = (double *) NULL;
+
+  ym[0] = YScale(xy);
+   
+  barlength =  (integer) (Cscale.WIRect1[3]/50.0);
+  
+  FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval); /* here i only need x data (ymin ymax are computed but not used after) */
+
+  if(ppsubwin->axes.auto_ticks[0] == FALSE){
+    grads =  ppsubwin->axes.u_xgrads;
+    nbtics = ppsubwin->axes.u_nxgrads;
+  }
+  else{
+    grads =  ppsubwin->axes.xgrads;
+    nbtics = ppsubwin->axes.nxgrads;
+  }
+  
+  
+  if(logflag =='l')
+    {
+      double tmp[2];
+      double pas=0;
+      double * tmp_log_grads = (double *) NULL;
+      
+      for(i=0;i<nbtics-1;i++)
+       {
+         int k;
+         tmp[0] = exp10(grads[i]);
+         tmp[1] = exp10(grads[i+1]);
+         pas = (exp10(grads[i+1]) - exp10(grads[i])) / (nbsubtics );
+         
+         if((tmp_log_grads = (double *)MALLOC(nbsubtics*sizeof(double)))==NULL){
+           sciprint("Error allocating tmp_log_grads\n");
+           return -1;
+         }
+         
+         for(k=0;k<nbsubtics;k++) tmp_log_grads[k] = log10(tmp[0]+(k)*pas);
+         
+         for(j=0;j<nbsubtics;j++)
+           {
+             double val = tmp_log_grads[j];
+              /* the length of the ticks in pixels */
+              /* minimum 2 pixels */
+              /* use of integer division for speed */
+              int ticksLength =  Max( ( 3 * barlength ) / 4,  2 ) ;
+             vx[0] = vx[1] = XScale(val);
+             
+             if(val<xminval || val>xmaxval) continue;     
+             
+             if ( pos == 'd' ) 
+              { 
+                vy[0] = ym[0] ;
+                vy[1] = ym[0] + ticksLength ; 
+              }
+             else 
+              { 
+                vy[0] = ym[0] ; 
+                vy[1] = ym[0] - ticksLength ;
+              }
+              if ( ppsubwin->axes.axes_visible[0] )
+              {
+                C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+         
+         FREE(tmp_log_grads); tmp_log_grads = NULL;
+       }
+    }
+  else
+    {
+      for(i=0;i<nbtics-1;i++)
+       {
+         double xtmp = grads[i];
+         double dx = (grads[i+1]-grads[i]) / nbsubtics;
+         for( j = 0 ; j < nbsubtics ; j++ )
+           {
+             double val = xtmp+dx*j;
+              /* the length of the ticks in pixels */
+              /* minimum 2 pixels */
+              /* use of integer division for speed */
+              int ticksLength =  Max( ( 3 * barlength ) / 4,  2 ) ;
+             vx[0] = vx[1] = XScale(val);
+             
+             if(val<xminval || val>xmaxval) continue;     
+             
+             if ( pos == 'd' ) 
+             {
+                
+                vy[0]= ym[0];
+                vy[1]= ym[0] + ticksLength ; 
+              }
+             else 
+              { 
+                vy[0]= ym[0];
+                vy[1]= ym[0] - ticksLength ; 
+              }
+              if ( ppsubwin->axes.axes_visible[0] )
+              {
+                C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+       }
+    }
+  
+  return 0;
+}
+
+
+static int DrawXGrid(sciPointObj * psubwin)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval,yminval,xmaxval,ymaxval;
+  int verbose=0,narg;
+
+  int vx[2],vy[2],ym[2];
+  int dash[6],lineMode=2;
+  int ns=2,style=0,iflag=0;
+  
+  double * grads = (double *) NULL;
+  int nbtics = 0,i,j;
+  int nbsubtics = ppsubwin->axes.nbsubtics[0];
+  char logflag = ppsubwin->logflags[0];
+   
+  FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval);
+  
+  
+  ym[0] = YScale(yminval);
+  ym[1] = YScale(ymaxval);
+
+  if(ppsubwin->axes.auto_ticks[0] == FALSE){
+    grads =  ppsubwin->axes.u_xgrads;
+    nbtics = ppsubwin->axes.u_nxgrads;
+  }
+  else{
+    grads =  ppsubwin->axes.xgrads;
+    nbtics = ppsubwin->axes.nxgrads;
+  }
+  
+  /* Grid style */
+  C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F (dr) ("xset", "line style",&lineMode,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  style = ppsubwin->grid[0];
+  
+  /* Grid based on tics */
+  for(i=0;i<nbtics;i++)
+    {
+      double xtmp = grads[i];
+      vx[0] = vx[1] = XScale(xtmp);
+      
+      if(xtmp<xminval || xtmp>xmaxval) continue;          
+      
+      vy[0]= ym[0];vy[1]=  ym[1];
+      if ( ppsubwin->axes.axes_visible[0] )
+      {
+        C2F(dr)("xsegs","v", vx, vy, &ns,&style,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      }
+    }
+  
+  /* Grid based on subtics : ONLY for log. case */
+  if(logflag =='l')
+    {
+      double tmp[2];
+      double pas=0;
+      double * tmp_log_grads = (double *) NULL;
+      
+      for(i=0;i<nbtics-1;i++)
+       {
+         int k;
+         tmp[0] = exp10(grads[i]);
+         tmp[1] = exp10(grads[i+1]);
+         pas = (exp10(grads[i+1]) - exp10(grads[i])) / (nbsubtics );
+         
+         if((tmp_log_grads = (double *)MALLOC(nbsubtics*sizeof(double)))==NULL){
+           sciprint("Error allocating tmp_log_grads\n");
+           return -1;
+         }
+         
+         for(k=0;k<nbsubtics;k++) tmp_log_grads[k] = log10(tmp[0]+(k)*pas);
+         
+         for(j=0;j<nbsubtics;j++)
+           {
+             double val = tmp_log_grads[j];
+             vx[0] = vx[1] = XScale(val);
+             
+             if(val<xminval || val>xmaxval) continue;    
+             
+             vy[0]= ym[0];vy[1]=  ym[1];
+             if ( ppsubwin->axes.axes_visible[0] )
+              {
+                C2F(dr)("xsegs","v", vx, vy, &ns,&style,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+         
+         FREE(tmp_log_grads); tmp_log_grads = NULL;
+       }
+    }
+  /* return to solid mode (in default mode) */
+  C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  
+
+  return 0;
+}
+
+
+
+static void DrawXTics(char pos, sciPointObj * psubwin, double xy, char * c_format, int * fontid, int textcolor,int ticscolor,int color_kp, int *logrect, int smallersize)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval,yminval,xmaxval,ymaxval;
+  int  flag=0,xx=0,yy=0,rect[4];
+  
+  int vx[2],vy[2],xm[2],ym[2];
+  int barlength = 0;
+  int posi[2];
+  double angle=0.0;
+  int ns=2,iflag=0;
+  
+  int nbtics = 0,i;
+  char logflag = ppsubwin->logflags[0];
+
+  ym[0] = YScale(xy);
+  barlength =  Max( (integer) (Cscale.WIRect1[3]/50.0), 2 ) ;
+  
+  /*ppsubwin->firsttime_x = TRUE;*/
+  
+  if(ppsubwin->axes.auto_ticks[0] == FALSE)
+    {
+      /* we display the x tics specified by the user*/
+      FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval); /* here i only need x data (ymin ymax are computed but not used after) */
+      nbtics = ppsubwin->axes.u_nxgrads;
+      
+      for(i=0;i<nbtics;i++)
+       {
+         double xtmp = ppsubwin->axes.u_xgrads[i];
+         char *foo = ppsubwin->axes.u_xlabels[i];
+         
+         if(xtmp<xminval || xtmp>xmaxval) continue; /* cas ou TL est ON et on a des graduations qui ne seront pas affichées de tte facon */
+                                                    /* donc autant ne pas aller plus loin dans l'algo... */
+         
+
+         /***************************************************************/
+         /************************* COMMON PART *************************/
+         /***************************************************************/
+         
+         C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         /* tick is computed in vx,vy and string is displayed at posi[0],posi[1] position */
+         
+         vx[0] = vx[1] = xm[0] =  XScale(xtmp);
+         posi[0] = inint( xm[0] -rect[2]/2.0);
+         
+         if ( pos == 'd')
+           {
+             posi[1]=inint( ym[0] + 1.2*barlength + rect[3]);
+             vy[0]= ym[0];vy[1]= ym[0] + barlength ;
+           }
+         else 
+           {
+             posi[1]=inint( ym[0] - 1.2*barlength);
+             vy[0]= ym[0];vy[1]= ym[0] - barlength;
+           }
+          
+         if ( ppsubwin->axes.axes_visible[0] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&textcolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         
+            C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            C2F(dr)("xstring",foo,&(posi[0]),&(posi[1]),PI0,&flag,PI0,PI0,&angle, PD0,PD0,PD0,0L,0L);
+          }
+         XGradPosition(psubwin,posi[1],rect[3]);
+/*       if ( logflag == 'l' ) */
+/*         { */
+/*           C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); */
+/*           C2F(dr)("xstring","10",(posi[0] -= logrect[2],&posi[0]), */
+/*                   (posi[1] += logrect[3],&posi[1]), */
+/*                   PI0,&flag,PI0,PI0,&angle,PD0,PD0,PD0,0L,0L); */
+/*           C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); */
+/*         } */
+          if ( ppsubwin->axes.axes_visible[0] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            /* le tic proprement dit ("petit baton") */
+            C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+          }
+         if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         
+         /***************************************************************/
+         /************************* END COMMON PART *********************/
+         /***************************************************************/
+         
+       }
+      
+    }
+  else
+    {
+      
+      FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval); /* here i only need x data (ymin ymax are computed but not used after) */
+      nbtics = ppsubwin->axes.nxgrads;
+      
+
+      /* test ici */
+    /*   for(i=0;i<nbtics;i++) sciprint("xgrads(%d) = %lf\n",i,ppsubwin->axes.xgrads[i]); */
+/*       sciprint("\n\n"); */
+
+      for(i=0;i<nbtics;i++)
+       {
+         char foo[256]; 
+         double xtmp = ppsubwin->axes.xgrads[i];
+         
+         /* if ( xtmp < xminval || xtmp > xmaxval )  */
+/*           { */
+/*             continue; /\* cas ou TL est ON et on a des graduations qui ne seront pas affichées de tte facon *\/ */
+/*                       /\* donc autant ne pas aller plus loin dans l'algo... *\/ */
+/*           } */
+          
+          /* chack that xtmp < xminval || xtmp > xmalval */
+          /* but if xtmp is very close to xminval or xmaxval we display it */
+          if ( !SAFE_LT( xminval, xtmp, EPSILON ) || !SAFE_LT( xtmp, xmaxval, EPSILON ) )
+          {
+            continue ;
+          }
+
+         sprintf(foo,c_format,xtmp);
+         
+         /***************************************************************/
+         /************************* COMMON PART *************************/
+         /***************************************************************/
+
+         C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         /* tick is computed in vx,vy and string is displayed at posi[0],posi[1] position */
+         
+         vx[0] = vx[1] = xm[0] =  XScale(xtmp);
+         posi[0] = inint( xm[0] -rect[2]/2.0);
+         
+         if ( pos == 'd')
+           {
+             posi[1]=inint( ym[0] + 1.2*barlength + rect[3]);
+             vy[0]= ym[0];vy[1]= ym[0] + barlength ;
+           }
+         else 
+           {
+             posi[1]=inint( ym[0] - 1.2*barlength);
+             vy[0]= ym[0];vy[1]= ym[0] - barlength;
+           }
+         
+         /*      if ( pos == 'd' )  */
+/*         { */
+/*           posi[1]=inint( ym[0] + 1.2*barlength + rect[3]); */
+/*           vy[0]= ym[0];vy[1]= ym[0] + barlength ; */
+/*         } */
+/*       else  */
+/*         {  */
+/*           posi[1]=inint( ym[0] - 1.2*barlength); */
+/*           vy[0]= ym[0];vy[1]= ym[0] - barlength; */
+/*         } */
+         if ( ppsubwin->axes.axes_visible[0] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&textcolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            /* if ( logflag == 'l' ) */
+/*             { */
+/*               C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ; */
+/*             } */
+            
+            C2F(dr)("xstring",foo,&(posi[0]),&(posi[1]),PI0,&flag,PI0,PI0,&angle, PD0,PD0,PD0,0L,0L);
+          }
+         XGradPosition(psubwin,posi[1],rect[3]);
+         if ( logflag == 'l' )
+           {
+              if ( ppsubwin->axes.axes_visible[0] )
+              {
+                C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                
+                C2F(dr)("xstring","10",(posi[0] -= logrect[2],&posi[0]),
+                        (posi[1] += logrect[3],&posi[1]),
+                        PI0,&flag,PI0,PI0,&angle,PD0,PD0,PD0,0L,0L);
+              }
+             XGradPosition(psubwin,posi[1],rect[3]);
+              if ( ppsubwin->axes.axes_visible[0] )
+              {
+                C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+          if ( ppsubwin->axes.axes_visible[0] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            if ( ticscolor != -1 )
+            {
+              C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            }
+            
+            /* le tic proprement dit ("petit baton") */
+           C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L); 
+            
+            if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+          }
+         /***************************************************************/
+         /************************* END COMMON PART *********************/
+         /***************************************************************/
+
+
+       }
+      
+
+    }
+  
+
+  
+
+  
+
+}
+
+
+/****************************************************************************/
+/********************************** Y ***************************************/
+/****************************************************************************/
+
+
+
+static int DrawYSubTics(char pos, sciPointObj * psubwin, double xy,int ticscolor,int color_kp)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval,yminval,xmaxval,ymaxval;
+
+  int vx[2],vy[2],xm[2];
+  int barlength = 0;
+ int ns=2,iflag=0;
+  
+  int nbtics = 0,i,j;
+  int nbsubtics = ppsubwin->axes.nbsubtics[1];
+  char logflag = ppsubwin->logflags[1];
+  
+  double *grads = (double *) NULL;
+
+  xm[0] = XScale(xy);
+   
+  barlength =  (integer) (Cscale.WIRect1[2]/75.0);
+  
+  FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval); /* here i only need x data (ymin ymax are computed but not used after) */
+
+  if(ppsubwin->axes.auto_ticks[1] == FALSE){
+    grads =  ppsubwin->axes.u_ygrads;
+    nbtics = ppsubwin->axes.u_nygrads;
+  }
+  else{
+    grads =  ppsubwin->axes.ygrads;
+    nbtics = ppsubwin->axes.nygrads;
+  }
+  
+  
+  if(logflag =='l')
+    {
+      double tmp[2];
+      double pas=0;
+      double * tmp_log_grads = (double *) NULL;
+      
+      for(i=0;i<nbtics-1;i++)
+       {
+         int k;
+         tmp[0] = exp10(grads[i]);
+         tmp[1] = exp10(grads[i+1]);
+         pas = (exp10(grads[i+1]) - exp10(grads[i])) / (nbsubtics );
+         
+         if((tmp_log_grads = (double *)MALLOC(nbsubtics*sizeof(double)))==NULL){
+           sciprint("Error allocating tmp_log_grads\n");
+           return -1;
+         }
+         
+         for(k=0;k<nbsubtics;k++) tmp_log_grads[k] = log10(tmp[0]+(k)*pas);
+         
+         for(j=0;j<nbsubtics;j++)
+           {
+             double val = tmp_log_grads[j];
+              /* the length of the ticks in pixels */
+              /* minimum 2 pixels */
+              /* use of integer division for speed */
+              int ticksLength =  Max( ( 3 * barlength ) / 4,  1 ) ;
+             vy[0] = vy[1] = YScale(val);
+             
+             if(val<yminval || val>ymaxval) continue;     
+             
+             if ( pos == 'r' ) 
+              { 
+                vx[0] = xm[0] ;
+                vx[1] = xm[0] + ticksLength ; 
+              }
+             else 
+              { 
+                vx[0] = xm[0] ;
+                vx[1] = xm[0] - ticksLength ; 
+              }
+              if ( ppsubwin->axes.axes_visible[1] )
+              {
+                C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+         
+         FREE(tmp_log_grads); tmp_log_grads = NULL;
+       }
+    }
+  else
+    {
+      for(i=0;i<nbtics-1;i++)
+       {
+         double xtmp = grads[i];
+         double dx = (grads[i+1]-grads[i]) / nbsubtics;
+         for(j=0;j<nbsubtics;j++)
+           {
+             double val = xtmp+dx*j;
+              /* the length of the ticks in pixels */
+              /* minimum 2 pixels */
+              /* use of integer division for speed */
+              int ticksLength =  Max( ( 3 * barlength ) / 4, 1 ) ;
+             vy[0] = vy[1] = YScale(val);
+             
+             if(val<yminval || val>ymaxval) continue;     
+             
+             if ( pos == 'r' ) 
+              { 
+                vx[0] = xm[0] ;
+                vx[1]=  xm[0] + ticksLength ; 
+              }
+             else 
+              { 
+                vx[0] = xm[0] ;
+                vx[1] = xm[0] - ticksLength ; 
+              }
+              if ( ppsubwin->axes.axes_visible[1] )
+              {
+                C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+       }
+    }
+  
+  return 0;
+}
+
+
+static int DrawYGrid(sciPointObj * psubwin)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval,yminval,xmaxval,ymaxval;
+  int verbose=0,narg;
+
+  int vx[2],vy[2],xm[2];
+  int dash[6],lineMode=2;
+  int ns=2,style=0,iflag=0;
+  
+  double * grads = (double *) NULL;
+  int nbtics = 0,i,j;
+  int nbsubtics = ppsubwin->axes.nbsubtics[1];
+  char logflag = ppsubwin->logflags[1];
+   
+  FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval);
+  
+  
+  xm[0] = XScale(xminval);
+  xm[1] = XScale(xmaxval);
+
+  if(ppsubwin->axes.auto_ticks[1] == FALSE){
+    grads =  ppsubwin->axes.u_ygrads;
+    nbtics = ppsubwin->axes.u_nygrads;
+  }
+  else{
+    grads =  ppsubwin->axes.ygrads;
+    nbtics = ppsubwin->axes.nygrads;
+  }
+  
+  /* Grid style */
+  C2F(dr)("xget","line style",&verbose,dash,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F (dr) ("xset", "line style",&lineMode,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  style = ppsubwin->grid[1];
+  
+  /* Grid based on tics */
+  for(i=0;i<nbtics;i++)
+    {
+      double xtmp = grads[i];
+      vy[0] = vy[1] = YScale(xtmp);
+      
+      if(xtmp<yminval || xtmp>ymaxval) continue;          
+      
+      vx[0]= xm[0];vx[1]=  xm[1];
+      if ( ppsubwin->axes.axes_visible[1] )
+      {
+        C2F(dr)("xsegs","v", vx, vy, &ns,&style,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+      }
+    }
+  
+  /* Grid based on subtics : ONLY for log. case */
+  if(logflag =='l')
+    {
+      double tmp[2];
+      double pas=0;
+      double * tmp_log_grads = (double *) NULL;
+      
+      for(i=0;i<nbtics-1;i++)
+       {
+         int k;
+         tmp[0] = exp10(grads[i]);
+         tmp[1] = exp10(grads[i+1]);
+         pas = (exp10(grads[i+1]) - exp10(grads[i])) / (nbsubtics );
+         
+         if((tmp_log_grads = (double *)MALLOC(nbsubtics*sizeof(double)))==NULL){
+           sciprint("Error allocating tmp_log_grads\n");
+           return -1;
+         }
+         
+         for(k=0;k<nbsubtics;k++) tmp_log_grads[k] = log10(tmp[0]+(k)*pas);
+         
+         for(j=0;j<nbsubtics;j++)
+           {
+             double val = tmp_log_grads[j];
+             vy[0] = vy[1] = YScale(val);
+             
+             if(val<yminval || val>ymaxval) continue;    
+             
+             vx[0]= xm[0];vx[1]=  xm[1];
+             if ( ppsubwin->axes.axes_visible[1] )
+              {
+                C2F(dr)("xsegs","v", vx, vy, &ns,&style,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+         
+         FREE(tmp_log_grads); tmp_log_grads = NULL;
+       }
+    }
+
+  /* return to solid mode (in default mode) */
+  C2F(dr)("xset","line style",dash,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+  return 0;
+}
+
+
+
+
+
+static void DrawYTics(char pos, sciPointObj * psubwin, double xy, char * c_format, int * fontid, int textcolor,int ticscolor,int color_kp, int *logrect, int smallersize)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval,yminval,xmaxval,ymaxval;
+  int  flag=0,xx=0,yy=0,rect[4];
+  
+  int vx[2],vy[2],xm[2],ym[2];
+  int barlength = 0;
+  int posi[2];
+  double angle=0.0;
+  int ns=2,iflag=0;
+  
+  int nbtics = 0,i;
+  char logflag = ppsubwin->logflags[1];
+  
+  xm[0] = XScale(xy); /* F.Leray modified le 28.09.04 */
+  /*  xm[0] = (ppsubwin->logflags[0]=='n')?XScale(xy):XLogScale(xy);*/
+  
+  /* at least 1 pixels */
+  barlength =  Max( (integer) (Cscale.WIRect1[2]/75.0), 2 ) ;
+  
+  /* ppsubwin->firsttime_y = TRUE */;
+
+  if(ppsubwin->axes.auto_ticks[1] == FALSE)
+    {
+      /* we display the x tics specified by the user*/
+      FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval); /* here i only need y data (xmin xmax are computed but not used after) */
+      nbtics = ppsubwin->axes.u_nygrads;
+      
+      for(i=0;i<nbtics;i++)
+       {
+         double ytmp = ppsubwin->axes.u_ygrads[i];
+         char *foo = ppsubwin->axes.u_ylabels[i];
+         
+         if(ytmp<yminval || ytmp>ymaxval) continue; /* cas ou TL est ON et on a des graduations qui ne seront pas affichées de tte facon */
+                                                    /* donc autant ne pas aller plus loin dans l'algo... */
+
+         /* Rajout 24.09.04 */
+/*       if(logflag == 'l') */
+/*         ytmp = log10(ytmp); */
+         /* fin Rajout 24.09.04 */
+
+         /***************************************************************/
+         /************************* COMMON PART *************************/
+         /***************************************************************/
+         
+         C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         /* tick is computed in vx,vy and string is displayed at posi[0],posi[1] position */
+         
+         vy[0]= vy[1] = ym[0] = YScale(ytmp);
+         posi[1]=inint( ym[0] +rect[3]/2.0);
+         if ( pos == 'r' ) 
+           {
+             posi[0]=inint( xm[0] + 1.2*barlength);
+             vx[0]= xm[0];vx[1]= xm[0]+barlength;
+           }
+         else 
+           { 
+             posi[0]=inint(xm[0] - 1.2*barlength - rect[2]);
+             vx[0]= xm[0];vx[1]= xm[0] - barlength;
+           }
+
+
+
+
+          if ( ppsubwin->axes.axes_visible[1] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&textcolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            C2F(dr)("xstring",foo,&(posi[0]),&(posi[1]),PI0,&flag,PI0,PI0,&angle, PD0,PD0,PD0,0L,0L);
+          }
+         YGradPosition(psubwin,posi[0],rect[2]);
+         /*   if ( logflag == 'l' ) */
+         /*        { */
+         /*          C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); */
+         /*          C2F(dr)("xstring","10",(posi[0] -= logrect[2],&posi[0]), */
+         /*                  (posi[1] += logrect[3],&posi[1]), */
+         /*                  PI0,&flag,PI0,PI0,&angle,PD0,PD0,PD0,0L,0L); */
+         /*          C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); */
+         /*        } */
+          if ( ppsubwin->axes.axes_visible[1] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         }
+         
+         /***************************************************************/
+         /************************* END COMMON PART *********************/
+         /***************************************************************/
+         
+       }
+    }
+  else
+    {
+
+      FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval); /* here i only need y data (xmin xmax are computed but not used after) */
+      nbtics = ppsubwin->axes.nygrads;
+      
+      for(i=0;i<nbtics;i++)
+       {
+         char foo[256];
+         double ytmp = ppsubwin->axes.ygrads[i];
+         
+         /* if ( ytmp < yminval || ytmp > ymaxval )  */
+/*           { */
+/*             continue; /\* cas ou TL est ON et on a des graduations qui ne seront pas affichées de tte facon *\/ */
+/*             /\* donc autant ne pas aller plus loin dans l'algo... *\/ */
+/*           } */
+          
+          /* chack that xtmp < xminval || xtmp > xmalval */
+          /* but if xtmp is very close to xminval or xmaxval we display it */
+          if ( !SAFE_LT( yminval, ytmp, EPSILON ) || !SAFE_LT( ytmp, ymaxval, EPSILON ) )
+          {
+            continue ;
+          }
+
+         sprintf(foo,c_format,ytmp);
+         
+         
+         /***************************************************************/
+         /************************* COMMON PART *************************/
+         /***************************************************************/
+         
+         C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         /* tick is computed in vx,vy and string is displayed at posi[0],posi[1] position */
+
+         vy[0]= vy[1] = ym[0] = YScale(ytmp);
+         posi[1]=inint( ym[0] +rect[3]/2.0);
+
+         if ( pos == 'r' ) 
+           {
+             posi[0]=inint( xm[0] + 1.2*barlength);
+             vx[0]= xm[0];vx[1]= xm[0]+barlength;
+           }
+         else 
+           { 
+             posi[0]=inint(xm[0] - 1.2*barlength - rect[2]);
+             vx[0]= xm[0];vx[1]= xm[0] - barlength;
+           }
+
+
+
+/*       if ( pos == 'r' )  */
+/*         { */
+/*           posi[0]=inint( xm[0] + 1.2*barlength); */
+/*           vx[0]= xm[0];vx[1]= xm[0]+barlength; */
+/*         } */
+/*       else  */
+/*         {  */
+/*           posi[0]=inint(xm[0] - 1.2*barlength - rect[2]); */
+/*           vx[0]= xm[0];vx[1]= xm[0] - barlength; */
+/*         } */
+          
+          /* if ( !CheckDisplay( 1.5, 1.5, */
+/*                               ppsubwin->logflags[1], */
+/*                               foo, posi, */
+/*                               fontid, oldRect ) ) */
+/*           { */
+/*             continue ; */
+/*           } */
+
+/*           /\* update old_rect *\/ */
+/*           getTicksLabelBox( 1.5, 1.5, foo, posi, fontid, old_rect ) ; */
+          
+          
+          if ( ppsubwin->axes.axes_visible[1] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&textcolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            C2F(dr)("xstring",foo,&(posi[0]),&(posi[1]),PI0,&flag,PI0,PI0,&angle, PD0,PD0,PD0,0L,0L);
+          }
+         YGradPosition(psubwin,posi[0],rect[2]);
+         
+         if ( logflag == 'l' )
+           {
+              if ( ppsubwin->axes.axes_visible[1] )
+              {
+                C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+                
+                C2F(dr)("xstring","10",(posi[0] -= logrect[2],&posi[0]),
+                        (posi[1] += logrect[3],&posi[1]),
+                        PI0,&flag,PI0,PI0,&angle,PD0,PD0,PD0,0L,0L);
+              }
+             YGradPosition(psubwin,posi[0],rect[2]); /* adding F.Leray 04.08.05 */
+             if ( ppsubwin->axes.axes_visible[1] )
+              {
+                C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+              }
+           }
+          if ( ppsubwin->axes.axes_visible[1] )
+          {
+            if ( textcolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+            
+            C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+          
+            if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+         }
+         /***************************************************************/
+         /************************* END COMMON PART *********************/
+         /***************************************************************/
+         
+       }
+    }
+}
+
+static int XDrawAxisLine(double xminval,double xmaxval,double xy, int ticscolor, int color_kp)
+{
+  int vx[2], vy[2];
+  int ns=2, iflag=0;
+  
+  vx[0] =  XScale(xminval); /* C EST LA que se calcule les positions initiales et finales (en x et y) de la barre support de l'axe des abscisses */
+  vx[1] =  XScale(xmaxval);
+  vy[0]= vy[1] = YScale(xy);
+  
+  if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+
+  return 0;
+}
+
+static int YDrawAxisLine(double yminval,double ymaxval,double xy, int ticscolor, int color_kp)
+{
+  int vx[2], vy[2];
+  int ns=2, iflag=0;
+
+  vy[0] =  YScale(yminval); /* C EST LA que se calcule les positions initiales et finales (en x et y) de la barre support de l'axe des abscisses */
+  vy[1] =  YScale(ymaxval);
+  vx[0]= vx[1] = XScale(xy);
+  
+  if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&ticscolor,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  C2F(dr)("xsegs","v", vx, vy, &ns,&ticscolor,&iflag,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  if ( ticscolor != -1 ) C2F(dr)("xset","pattern",&color_kp,PI0,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+
+
+  return 0;
+}
+
+
+void FindXYMinMaxAccordingTL(sciPointObj * psubwin, double *xminval,double *yminval,double *xmaxval,double *ymaxval)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  
+  *xminval = ppsubwin->axes.xlim[0];
+  *yminval = ppsubwin->axes.ylim[0];
+  
+  *xmaxval = ppsubwin->axes.xlim[1];
+  *ymaxval = ppsubwin->axes.ylim[1];
+}
+
+
+
+
+static int SciAxisNew(char pos,sciPointObj *psubwin, double xy, int fontsize,int fontstyle,int textcolor,int ticscolor,int seg)
+{
+  int switchXY = -1;
+  
+  char c_format[5];
+  integer xx=0,yy=0;
+  integer barlength;
+  integer fontid[2],fontsize_kp, narg,verbose=0,logrect[4],smallersize=0,color_kp; 
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  double xminval, yminval, xmaxval, ymaxval;
+  
+  char logflag ;
+  /* int lastxindex, lastyindex; */
+  BOOL auto_ticks;
+
+
+  if(pos=='u' || pos=='d'){
+    switchXY = 0;
+    logflag = ppsubwin->logflags[0];
+    auto_ticks = ppsubwin->axes.auto_ticks[0];
+  }
+  else if(pos=='l' || pos=='r'){
+    switchXY = 1;
+    logflag = ppsubwin->logflags[1];
+    auto_ticks = ppsubwin->axes.auto_ticks[1];
+  }
+
+
+  fontid[0]= fontstyle;
+  
+  C2F(dr)("xget","font",&verbose,fontid,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  fontsize_kp = fontid[1] ;
+  if (fontsize == -1 )
+    { fontid[0]= 0; fontid[1]= 1;  fontsize_kp = fontid[1] ;
+    fontid[0]= fontstyle;
+    C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);}
+  
+  if ( fontsize != -1 ) 
+    {
+      fontid[1] = fontsize ;
+      fontid[0]= fontstyle;
+      C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  if ( textcolor != -1 || ticscolor != -1 ) 
+    {
+      C2F(dr)("xget","pattern",&verbose,&color_kp,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  
+  if (logflag == 'l' && auto_ticks == TRUE)
+    {
+      C2F(dr)("xstringl","10",&xx,&yy,logrect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);      
+      smallersize=fontid[1]-2;
+      C2F(dr)("xset","font",fontid,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    }
+  
+
+
+  FindXYMinMaxAccordingTL(psubwin,&xminval,&yminval,&xmaxval,&ymaxval);
+
+
+  switch (switchXY) {
+  case 0: /* x horizontal axis */
+
+    /** Horizontal axes **/
+    if ( /*ppsubwin->axes.axes_visible[0]*/ TRUE )
+    {
+      char formatY[5] ;
+      barlength =  (integer) (Cscale.WIRect1[3]/50.0);
+      
+      /* lastxindex = ppsubwin->axes.nxgrads - 1; */
+      
+/*       ChoixFormatE(c_format, */
+/*                ppsubwin->axes.xgrads[0], */
+/*                ppsubwin->axes.xgrads[lastxindex], */
+/*                ((ppsubwin->axes.xgrads[lastxindex])-(ppsubwin->axes.xgrads[0]))/(lastxindex)); /\* Adding F.Leray 06.05.04 *\/ */
+
+      /* remove concealing tics labels */
+      
+      updateXaxesTics( psubwin, pos, xy, fontid, smallersize ) ;
+      
+      /* the format may have changed */
+      findFormat( psubwin, c_format, formatY ) ;
+
+      /* le "loop on the ticks" */
+      DrawXTics(pos, psubwin, xy, c_format, fontid, textcolor, ticscolor, color_kp, logrect, smallersize);
+      
+      /* subtics display*/
+      DrawXSubTics(pos, psubwin, xy, ticscolor, color_kp);
+    }
+        
+    /* grids if specified (val > -1) */
+    if(ppsubwin->grid[0] > -1)
+      DrawXGrid(psubwin);
+    
+    break;
+  case 1: /* y vertical axis */
+
+    /** Vertical axes **/
+    if( /*ppsubwin->axes.axes_visible[1] ==*/ TRUE){
+      char formatX[5] ;
+      
+      /* int ticsDir[2] = {1,0} ; */
+      barlength =  (integer) (Cscale.WIRect1[2]/75.0);
+      
+      /* lastyindex = ppsubwin->axes.nygrads - 1; */
+/*       ChoixFormatE(c_format, */
+/*                ppsubwin->axes.ygrads[0], */
+/*                ppsubwin->axes.ygrads[lastyindex], */
+/*                ((ppsubwin->axes.ygrads[lastyindex])-(ppsubwin->axes.ygrads[0]))/(lastyindex)); /\* Adding F.Leray 06.05.04 *\/ */
+      
+      
+      /* remove concealing tics labels */
+      updateYaxesTics( psubwin, pos, xy, fontid, smallersize ) ;
+
+       /* the format may have changed */
+      findFormat( psubwin, formatX, c_format ) ;
+
+      /* le "loop on the ticks" */
+      DrawYTics(pos, psubwin, xy, c_format, fontid, textcolor, ticscolor, color_kp, logrect, smallersize);
+      
+      /* subtics display*/
+      DrawYSubTics(pos, psubwin, xy, ticscolor, color_kp);
+    }
+    
+    /* grids if specified (val > -1) */
+    if(ppsubwin->grid[1] > -1)
+      DrawYGrid(psubwin);
+    
+    break;
+  default:
+    sciprint("Axes.c : SciAxisNew : Impossible case");
+    return -1;
+  }
+  
+  return 0;
+}
+
+void YGradPosition(sciPointObj * psubwin, int xx, int rect2)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  
+  if(ppsubwin->firsttime_y == TRUE)
+    {
+      ppsubwin->YGradMostOnLeft = xx;
+      ppsubwin->YGradMostOnRight = xx + rect2;
+      ppsubwin->firsttime_y = FALSE;
+    }
+  else
+    {
+      if(xx < ppsubwin->YGradMostOnLeft)  ppsubwin->YGradMostOnLeft  = xx;
+      if(xx + rect2 > ppsubwin->YGradMostOnRight) ppsubwin->YGradMostOnRight = xx + rect2;
+    }
+}
+
+void XGradPosition(sciPointObj * psubwin, int yy, int rect3)
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin);
+  
+  if( ppsubwin->firsttime_x )
+  {
+    ppsubwin->XGradMostOnTop = yy - rect3 ;
+    ppsubwin->XGradMostOnBottom = yy ;
+    ppsubwin->firsttime_x = FALSE;
+  }
+  else
+  {
+    if(yy > ppsubwin->XGradMostOnBottom)
+    {
+      ppsubwin->XGradMostOnBottom  = yy ;
+    }
+    if( yy - rect3 < ppsubwin->XGradMostOnTop)
+    {
+      ppsubwin->XGradMostOnTop = yy - rect3 ;
+    }
+  }
+}
+
+/*--------------------------------------------------------------------------------*/
+/* clear a subwindow from all of its children */
+void clearSubWin( sciPointObj * pSubWin )
+{
+  sciSons * curSon = sciGetSons (pSubWin);
+  
+  while ( curSon != NULL && curSon->pointobj != NULL )
+  {
+    if ( curSon->pointobj->entitytype != SCI_LABEL )
+    {
+      DestroyAllGraphicsSons (curSon->pointobj) ;
+      curSon = sciGetSons ( pSubWin ) ;
+    }
+    else
+    {
+      curSon = curSon->pnext ;
+    }
+    
+  }
+}
+/*--------------------------------------------------------------------------------*/
+/* reinit a subwindow (but don't change position ) */
+void reinitSubWin( sciPointObj * pSubWin )
+{
+  sciSubWindow * ppSubWin  = pSUBWIN_FEATURE (pSubWin) ;
+  
+  clearSubWin(   pSubWin ) ;
+  initSubWinBounds( pSubWin ) ;
+  ppSubWin->axes.xdir = 'd' ;
+  ppSubWin->axes.ydir = 'l' ;
+  
+  ppSubWin->visible = TRUE;
+  
+  initSubWinAngles( pSubWin ) ;
+  
+  ppSubWin->surfcounter = 0 ;
+  
+  ppSubWin->FirstPlot = TRUE;
+  
+
+}
+/*--------------------------------------------------------------------------------*/
+/* reinit the viewing angles of a subwindow */
+void initSubWinAngles( sciPointObj * pSubWin )
+{
+  sciSubWindow * ppSubWin  = pSUBWIN_FEATURE (pSubWin ) ;
+  sciSubWindow * ppAxesMdl = pSUBWIN_FEATURE (paxesmdl) ;
+  ppSubWin->is3d     = ppAxesMdl->is3d     ;
+  ppSubWin->alpha_kp = ppAxesMdl->alpha_kp ;
+  ppSubWin->theta_kp = ppAxesMdl->theta_kp ;
+  ppSubWin->alpha    = ppAxesMdl->alpha    ;
+  ppSubWin->theta    = ppAxesMdl->theta    ;
+}
+
+/*--------------------------------------------------------------------------------*/
+/* set the size and position of the subwindow to the default */
+void initSubWinSize( sciPointObj * pSubWin )
+{
+  sciSubWindow * ppSubWin  = pSUBWIN_FEATURE (pSubWin ) ;
+  sciSubWindow * ppAxesMdl = pSUBWIN_FEATURE (paxesmdl) ;
+  ppSubWin->WRect[0] = ppAxesMdl->WRect[0] ;
+  ppSubWin->WRect[1] = ppAxesMdl->WRect[1] ;
+  ppSubWin->WRect[2] = ppAxesMdl->WRect[2] ;
+  ppSubWin->WRect[3] = ppAxesMdl->WRect[3] ;
+
+}
+/*--------------------------------------------------------------------------------*/
+/* set the data_bounds of the axes to the default value */
+void initSubWinBounds( sciPointObj * pSubWin )
+{
+  sciSubWindow * ppSubWin  = pSUBWIN_FEATURE (pSubWin ) ;
+  sciSubWindow * ppAxesMdl = pSUBWIN_FEATURE (paxesmdl) ;
+  ppSubWin->FRect[0] = ppAxesMdl->FRect[0] ;
+  ppSubWin->FRect[1] = ppAxesMdl->FRect[1] ;
+  ppSubWin->FRect[2] = ppAxesMdl->FRect[2] ;
+  ppSubWin->FRect[3] = ppAxesMdl->FRect[3] ;
+  ppSubWin->FRect[4] = ppAxesMdl->FRect[4] ;
+  ppSubWin->FRect[5] = ppAxesMdl->FRect[5] ;
+
+  ppSubWin->SRect[0] = ppAxesMdl->SRect[0] ;
+  ppSubWin->SRect[1] = ppAxesMdl->SRect[1] ;
+  ppSubWin->SRect[2] = ppAxesMdl->SRect[2] ;
+  ppSubWin->SRect[3] = ppAxesMdl->SRect[3] ;
+  ppSubWin->SRect[4] = ppAxesMdl->SRect[4] ;
+  ppSubWin->SRect[5] = ppAxesMdl->SRect[5] ;
+}
+/*--------------------------------------------------------------------------------*/
+/* reinit the selected subwindow if the auto_clear property is set to on */
+/* return TRUE if the window has been redrawn */
+BOOL checkRedrawing( void )
+{
+  
+  sciPointObj * pSubWin = sciGetSelectedSubWin( sciGetCurrentFigure() ) ;
+  if ( !sciGetAddPlot( pSubWin ) )
+  {
+    if ( version_flag() == 0 )
+    {
+      /* redraw the axis */
+      reinitSubWin( pSubWin ) ;
+      return TRUE ;
+    }
+    else
+    {
+      /* jb Silvy : take this from the old code */
+      sciXbasc()   ;
+      initsubwin() ;
+      sciRedrawFigure() ;
+      return TRUE ;
+    }
+  }
+  return FALSE ;
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* 1----------4 */
+/* |          | */
+/* |          | */
+/* |          | */
+/* 2----------3 */
+/* check if the graduation text foo is inside the old_rect */
+/* in this case it should not been displayed */
+/* taken from drawobject.c */
+BOOL CheckDisplay(double fact_h, double fact_w, char logflag, char *foo,int *posi,int *fontid,int *old_rect) 
+{
+  int rect[4],i;
+  int point[4][2];
+  int logrect[4], XX, YY;
+  
+  if(old_rect[0] == 0 && old_rect[1] == 0 && old_rect[2] == 0 && old_rect[3] == 0)
+  {
+    return TRUE ;
+  }
+  
+  C2F(dr)("xset","font",fontid,fontid+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); /* fix bug noticed by R.N. */
+  
+  /* compute bounding of "10"  string used for log scale ON and auto_ticks ON */
+  C2F(dr)("xstringl","10",&XX,&YY,logrect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);  
+  getTicksLabelBox( 1.0, 1.0, foo, posi, fontid, logflag, rect, TRUE ) ;
+  point[0][0] = rect[0]; /* upper left point */
+  point[0][1] = rect[1];
+  
+  point[1][0] = rect[0]; /* lower left point */
+  point[1][1] = rect[1]+rect[3];
+  
+  point[2][0] = rect[0]+rect[2]; /* lower right point */
+  point[2][1] = rect[1]+rect[3];
+  
+  point[3][0] = rect[0]+rect[2]; /* upper right point */
+  point[3][1] = rect[1];
+  
+  for(i=0;i<4;i++)
+  {
+    if( !IsInsideRectangle(old_rect,point[i]) )
+    {
+      return FALSE; /* If one inside the old_rect, DO NOT display the graduation ! */
+    }
+  }
+
+  return TRUE;
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* The unit is the pixel */
+/* return 0 if the point is inside the rect */
+/* 1 if it is actually outside the rect */
+/* (rect[0],rect[1]) : upper left point of the bounding box  in pixel */
+/* (rect[2],rect[3]) : width and height in pixel */
+/* point[0] : x component */
+/* point[1] : y component */
+BOOL IsInsideRectangle(int * rect, int *point)
+{
+
+  if((point[0] >= rect[0] && point[0] <= rect[0]+rect[2]) &&
+     (point[1] >= rect[1] && point[1] <= rect[1]+rect[3]))
+    return FALSE;
+  
+  return TRUE;
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* get the bounding rectangle of a label of a ticks */
+/* similar to stringBoundingRect but only for ticks labels */
+void getTicksLabelBox( double   fact_h   ,
+                       double   fact_w   , 
+                       char   * label    ,
+                       int      pos[2]   ,
+                       int      fontId[2],
+                       char     logflag  ,
+                       int      bbox[4]  ,
+                       BOOL     changeFont )
+{  
+  int prevFontId[2] ;
+  
+  if ( changeFont )
+  {
+    int verbose = 0 ;
+    int narg ;
+    C2F(dr)("xget","font",&verbose,prevFontId,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+    C2F(dr)("xset","font",fontId,fontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+  }
+  
+  if ( logflag == 'n' )
+  { 
+    C2F(dr)("xstringl",label,&pos[0],&pos[1],bbox,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    bbox[3] = (int)(fact_h * bbox[3]);
+    bbox[2] = (int)(fact_w * bbox[2]);
+  }
+  else
+  {
+    int smallersize = fontId[1]-2;
+    int rect10[4];
+    int posi10[2];
+    int logrect[4] ;
+    int XX = 1 ;
+    int YY = 1 ;
+    /* compute bounding of "10"  string used for log scale ON and auto_ticks ON */
+    C2F(dr)("xstringl","10",&XX,&YY,logrect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);        
+    
+    posi10[0] = pos[0] - logrect[2];
+    posi10[1] = pos[1] + logrect[3];
+    
+    /* get the bbox of the 10 */
+    C2F(dr)("xstringl","10",(&posi10[0]),(&posi10[1]),rect10,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    
+    pos[0] = rect10[0] + rect10[2];
+    pos[1] = (int) (rect10[1] - rect10[3]*.1);
+    
+    C2F(dr)("xset","font",fontId,&smallersize,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    
+    /* get the bbox of the exponent */
+    C2F(dr)("xstringl",label,(&pos[0]),(&pos[1]),bbox,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    
+    bbox[2] = (integer)(fact_w*(bbox[2] + rect10[2]));
+    bbox[3] = (integer)(fact_h*(bbox[3] + rect10[3] + (int) (rect10[3]*.1))); /* added the 01.06.05 */
+    bbox[0] = rect10[0];
+    /* bbox[1] = bbox[1]; */
+    
+    C2F(dr)("xset","font",fontId,fontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+  }
+
+  if ( changeFont )
+  {
+    C2F(dr)("xset","font",prevFontId,prevFontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+  }
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* remove the concealed ticks before display on the X axis */
+BOOL checkXAxes2dTics( sciPointObj * psubwin  ,
+                       char          side     ,
+                       double        y        ,
+                       char        * cFormat  ,
+                       int           fontId[2],
+                       int           smallersize )
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin) ;
+  double xminval, yminval, xmaxval, ymaxval ;
+  int  /* flag=0, */xx=0,yy=0,rect[4] ;
+  int xm[2],ym[2];
+  int barlength = 0;
+  int posi[2];
+  int prevFontId[2] ;
+  int verbose = 0 ;
+  int narg ;
+  
+  double factX = 1.2 ;
+  double factY = 1.2 ;
+  int nbtics = 0,i ;
+  int prevRect[4] = { 0, 0, 0, 0 } ;
+  
+  /*--------*/
+  /* x axis */
+  /*--------*/
+  
+  ym[0] = YScale(y) ;
+
+  barlength =  Max( (integer) (Cscale.WIRect1[3]/50.0), 2 ) ;
+
+  ppsubwin->firsttime_x = TRUE ;
+
+  /* suppose auto_ticks is off */
+  /* here i only need x data (ymin ymax are computed but not used after) */
+  FindXYMinMaxAccordingTL( psubwin, &xminval, &yminval, &xmaxval, &ymaxval ) ;
+  nbtics = ppsubwin->axes.nxgrads ;
+  
+  C2F(dr)("xget","font",&verbose,prevFontId,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+  C2F(dr)("xset","font",fontId,fontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); /* fix bug noticed by R.N. */
+  
+  for( i = 0 ; i < nbtics; i++ )
+  {
+    
+    char foo[256];
+    double xtmp = ppsubwin->axes.xgrads[i] ;
+
+    if( xtmp < xminval || xtmp > xmaxval ) 
+    {
+      continue; /* cas ou TL est ON et on a des graduations qui ne seront pas affichées de tte facon */
+                /* donc autant ne pas aller plus loin dans l'algo... */
+    }
+    
+    sprintf(foo, cFormat,xtmp);
+    
+    /* compute the bounding box of the label */
+   
+    C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    
+    xm[0] = XScale(xtmp);
+    posi[0] = inint( xm[0] - rect[2]/2.0 ) ;
+    
+    if ( side == 'd')
+    {
+      /* ticks are drawn under the axis */
+      posi[1] = inint( ym[0] + 1.2 * barlength + rect[3] ) ;
+    }
+    else /* side = 'u' */
+    {
+      /* ticks are drawn above the axis */
+      posi[1] = inint( ym[0] - 1.2 * barlength ) ;
+    }
+
+    /* check that the new display doesnot concealed the previous */
+    if ( !CheckDisplay( factX, factY,
+                        ppsubwin->logflags[0],
+                        foo, posi,
+                        fontId, prevRect ) )
+    {
+      /* put the font back */
+      C2F(dr)("xset","font",prevFontId,prevFontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+      return FALSE ;
+    }
+    
+    /* get the boundig rectangle of the new label */
+    getTicksLabelBox( factX, factY, foo, posi, fontId, ppsubwin->logflags[0],  prevRect, FALSE ) ;
+
+    XGradPosition(psubwin,posi[1],rect[3]) ;
+    
+  }
+
+
+  /* put the font back */
+  C2F(dr)("xset","font",prevFontId,prevFontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+
+  return TRUE ;    
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* remove the concealed ticks before display on the X axis */
+BOOL checkYAxes2dTics( sciPointObj * psubwin  ,
+                       char          side     ,
+                       double        x        ,
+                       char        * cFormat  ,
+                       int           fontId[2],
+                       int           smallersize )
+{
+  sciSubWindow * ppsubwin = pSUBWIN_FEATURE(psubwin) ;
+  double xminval, yminval, xmaxval, ymaxval ;
+  int  /* flag=0, */xx=0,yy=0,rect[4] ;
+  int xm[2],ym[2];
+  int barlength = 0;
+  int posi[2];
+  int prevFontId[2] ;
+  int verbose = 0 ;
+  int narg ;
+  double factX = 1.5 ;
+  double factY = 1.5 ;
+  int nbtics = 0,i ;
+  int prevRect[4] = { 0, 0, 0, 0 } ;
+  
+  /*--------*/
+  /* y axis */
+  /*--------*/
+  
+  xm[0] = XScale(x) ;
+
+  barlength =  Max( (integer) (Cscale.WIRect1[2]/75.0), 2 ) ;
+
+  ppsubwin->firsttime_y = TRUE ;
+
+  /* suppose auto_ticks is off */
+  /* here i only need x data (ymin ymax are computed but not used after) */
+  FindXYMinMaxAccordingTL( psubwin, &xminval, &yminval, &xmaxval, &ymaxval ) ;
+  nbtics = ppsubwin->axes.nygrads ;
+  
+  C2F(dr)("xget","font",&verbose,prevFontId,&narg,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+  C2F(dr)("xset","font",fontId,fontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L); /* fix bug noticed by R.N. */
+  
+  for( i = 0 ; i < nbtics; i++ )
+  {
+    
+    char foo[256];
+    double ytmp = ppsubwin->axes.ygrads[i] ;
+
+    if( ytmp < yminval || ytmp > ymaxval ) 
+    {
+      continue; /* cas ou TL est ON et on a des graduations qui ne seront pas affichées de tte facon */
+                /* donc autant ne pas aller plus loin dans l'algo... */
+    }
+    
+    sprintf(foo, cFormat,ytmp);
+    
+    /* compute the bounding box of the label */
+   
+    C2F(dr)("xstringl",foo,&xx,&yy,rect,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L);
+    
+    ym[0] = YScale(ytmp);
+    posi[1] = inint( ym[0] + rect[2]/2.0 ) ;
+    
+    if ( side == 'r')
+    {
+      /* ticks are drawn under the axis */
+      posi[0] = inint( xm[0] + 1.2 * barlength ) ;
+    }
+    else /* side = 'l' */
+    {
+      /* ticks are drawn above the axis */
+      posi[0] = inint( xm[0] - 1.2 * barlength - rect[2] ) ;
+    }
+
+    /* check that the new display doesnot concealed the previous */
+    if ( !CheckDisplay( factX, factY,
+                        ppsubwin->logflags[1],
+                        foo, posi,
+                        fontId, prevRect ) )
+    {
+      /* put the font back */
+      C2F(dr)("xset","font",prevFontId,prevFontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+      return FALSE ;
+    }
+    
+    /* get the boundig rectangle of the new label */
+    getTicksLabelBox( factX, factY, foo, posi, fontId, ppsubwin->logflags[1],  prevRect, FALSE ) ;
+
+    YGradPosition(psubwin,posi[0],rect[2]) ;
+    
+  }
+
+
+  /* put the font back */
+  C2F(dr)("xset","font",prevFontId,prevFontId+1,PI0,PI0,PI0,PI0,PD0,PD0,PD0,PD0,0L,0L) ;
+  
+  return TRUE ;
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* check if the ticks are not concealing each others */
+/* in this case some are removed until it's fit */
+void updateXaxesTics( sciPointObj * psubwin  ,
+                      char          side     ,
+                      double        y        ,
+                      int           fontId[2] ,
+                      int           smallersize )
+{
+  sciSubWindow * ppSubWin = pSUBWIN_FEATURE( psubwin ) ;
+  char labelXFormat[5] ;
+  char labelYFormat[5] ;
+  findFormat( psubwin, labelXFormat, labelYFormat ) ;
+  
+  /* check if the ticks are concealing or not */
+  if ( !checkXAxes2dTics( psubwin, side, y, labelXFormat, fontId, smallersize ) ) 
+  {
+    double xMin ;
+    double xMax ;
+    double yMin ;
+    double yMax ;
+    double zMin ;
+    double zMax ;
+    int    ticksStatus = 0 ;
+    
+    sciGetDisplayedBounds( psubwin, &xMin, &xMax, &yMin, &yMax, &zMin, &zMax ) ;
+    
+    ppSubWin->axes.nxgrads = ( ppSubWin->axes.nxgrads + 1 ) / 2 ;
+    
+    /* recompute the ticks */
+    if ( ppSubWin->logflags[0] == 'n' )
+    {
+      TheTicks( &xMin, &xMax, ppSubWin->axes.xgrads, &ppSubWin->axes.nxgrads, TRUE ) ;
+    }
+    else
+    {
+      GradLog( xMin, xMax, ppSubWin->axes.xgrads, &ppSubWin->axes.nxgrads, TRUE ) ;
+    }
+
+    findFormat( psubwin, labelXFormat, labelYFormat ) ;
+
+    while( ticksStatus == 0 && !checkXAxes2dTics( psubwin, side, y, labelXFormat, fontId, smallersize ) )
+    {
+      ppSubWin->axes.nxgrads = ( ppSubWin->axes.nxgrads + 1 ) / 2 ;
+      if (  ppSubWin->logflags[0] == 'n' )
+      {
+        ticksStatus = TheTicks( &xMin, &xMax, ppSubWin->axes.xgrads, &ppSubWin->axes.nxgrads, TRUE ) ;
+      }
+      else
+      {
+        GradLog( xMin, xMax, ppSubWin->axes.xgrads, &ppSubWin->axes.nxgrads, TRUE ) ;
+      }
+
+      findFormat( psubwin, labelXFormat, labelYFormat ) ;
+
+    }
+
+  }
+  /* else everything ok */
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* check if the ticks are not concealing each others */
+/* in this case some are removed until it's fit */
+void updateYaxesTics( sciPointObj * psubwin  ,
+                      char          side     ,
+                      double        x        ,
+                      int           fontId[2],
+                      int           smallersize )
+{
+  sciSubWindow * ppSubWin = pSUBWIN_FEATURE( psubwin ) ;
+  char labelXFormat[5] ;
+  char labelYFormat[5] ;
+  findFormat( psubwin, labelXFormat, labelYFormat ) ;
+  
+  /* check if the ticks are concealing or not */
+  if ( !checkYAxes2dTics( psubwin, side, x, labelYFormat, fontId, smallersize ) ) 
+  {
+    double xMin ;
+    double xMax ;
+    double yMin ;
+    double yMax ;
+    double zMin ;
+    double zMax ;
+    int    ticksStatus = 0 ;
+    
+    sciGetDisplayedBounds( psubwin, &xMin, &xMax, &yMin, &yMax, &zMin, &zMax ) ;
+    
+    ppSubWin->axes.nygrads = ( ppSubWin->axes.nygrads + 1 ) / 2 ;
+    
+    /* recompute the ticks */
+    if ( ppSubWin->logflags[1] == 'n' )
+    {
+      TheTicks( &yMin, &yMax, ppSubWin->axes.ygrads, &ppSubWin->axes.nygrads, TRUE ) ;
+    }
+    else
+    {
+      GradLog( yMin, yMax, ppSubWin->axes.ygrads, &ppSubWin->axes.nygrads, TRUE ) ;
+    }
+
+    findFormat( psubwin, labelXFormat, labelYFormat ) ;
+
+    while( ticksStatus == 0 && !checkYAxes2dTics( psubwin, side, x, labelYFormat, fontId, smallersize ) )
+    {
+      ppSubWin->axes.nygrads = ( ppSubWin->axes.nygrads + 1 ) / 2 ;
+      if (  ppSubWin->logflags[1] == 'n' )
+      {
+        ticksStatus = TheTicks( &yMin, &yMax, ppSubWin->axes.ygrads, &ppSubWin->axes.nygrads, TRUE ) ;
+      }
+      else
+      {
+        GradLog( yMin, yMax, ppSubWin->axes.ygrads, &ppSubWin->axes.nygrads, TRUE ) ;
+      }
+
+      findFormat( psubwin, labelXFormat, labelYFormat ) ;
+
+    }
+
+  }
+  /* else everything ok */
+}
+
+/*--------------------------------------------------------------------------------*/
+/* remove in the ticks array the indices i such as removedTicks[i] */
+/* is true. The value nbtics is an in-out variable */
+void removeBadTicks( double * ticks, BOOL * removedTicks, int * nbTicks )
+{
+  int i ;
+  for ( i = *nbTicks - 1 ; i >= 0 ; i-- )
+  {
+    if ( removedTicks[i] )
+    {
+      removeIndex( ticks, *nbTicks, i ) ;
+      *nbTicks = *nbTicks - 1 ;
+    }
+  }
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* remove an element in the array from translating the next
+   elements on step backward */
+void removeIndex( double * changedArray, int size, int ind )
+{
+  int i ;
+  for ( i = ind + 1 ; i < size ; i++ )
+  {
+    changedArray[i-1] = changedArray[i] ;
+  } 
+}
+
+/*--------------------------------------------------------------------------------*/
+
+/* compute the needed formats to display the ticks of a subWin */
+void findFormat( sciPointObj * pSubWin, char formatX[5], char formatY[5] )
+{
+  sciSubWindow * ppSubWin = pSUBWIN_FEATURE( pSubWin ) ;
+  int lastIndex ;
+
+  /* x axis */
+  lastIndex = Max( ppSubWin->axes.nxgrads - 1, 0 ) ;
+
+  ChoixFormatE( formatX,
+                ppSubWin->axes.xgrads[0],
+                ppSubWin->axes.xgrads[lastIndex],
+               ( (ppSubWin->axes.xgrads[lastIndex])-(ppSubWin->axes.xgrads[0]))/(lastIndex)); /* Adding F.Leray 06.05.04 */
+
+  /* y-axis */
+  lastIndex = Max( ppSubWin->axes.nygrads - 1, 0 ) ;
+  
+  ChoixFormatE( formatY,
+                ppSubWin->axes.ygrads[0],
+                ppSubWin->axes.ygrads[lastIndex],
+                ((ppSubWin->axes.ygrads[lastIndex])-(ppSubWin->axes.ygrads[0]))/(lastIndex)); /* Adding F.Leray 06.05.04 */
+  
+}
+
+/*--------------------------------------------------------------------------------*/
diff --git a/scilab/modules/graphics2/Axes.h b/scilab/modules/graphics2/Axes.h
new file mode 100644 (file)
index 0000000..296163e
--- /dev/null
@@ -0,0 +1,103 @@
+/*======================================================================================*/
+/* Copyrigth INRIA 2006                                                                 */
+/* File   : Axes.h                                                                      */
+/* Author : Jean-Baptiste Silvy INRIA                                                   */
+/* Desc   : Various functions to manipulate SubWindow objects                           */
+/*======================================================================================*/
+
+#ifndef __SCI_AXES_H__
+#define __SCI_AXES_H__
+
+#include "ObjectStructure.h"
+
+/*--------------------------------------------------------------------------------------*/
+/* check if the graduation text foo is inside the old_rect */
+/* in this case it should not been displayed */
+BOOL CheckDisplay( double fact_h, double fact_w, char logflag, char *foo,int *posi,int *fontid,int *old_rect) ;
+
+/* The unit is the pixel */
+/* return 0 if the point is inside the rect */
+/* 1 if it is actually outside the rect */
+/* (rect[0],rect[1]) : upper left point of the bounding box  in pixel */
+/* (rect[2],rect[3]) : width and height in pixel */
+/* point[0] : x component */
+/* point[1] : y component */
+BOOL IsInsideRectangle(int * rect, int *point) ;
+
+/* get the bounding rectangle of a label of a ticks */
+/* similar to stringBoundingRect but only for ticks labels */
+void getTicksLabelBox( double   fact_h   ,
+                       double   fact_w   , 
+                       char   * label    ,
+                       int      pos[2]   ,
+                       int      fontId[2],
+                       char     logflag  ,
+                       int      bbox[4]  ,
+                       BOOL     changeFont ) ;
+
+/* remove the concealed ticks before display on the X and Y axis */
+BOOL checkXAxes2dTics( sciPointObj * psubwin  ,
+                       char          side     ,
+                       double        y        ,
+                       char        * cFormat  ,
+                       int           fontId[2],
+                       int           smallersize ) ;
+
+/* remove the concealed ticks before display on the X and Y axis */
+BOOL checkYAxes2dTics( sciPointObj * psubwin  ,
+                       char          side     ,
+                       double        x        ,
+                       char        * cFormat  ,
+                       int           fontId[2],
+                       int           smallersize ) ;
+
+
+void updateXaxesTics( sciPointObj * psubwin  ,
+                      char          side     ,
+                      double        y        ,
+                      int           fontId[2],
+                      int           smallersize ) ;
+
+void updateYaxesTics( sciPointObj * psubwin  ,
+                      char          side     ,
+                      double        x        ,
+                      int           fontId[2],
+                      int           smallersize ) ;
+
+/* remove in the ticks array the indices i such as removedTicks[i] */
+/* is true. The value nbtics is an in-out variable */
+void removeBadTicks( double * ticks, BOOL * removedTicks, int * nbTicks ) ;
+
+/* remove an element in the array from translating the next
+   elements on step backward */
+void removeIndex( double * changedArray, int size, int ind ) ;
+
+/* compute the needed formats to display the ticks of a subWin */
+void findFormat( sciPointObj * pSubWin, char formatX[5], char formatY[5] ) ;
+
+/*--------------------------------------------------------------------------------------*/
+
+/*--------------------------------------------------------------------------------------*/
+
+/* clear a subwindow from all of its children */
+void clearSubWin( sciPointObj * pSubWin ) ;
+