Remove graphic_alloc and reference to old style in macros.
Jean-baptiste Silvy [Thu, 11 Jan 2007 13:30:21 +0000 (13:30 +0000)]
39 files changed:
scilab/modules/graphics/graphics.vcproj
scilab/modules/graphics/includes/Graphics.h
scilab/modules/graphics/macros/TitleLabel.sci
scilab/modules/graphics/macros/bode.sci
scilab/modules/graphics/macros/chart.sci
scilab/modules/graphics/macros/clf.sci
scilab/modules/graphics/macros/color.sci
scilab/modules/graphics/macros/colorbar.sci
scilab/modules/graphics/macros/dragrect.sci
scilab/modules/graphics/macros/evans.sci
scilab/modules/graphics/macros/gainplot.sci
scilab/modules/graphics/macros/ged.sci
scilab/modules/graphics/macros/ged_insert.sci
scilab/modules/graphics/macros/getcolor.sci
scilab/modules/graphics/macros/getfont.sci
scilab/modules/graphics/macros/getlinestyle.sci
scilab/modules/graphics/macros/getmark.sci
scilab/modules/graphics/macros/gr_menu.sci
scilab/modules/graphics/macros/graypolarplot.sci
scilab/modules/graphics/macros/legend.sci
scilab/modules/graphics/macros/legends.sci
scilab/modules/graphics/macros/locate.sci
scilab/modules/graphics/macros/paramfplot2d.sci
scilab/modules/graphics/macros/plot.sci
scilab/modules/graphics/macros/replot.sci
scilab/modules/graphics/macros/subplot.sci
scilab/modules/graphics/macros/surf.sci
scilab/modules/graphics/macros/xbasc.sci
scilab/modules/graphics/macros/xbasr.sci
scilab/modules/graphics/macros/xload.sci
scilab/modules/graphics/src/c/Alloc.c [deleted file]
scilab/modules/graphics/src/c/Contour.c
scilab/modules/graphics/src/c/FeC.c
scilab/modules/graphics/src/c/Plo2d.c
scilab/modules/graphics/src/c/Plo3d.c
scilab/modules/graphics/src/c/Plo3dn.c
scilab/modules/graphics/src/c/Xcall1.c
scilab/modules/graphics/src/c/graphicModuleLoad.c
scilab/modules/gui/src/c/wsci/wgmenu.c

index ac192d5..68f5f61 100644 (file)
                                >
                        </File>
                        <File
-                               RelativePath=".\src\c\Alloc.c"
-                               >
-                       </File>
-                       <File
                                RelativePath=".\src\c\Axes.c"
                                >
                        </File>
index 4e490fc..4d67cf9 100644 (file)
@@ -30,11 +30,6 @@ extern void scig_resize __PARAMS((integer ));
 extern void scig_resize_pixmap __PARAMS((integer )); 
 extern void scig_erase __PARAMS((integer )); 
 
-/* Alloc.c */
-
-void *graphic_alloc __PARAMS((int indice,int n,unsigned int size));
-void graphic_alloc_info __PARAMS((void));
-void graphic_alloc_free __PARAMS((void));
 
 /* Axes.c */
 
index a2f9167..1e80e2f 100644 (file)
@@ -6,13 +6,6 @@ function TitleLabel(varargin)
 
 [lhs,rhs]=argn(0);
 
-isold=get('figure_style')=='old'
-
-if isold
-  disp("Not supported under old graphic style");
-  return;
-end
-
 //CurColor = 0; // current color used if no color specified via LineSpec
 // nor PropertyName
 
index f40611b..6b1430a 100644 (file)
@@ -128,26 +128,18 @@ if comments==' ' then
    hx=0.43
 end;
 
-isNewStyle = ( get("figure_style") == "new") ;
-
 [wrect,frect]=xgetech();
 //magnitude
 xsetech(wrect=[wrect(1)+0,wrect(2)+0,wrect(3)*1.0,wrect(4)*hx*0.95]);
 rect=[mini(frq),mini(d);maxi(frq),maxi(d)]
-// just to fix the scales for xgrid
-if ~isNewStyle then
-  plot2d1("oln",mini(frq),mini(d),0,"051"," ",rect);
-end
 
 // xgrid first 
 xgrid(4);
 // now the curves 
 plot2d1("oln",frq',d') ;
-if isNewStyle then
-  axes = gca() ;
-  axes.data_bounds = rect ;
-  a.log_flags = "lnn" ;
-end
+axes = gca() ;
+axes.data_bounds = rect ;
+a.log_flags = "lnn" ;
 
 if type(dom)==1 then
   [xx1,xx2]=xgetech();
@@ -159,24 +151,15 @@ xtitle('Magnitude ',' Hz','db');
 xsetech(wrect=[wrect(1)+0,wrect(2)+wrect(4)*hx,wrect(3)*1.0,wrect(4)*hx*0.95]);
 
 // get the axes of the phase
-if ( get("figure_style") == "new" ) then
-  sciCurAxes = get("current_axes") ;
-end
+sciCurAxes = get("current_axes") ;
 
 rect=[mini(frq),mini(phi);maxi(frq),maxi(phi)]
-// just to fix the scales for xgrid
-if ~isNewStyle then
-  plot2d1("oln",mini(frq),mini(phi),0,"051"," ",rect);
-end
 
 xgrid(4);
 //  now the curves
 plot2d1( "oln",frq',phi' ) ;
-if isNewStyle then
-  axes = gca() ;
-  axes.data_bounds = rect ;
-  a.log_flags = "lnn" ;
-end
+axes = gca() ;
+axes.data_bounds = rect ;zzz a.log_flags = "lnn" ;
 
 
 if type(dom)==1 then
@@ -207,10 +190,6 @@ if mnc>0 then
 end
 
 // return to the previous scale
-if ( get("figure_style") == "old" ) then
-  xsetech(wrect,frect);
-else
-  set( "current_axes", sciCurAxes ) ;
-end
+set( "current_axes", sciCurAxes ) ;
 
 endfunction
index 440ebb7..bea53ab 100644 (file)
@@ -60,7 +60,7 @@ function []=chart(attenu,angl,flags)
        
        [r1,r2]=xgetech();
        //
-       if get('figure_style')<>'old' then drawlater(),end
+       drawlater()
        if flags(2) then xtitle(titre,'phase(y) - degree','magnitude(y) - db'),end
        llrect=xstringl(0,0,'1')
        //contours de gain constant
@@ -110,7 +110,5 @@ function []=chart(attenu,angl,flags)
                        plot2d(360+[w,-360*ones(w)-w(n:-1:1)],[module,module(n:-1:1)],[flags(4),flags(4)],"000");
                end
        end;
-       if get('figure_style')<>'old' then
-               drawnow()
-       end
+       drawnow() ;
 endfunction
index efe3149..985bfc4 100644 (file)
@@ -1,11 +1,4 @@
 function clf(varargin)
-// This function is dedicated to the new graphics mode only
-// If called in old mode, it performs a basic 'xbasc' call.
-newstyle = get('figure_style')=='new'
-if ~newstyle
-  xbasc();
-  return;
-end
 
 if size(varargin)==0 then
   h=gcf()
index 0b825e2..6d3c96c 100644 (file)
@@ -26,23 +26,16 @@ else
   error("function ""color"" must have 1 or 3 arguments")
 end
 
-if get("figure_style")=="old" then
-  cmap=xget("colormap");
-else
-  f=gcf();
-  cmap=f.color_map;
-end
+f=gcf();
+cmap=f.color_map;
+
 ncol=max(size(cmap,"r"));
 k=find(abs(cmap-ones(ncol,1)*c)*ones(3,1)<=1.d-5);
 if k==[] then
   // color does not exist, add it
   cmap=[cmap;c];
   id=ncol+1;
-  if get("figure_style")=="old" then
-    xset("colormap",cmap);
-  else
-    f.color_map=cmap;
-  end
+  f.color_map=cmap;
 else
   id=k(1);
 end
index f16c25e..5332033 100644 (file)
@@ -39,100 +39,53 @@ function colorbar(umin, umax, colminmax,fmt)
     end
   end
   
-  if get('figure_style')=='old' then
-    if ~exists("colminmax","local") then 
-      nb_colors = xget("lastpattern") // modif for bug 1122 (bruno 7 december 2004)
-      colminmax = [1 nb_colors]
-    else
-      nb_colors = colminmax(2) - colminmax(1) + 1
-    end
-    
-    // go on... 
-    vec_ones = ones(1,nb_colors)
-
-    x1 = -0.3 ; x2 = 0.1 ; 
-    x_polys = [x1 ; x2 ; x2 ; x1] * vec_ones
-    y1 = 0.1 ; y2 = 0.9
-    y = linspace(y1,y2,nb_colors+1)
-    y_polys = [y(1:$-1) ; y(1:$-1) ; y(2:$) ; y(2:$)] 
-    
-    xtics = x2*ones(1,nb_grad) ; dx_tics = 0.05 ; 
-    ytics = linspace(y1, y2, nb_grad) ; dy_tics = 0
-
-    valeurs = linspace(umin,umax,nb_grad);
-    rect = xstringl(0, 0, string(umin))
-    dy_cor = -rect(4)*0.5
-    xmarks = xtics + 3*dx_tics ; ymarks = ytics + dy_cor; 
-
-    fg_color = xget("foreground")
-
-    wr = xgetech()
-    wrect_cb = [wr(1)+0.85*wr(3) , wr(2) , 0.15*wr(3) , wr(4)]
-    wrect_pl = [wr(1) , wr(2) , 0.85*wr(3) , wr(4)]
-    xsetech(wrect=wrect_cb,frect=[0 0 1 1], arect=0.125*[1 1 1 1])
-
-    
-    xfpolys(x_polys, y_polys, -(colminmax(1):colminmax(2)))
-    xset("color", fg_color) ;
-    xpoly([x1 x2 x2 x1],[y1 y1 y2 y2],"lines",1)
-    lab=msprintf(fmt+'\n',valeurs(:))
-    for k=1:size(xmarks,'*')
-      xstring(xmarks(k), ymarks(k) ,lab(k))
-    end
-    xsegs([xtics ; xtics+dx_tics ],[ytics ; ytics+dy_tics],fg_color)
-    
-    xsetech(wrect=wrect_pl)
-  else //new graphic mode
-    f=gcf();
-    if ~exists("colminmax","local") then 
-      nb_colors = size(f.color_map,1) 
-      colminmax = [1 nb_colors]
-    else
-      nb_colors = colminmax(2) - colminmax(1) + 1
-    end
-    
-    //defer the drawing to avoid binking
-    id=f.immediate_drawing=='on';
-    if id then f.immediate_drawing=='off',end
-
-    // get current axes and properties
-    a=gca(); 
-    fg_color=a.foreground
-    wr=a.axes_bounds; //get the rectangle of the current axes
-    
-    // modify the orginal axes to let space for the colorbar
-    a_pl=a;
-    a_pl.axes_bounds=[wr(1) , wr(2) , 0.85*wr(3) , wr(4)]
-
-    // create a new axes for the colorbar et set its properties
-    a_cb=newaxes(); 
-    a_cb.axes_bounds=[wr(1)+0.83*wr(3) , wr(2)+wr(4)*0.2 , 0.2*wr(3) , wr(4)*0.6];
-    a_cb.data_bounds=[0 umin;1 umax];
-    a_cb.foreground=a.foreground;
-    a_cb.background=f.background;
-    a_cb.axes_visible='on';
-    a_cb.y_location = "right";
-    a_cb.tight_limits ="on";
-    
-    //It is not possible to set no ticks for x (should be fixed)
-    a_cb.x_ticks=tlist(["ticks","locations","labels"],-1,'');
-    ytics = linspace(umin, umax, nb_grad);
-    a_cb.y_ticks=tlist(["ticks","locations","labels"],ytics', ' '+msprintf(fmt+'\n',ytics'));
-    a_cb.auto_ticks = ["off","off","on"];
-    a_cb.box = "on";
-    a_cb.margins=[0 0.75 0 0];
-
+  f=gcf();
+  if ~exists("colminmax","local") then 
+    nb_colors = size(f.color_map,1) 
+    colminmax = [1 nb_colors]
+  else
+    nb_colors = colminmax(2) - colminmax(1) + 1
+  end
+  
+  //defer the drawing to avoid binking
+  id=f.immediate_drawing=='on';
+  if id then f.immediate_drawing=='off',end
+   // get current axes and properties
+  a=gca(); 
+  fg_color=a.foreground
+  wr=a.axes_bounds; //get the rectangle of the current axes
+  
+  // modify the orginal axes to let space for the colorbar
+  a_pl=a;
+  a_pl.axes_bounds=[wr(1) , wr(2) , 0.85*wr(3) , wr(4)]
+
+  // create a new axes for the colorbar et set its properties
+  a_cb=newaxes(); 
+  a_cb.axes_bounds=[wr(1)+0.83*wr(3) , wr(2)+wr(4)*0.2 , 0.2*wr(3) , wr(4)*0.6];
+  a_cb.data_bounds=[0 umin;1 umax];
+  a_cb.foreground=a.foreground;
+  a_cb.background=f.background;
+  a_cb.axes_visible='on';
+  a_cb.y_location = "right";
+  a_cb.tight_limits ="on";
     
-    //draw the colorbar
-    y = linspace(umin,umax,nb_colors+1)
-    col=[colminmax(1) colminmax(1):colminmax(2)]
-    Sgrayplot([0 1],y,[col;col],colminmax=colminmax)
-
-    //reset the initial values 
-    sca(a_pl) //current axes
-    if id then f.immediate_drawing='on',end //drawing mode
+  //It is not possible to set no ticks for x (should be fixed)
+  a_cb.x_ticks=tlist(["ticks","locations","labels"],-1,'');
+  ytics = linspace(umin, umax, nb_grad);
+  a_cb.y_ticks=tlist(["ticks","locations","labels"],ytics', ' '+msprintf(fmt+'\n',ytics'));
+  a_cb.auto_ticks = ["off","off","on"];
+  a_cb.box = "on";
+  a_cb.margins=[0 0.75 0 0];
+   
+  //draw the colorbar
+  y = linspace(umin,umax,nb_colors+1)
+  col=[colminmax(1) colminmax(1):colminmax(2)]
+  Sgrayplot([0 1],y,[col;col],colminmax=colminmax)
+
+  //reset the initial values 
+  sca(a_pl) //current axes
+  if id then f.immediate_drawing='on',end //drawing mode
 
-  end
 endfunction
 
 
index 039c351..31b2046 100644 (file)
@@ -1,46 +1,22 @@
 function [rects,btn]=dragrect(rects)
   if size(rects,1)==1 then rects=rects(:),end
   n=size(rects,2)
-  if get('figure_style')=='old' then
-    d=driver()
-    if d=='Rec' then driver('X11'),end
-    alu=xget('alufunction') ;xset('alufunction',6) //Xor mode
-
-    rep=[rects(1),rects(2),-1]
-
-    while rep(3)==-1 then
-      xrects(rects) //draw
-      if xget('pixmap') then xset('wshow'),end
-      repn=xgetmouse()
-      if repn(3)==-100  then //window has been closed 
-       driver(d)
-       btn=repn(3)
-       return
-      end
-      xrects(rects) //erase
-      if xget('pixmap') then xset('wshow'),end
-      rects(1:2,:)=rects(1:2,:)+(repn(1:2)-rep(1:2))'*ones(1,n)
-      rep=repn
+  f=gcf();pix=f.pixmap;f.pixmap='on';
+  xrects(rects) 
+  R=gce(); //Compound of rectangles
+  rep=[rects(1),rects(2),-1]
+  while rep(3)==-1 then
+    show_pixmap()
+    repn=xgetmouse()
+    if repn(3)==-100  then //window has been closed 
+      btn=repn(3)
+      return
     end
-    driver(d) ;xset('alufunction',alu) //set modes back
-  else
-    f=gcf();pix=f.pixmap;f.pixmap='on';
-    xrects(rects) 
-    R=gce(); //Compound of rectangles
-    rep=[rects(1),rects(2),-1]
-    while rep(3)==-1 then
-      show_pixmap()
-      repn=xgetmouse()
-      if repn(3)==-100  then //window has been closed 
-       btn=repn(3)
-       return
-      end
-      rects(1:2,:)=rects(1:2,:)+(repn(1:2)-rep(1:2))'*ones(1,n);
-      move(R,repn(1:2)-rep(1:2))
-      rep=repn
-    end
-    f.pixmap=stripblanks(pix)
-    delete(R)
+    rects(1:2,:)=rects(1:2,:)+(repn(1:2)-rep(1:2))'*ones(1,n);
+    move(R,repn(1:2)-rep(1:2))
+    rep=repn
   end
+  f.pixmap=stripblanks(pix)
+  delete(R)
   btn=rep(3)
 endfunction
index 8acf805..b43247a 100644 (file)
@@ -130,39 +130,22 @@ if dx<1d-10, dx=0.01,end
 if dy<1d-10, dy=0.01,end
 legs=[],lstyle=[];
 rect=[xmin-dx;ymin-dy;xmax+dx;ymax+dy];
-gstyle=get('figure_style')
-if gstyle=='new' then 
-  f=gcf();
-  cur_im_dr= f.immediate_drawing;
-  f.immediate_drawing = 'off';
-  a=gca()
-  a.data_bounds=[rect(1) rect(2);rect(3) rect(4)]
-  if nroots<>[] then 
-    plot2d(real(nroots),imag(nroots),style=-5)
-    e=gce();e=e.children;e.mark_size_unit="point";e.mark_size=7;
-    legs=[legs 'open loop zeroes']
-  end
-  if racines<>[] then 
-    plot2d(real(racines(:,1)),imag(racines(:,1)),style=-2)
-    e=gce();e=e.children;e.mark_size_unit="point";e.mark_size=7;
-    legs=[legs,'open loop poles']
-  end
-else
-  plot2d([],[],rect=rect,frameflag=7)
-  xx=xget("mark")
-  xset("mark",xx(1),xx(1)+3);
-  if nroots<>[] then
-    plot2d(real(nroots),imag(nroots),style=-5,frameflag=0,axesflag=0)
-    legs=[legs 'open loop zeroes'],lstyle=[lstyle [-5;0]];
-  end
-  //plot the poles locations
-  if racines<>[] then
-    plot2d(real(racines(:,1)),imag(racines(:,1)),style=-2,frameflag=0, ...
-          axesflag=0)
-    legs=[legs,'open loop poles'],lstyle=[lstyle, [-2;0]];
-  end
-
+f=gcf();
+cur_im_dr= f.immediate_drawing;
+f.immediate_drawing = 'off';
+a=gca()
+a.data_bounds=[rect(1) rect(2);rect(3) rect(4)]
+if nroots<>[] then 
+  plot2d(real(nroots),imag(nroots),style=-5)
+  e=gce();e=e.children;e.mark_size_unit="point";e.mark_size=7;
+  legs=[legs 'open loop zeroes']
+end
+if racines<>[] then 
+  plot2d(real(racines(:,1)),imag(racines(:,1)),style=-2)
+  e=gce();e=e.children;e.mark_size_unit="point";e.mark_size=7;
+  legs=[legs,'open loop poles']
 end
+
 dx=maxi(abs(xmax-xmin),abs(ymax-ymin));
 //plot the zeros locations
 
@@ -200,19 +183,12 @@ end;
 
 //lieu de evans
 [n1,n2]=size(racines);
-if gstyle=='new' then
-  plot2d(real(racines)',imag(racines)',style=2+(1:n2));
-  legend(legs,1);
-  xtitle('Evans root locus','Real axis','Imag. axis');
-  f=gcf();
-  if(cur_im_dr=="on") then f.immediate_drawing = 'on';end
-else
-  plot2d(real(racines)',imag(racines)',style=2+(1:n2),frameflag=0,axesflag=0);
-  legends(legs,lstyle,1);
-  xtitle('Evans root locus','Real axis','Imag. axis');
-  xset("mark",xx(1),xx(2));
-end
 
+plot2d(real(racines)',imag(racines)',style=2+(1:n2));
+legend(legs,1);
+xtitle('Evans root locus','Real axis','Imag. axis');
+f=gcf();
+if(cur_im_dr=="on") then f.immediate_drawing = 'on';end
 
 if fin=='nptmax' then
   write(%io(2),'evans : too many points required')
index df9511d..817a6a0 100644 (file)
@@ -121,13 +121,8 @@ else
   strf='151'
 end;
 
-isNewStyle = ( get("figure_style") == "new") ;
 
 rect=[mini(frq),mini(d),maxi(frq),maxi(d)]
-if ~isNewStyle then
-  plot2d1("oln",mini(frq),mini(d),0,'051',' ',rect);
-end
-
 
 xgrid(4)
 if ilf==0 then
@@ -136,12 +131,10 @@ else
   plot2d1("gln",frq',d',[1,3:mn+1],strf,strcat(comments,'@'),rect);
 end
 
-if isNewStyle then
-  axes = gca() ;
-  rect=[mini(frq),mini(d);maxi(frq),maxi(d)]
-  axes.data_bounds = rect ;
-  a.log_flags = "lnn" ;
-end
+axes = gca() ;
+rect=[mini(frq),mini(d);maxi(frq),maxi(d)]
+axes.data_bounds = rect ;
+a.log_flags = "lnn" ;
 
 if ~noxtitle then
 xtitle(' ','Hz','db');
index f0f39c9..994a9ca 100644 (file)
@@ -11,15 +11,6 @@ function ged(k,win)
   
   ged_current_figure=xget('window')
   xset('window',win) 
-  isold=get('figure_style')=='old'
-  if isold&k>3 then 
-    message('this menu does not apply to old style graphics')
-    xset('window',ged_current_figure)
-    clearglobal ged_current_figure
-    clear ged_current_figure
-    return
-  end
-  
   
   scf(win);
   ged_cur_fig_handle=gcf();
@@ -36,7 +27,7 @@ function ged(k,win)
     case 1 then //Select (make it current)
       return
     case 2 then //redraw
-      if isold then xbasr(win),end
+      // nothing to do in new graphic mode
     case 3 then //erase
       xbasc()
     case 4 then //copy
index f8feff2..22a5e54 100644 (file)
@@ -9,13 +9,7 @@ function ged_insert(k,win)
   
   ged_current_figure=xget('window')
   xset('window',win) 
-  isold=get('figure_style')=='old'
-  if isold then 
-    message('this menu does not apply to old style graphics')
-    xset('window',ged_current_figure)
-    return
-  end
-
+  
   scf(win);
   ged_cur_fig_handle=gcf();
   
index 50e6a16..ffa8c2a 100644 (file)
@@ -18,11 +18,7 @@ else
 end;
 
 if winsid()~=[] then
-  if get("figure_style")=="old" then
-    cmap = xget("colormap");
-  else
-    cmap = get(gcf(),"color_map");
-  end;
+  cmap = get(gcf(),"color_map");
   curwin = xget("window");
 else
   cmap = []
@@ -31,9 +27,6 @@ end;
 win = max(winsid()+1);
 xset("window",win);
 
-if get("figure_style")=="old" then
-  set("figure_style","new");
-end;
 sdf;
 sda;
 f = gcf();
index 4a23f0d..f421869 100644 (file)
@@ -11,7 +11,6 @@ function [fontId,fontSize]=getfont(S,v1)
        xset('window',win);
        
        xset('window',win);
-       set figure_style new;
        
        fnts=xlfont();
        nf=size(find(fnts<>''),'*')-1
index e7a45e7..290f983 100644 (file)
@@ -36,7 +36,6 @@ deff('menu_ok(k,gwin)','global done;done=1')
 deff('menu_cancel(k,gwin)','global done;done=2')
 
 
-set('figure_style','new')
 f=gcf();
 cur_draw_mode = f.immediate_drawing;
 f.immediate_drawing='off'
index d99cd84..c382780 100644 (file)
@@ -42,7 +42,6 @@ function [k1,k2]=getmark()
        deff('menu_ok(k,gwin)','global done;done=1')
        deff('menu_cancel(k,gwin)','global done;done=2')
        
-       set('figure_style','new')
        f=gcf();
        f.figure_size = [674,841]
        f.axes_size = [610,780]
index aeeba9f..86477f6 100644 (file)
@@ -1,6 +1,7 @@
 function [sd]=gr_menu(sd,flag,noframe)
 // Copyright INRIA
-  set figure_style old
+  error("gr_menu is no longer available.",999);
+  return ;
   getf('SCI/modules/graphics/macros/gr_macros.sce','c');
 
   deff('[modek]=clearmode()',['modek=xget(''alufunction'')';
index 3332316..fef1552 100644 (file)
@@ -1,22 +1,16 @@
 function graypolarplot(theta,rho,z,varargin)
 [lhs,rhs]=argn(0)
-fstyle=get('figure_style')
 if rhs<=0 then
   rho=1:0.2:4;theta=(0:0.02:1)*2*%pi;
   z=30+round(theta'*(1+rho^2));
   xbasc();
-  if fstyle=='new' then 
-    f=gcf();
-    f.color_map=hotcolormap(128);
-    f.background= 128;
-    f.foreground=1;
-    a=gca();
-    a.background= 128;
-    a.foreground=1;
-  else
-    xset('colormap',hotcolormap(128))
-    xset('background',xget('white'))
-  end
+  f=gcf();
+  f.color_map=hotcolormap(128);
+  f.background= 128;
+  f.foreground=1;
+  a=gca();
+  a.background= 128;
+  a.foreground=1;
   graypolarplot(theta,rho,z)
   return
 end
@@ -26,9 +20,7 @@ R=max(rho)
 nv=size(varargin)
 if nv>=1 then strf=varargin(2),else  strf='030',end
 if nv>=2 then rect=varargin(4),else  rect=[-R -R R R]*1.1,end
-if fstyle=='new' then 
-  drawlater()
-end
+drawlater()
 plot2d(0,0,1,strf,' ',rect)
 
 [rho,k]=sort(rho);z=z(:,k);
@@ -71,5 +63,6 @@ for k=0:11
   xstring(r*cos(k*(%pi/6))-w/2,r*sin(k*(%pi/6))-h/2,string(k*30))
 end
 xset("dashes",1)
-if fstyle=='new' then drawnow(),end
+drawnow()
+
 endfunction
index cff71b1..0156a2b 100644 (file)
@@ -1,7 +1,4 @@
 function R=legend(varargin)
-  if get('figure_style')=='old' then
-    error('This function cannot be used with old style graphics, see legends')
-  end
   f=gcf()
   vis=f.immediate_drawing;
   narg=size(varargin)
index 0c8e59e..16852c2 100644 (file)
@@ -35,18 +35,13 @@ function legends(leg, style, opt, with_box)
   if or(size(style)==1) then, style=matrix(style,1,-1),end
   ns=size(style,2)
 
-  old_style=get('figure_style')=='old'
   
   //preserve current graphic context
-  if ~old_style then 
-    f=gcf()
-    vis=f.visible;
-    old_ax=gca(),
-    arect=old_ax.margins;
-    r1=old_ax.axes_bounds;
-  else
-    [r1,r2,logflag,arect]=xgetech() 
-  end  
+  f=gcf()
+  vis=f.visible;
+  old_ax=gca(),
+  arect=old_ax.margins;
+  r1=old_ax.axes_bounds;
   
   //create small axes on the top left corner (the axes is choosen very
   //small to avoid it can be selected for rotation in new graphic mode
@@ -54,13 +49,9 @@ function legends(leg, style, opt, with_box)
   xsetech(wrect=[r1(1),r1(2),r1(3)/1000,r1(4)/1000],frect=[0 0 1,1]/1000,arect=[0,0,0,0])
   xmin=arect(1);xmax=1-arect(2);ymin=-1+arect(4);ymax=-arect(3);
 
-  if old_style then 
-    xclip()//no clipping
-  else
-    cur_ax=gca(),
-    cur_ax.clip_state='off';
+  cur_ax=gca(),
+  cur_ax.clip_state='off';
 
-  end  
 
   dy=ymax-ymin
   drx=(xmax-xmin)/20 //length of the line
@@ -83,19 +74,18 @@ function legends(leg, style, opt, with_box)
 
   //upper left coordinates
   if size(opt,'*')>1 then 
-     // fix for bug 1237 (Bruno 9 march 2005)
-     if ~old_style then
-       if old_ax.tight_limits == "on" then  // data_bounds' corresponds to the old frec
-          r2 = old_ax.data_bounds'
-       else 
-          r2 = [old_ax.x_ticks.locations(1),old_ax.y_ticks.locations(1),...
-                old_ax.x_ticks.locations($),old_ax.y_ticks.locations($)]
-       end
-     end
-     pos(1) = xmin + ((opt(1)-r2(1))/(r2(3)-r2(1)))*(1-arect(1)-arect(2))
-     pos(2) = ymin + ((opt(2)-r2(2))/(r2(4)-r2(2)))*(1-arect(3)-arect(4))
-     // end bugfix
-     opt=0 ;
+    // fix for bug 1237 (Bruno 9 march 2005)
+    if old_ax.tight_limits == "on" then  // data_bounds' corresponds to the old frec
+
+      r2 = old_ax.data_bounds'
+    else 
+      r2 = [old_ax.x_ticks.locations(1),old_ax.y_ticks.locations(1),...
+            old_ax.x_ticks.locations($),old_ax.y_ticks.locations($)]
+    end
+    pos(1) = xmin + ((opt(1)-r2(1))/(r2(3)-r2(1)))*(1-arect(1)-arect(2))
+    pos(2) = ymin + ((opt(2)-r2(2))/(r2(4)-r2(2)))*(1-arect(3)-arect(4))
+    // end bugfix
+    opt=0 ;
   elseif opt<1 | opt>5 then 
      error('opt can take value in 1 2 3 4 5')
   end
@@ -116,63 +106,31 @@ function legends(leg, style, opt, with_box)
   x=pos(1)+drx/5
   y=pos(2)-dy/60
   
-  if old_style then
-    if with_box then 
-       c = xget("color")
-       xset("color",xget("background"))
-       xfrect(pos(1),pos(2),width,height)
-       xset("color",xget("foreground"))
-       xrect(pos(1),pos(2),width,height)  
-       xset("color",c)
-    end
-    linestyle=xget('line style')
-    clr=xget('color')
-    for k=1:nleg
-      if k<=size(style,2) then
-       if style(1,k)<= 0 then
-         if size(style,1)==2 then  xset("color",style(2,k));end
-         xpolys(x+drx/2,y-bbx(k,2)/2,style(1,k))
-         xset('color',clr)
-       else
-         if size(style,1)==2 then  xset("line style",style(2,k));end
-         xsegs([x;x+drx],[y;y]-bbx(k,2)/2,style(1,k))
-       end
-      end
-      xset("color",xget("foreground"))
-      xstring(x+drx*1.2,y-bbx(k,2),leg(k))
-      xset("color",clr)
-      y=y-bbx(k,2)-dh
-    end
-    //reset saved graphic context
-    xset('line style',linestyle)
-    xset('color',clr)
-    xsetech(wrect=r1,frect=r2,arect=arect,logflag=logflag)
-  else
-    drawlater()
-    a=gca()
-    a.foreground=old_ax.foreground
-    a.background=old_ax.background
-    a.font_color=old_ax.font_color
-    a.font_size =old_ax.font_size;
-    a.font_style=old_ax.font_style;
+  drawlater()
+  a=gca()
+  a.foreground=old_ax.foreground
+  a.background=old_ax.background
+  a.font_color=old_ax.font_color
+  a.font_size =old_ax.font_size;
+  a.font_style=old_ax.font_style;
 
-    a.clip_state='off';
+  a.clip_state='off';
 
-    R=[]
-    if with_box then 
-       xpol = [pos(1), pos(1)+width, pos(1)+width, pos(1)];
-       ypol = [pos(2), pos(2), pos(2)-height, pos(2)-height];     
-       xfpoly(xpol, ypol,1)
-       R = gce();
-       R.foreground=a.foreground;
-       R.background=a.background;
-   end
-    for k=1:nleg
-      if k<=size(style,2) then
-       if type(style)==9 then
-         h=style(k)
-         select h.type
-           case "Polyline"
+  R=[]
+  if with_box then 
+     xpol = [pos(1), pos(1)+width, pos(1)+width, pos(1)];
+     ypol = [pos(2), pos(2), pos(2)-height, pos(2)-height];     
+     xfpoly(xpol, ypol,1)
+     R = gce();
+     R.foreground=a.foreground;
+     R.background=a.background;
+  end
+  for k=1:nleg
+    if k<=size(style,2) then
+      if type(style)==9 then
+        h=style(k)
+        select h.type
+          case "Polyline"
            if h.polyline_style==5 then //patch
              xfpoly([x;x+drx;x+drx;x;x],[y-bbx(k,2);y-bbx(k,2);y;y;y-bbx(k,2)]);r=gce();
              r = unglue(r); // one xfpoly returns 2 polylines -> tmp bug to fix later F.Leray
@@ -210,21 +168,20 @@ function legends(leg, style, opt, with_box)
            r=gce(),
            r.foreground=style(1,k)
            if size(style,1)==2 then r.line_style=style(2,k);end
-         end
-       end
-      end
-      R=[R,r']
-      xstring(x+drx*1.2,y-bbx(k,2),leg(k))
-      r=gce()
-      R=[R,r]
-      y=y-bbx(k,2)-dh
+          end
+        end
     end
-    glue(R)
-    R=gce()
-    draw(R)
-    set('current_axes',old_ax),
-    drawnow()
-    f.visible=vis;
+    R=[R,r']
+    xstring(x+drx*1.2,y-bbx(k,2),leg(k))
+    r=gce()
+    R=[R,r]
+    y=y-bbx(k,2)-dh
   end
+  glue(R)
+  R=gce()
+  draw(R)
+  set('current_axes',old_ax),
+  drawnow()
+  f.visible=vis;
 endfunction
index 84af5c7..a081da7 100644 (file)
@@ -19,25 +19,13 @@ function [x,but]=locate(n,flag)
   [lhs,rhs]=argn(0)
   but=[]
   xselect();
-  st=get('figure_style')=='new'
   if rhs<=1,flag=0;end
   if rhs==0;n=-1;end
 
-  if ~st then //old graphic mode
-    xxx=xget('mark');
-    xset('mark',2,xxx(2));
-
-    deff('[]=clearmode(flag)',[
-       'modek=xget(''alufunction'')';
-       'xset(''alufunction'',6)';
-       'if flag==1,xpoly(x(1,:),x(2,:),''marks'',0);end';
-       'xset(''alufunction'',modek);';
-       'xset(''mark'',xxx(1),xxx(2))']);
-  else
-    ax=gca()
-    mark_style=ax.mark_style;mark_size=ax.mark_size;mark_size_unit=ax.mark_size_unit;
-    ax.mark_style=2;ax.mark_size=0;ax.mark_size_unit = "tabulated"
-    deff('[]=clearmode(flag)',[
+  ax=gca()
+  mark_style=ax.mark_style;mark_size=ax.mark_size;mark_size_unit=ax.mark_size_unit;
+  ax.mark_style=2;ax.mark_size=0;ax.mark_size_unit = "tabulated"
+  deff( '[]=clearmode(flag)',[
        'npt=size(x,2);'
        'if npt>0&flag==1 then'
        '  delete(ax.children(1:npt))'
@@ -45,7 +33,6 @@ function [x,but]=locate(n,flag)
        'ax.mark_size_unit=mark_size_unit;'
        'ax.mark_style=mark_style;'
        'ax.mark_size=mark_size;']);
-  end
   x=[];
   if n >= 0 then 
     for i=1:n,
index f07a6dd..0d85888 100644 (file)
@@ -27,50 +27,30 @@ if rhs<5 then //compute the data bounds
 end
 if rhs<43 then flag='no';end
 realtimeinit(0.1);
-if get("figure_style")=="new" then
-  xbasc();
-  fig=gcf();
-  a=gca();
-  a.data_bounds=matrix(rect,2,2);
-  a.axes_visible='on';
-  fig.pixmap='on'; //double buffer mode
-  y=feval(x,theta(1),f);
-  xpoly(x,y(:));p=gce(); //the polyline handle
-  realtime(0);
-  if flag=='no' then
-    for k=1:size(theta,'*')
-      realtime(k);
-      y=feval(x,theta(k),f);
-      p.data(:,2)=y(:);
-      show_pixmap()
-    end
-  else
-    for k=1:size(theta,'*')
-       realtime(k);
-      plot2d(x,feval(x,theta(k),f))
-      show_pixmap()
-    end
+xbasc();
+fig=gcf();
+a=gca();
+a.data_bounds=matrix(rect,2,2);
+a.axes_visible='on';
+fig.pixmap='on'; //double buffer mode
+y=feval(x,theta(1),f);
+xpoly(x,y(:));p=gce(); //the polyline handle
+realtime(0);
+if flag=='no' then
+  for k=1:size(theta,'*')
+    realtime(k);
+    y=feval(x,theta(k),f);
+    p.data(:,2)=y(:);
+    show_pixmap()
   end
-  fig.pixmap='off';
 else
-  plot2d(0,0,0,"010"," ",rect);  //First plot to set the rectangle 
-  //    Animated plot
-  xset('pixmap',1);
-  realtime(0);
-  if flag=='no' then
-    for k=1:size(theta,'*')
-      realtime(k);
-      xset("wwpc");
-      plot2d(x,feval(x,theta(k),f)) 
-      xset("wshow");
-    end
-  else
-    for k=1:size(theta,'*')
-      realtime(k);
-      plot2d(x,feval(x,theta(k),f)) 
-      xset("wshow");
-    end
+  for k=1:size(theta,'*')
+    realtime(k);
+    plot2d(x,feval(x,theta(k),f))
+    show_pixmap()
   end
-  xset("pixmap",0);
 end
+fig.pixmap='off';
+
 endfunction
index 4541081..b6a8ade 100644 (file)
@@ -10,13 +10,6 @@ function plot(varargin)
 
 [lhs,rhs]=argn(0);
 
-isold=get('figure_style')=='old'
-
-if isold
-  T = varargin
-  oldplot(T(:));
-  return;
-end
 
 
 if ~rhs
index 72650fa..0dba127 100644 (file)
@@ -7,25 +7,19 @@ function replot(rect,handl)
 
 win=xget("window");
 
-isold=get('figure_style')=='old'
-
-if isold
-  xclear();xtape('replaysc',win,rect);
-else
   
-  if rhs == 1
-    a=gca();
-  else
-    if (type(handl) == 9)
-      if (handl.type == 'Axes')
-       a = handl;
-      else
-       error("Error : handle must be of type Axes");
-      end
+if rhs == 1
+  a=gca();
+else
+  if (type(handl) == 9)
+    if (handl.type == 'Axes')
+      a = handl;
     else
-      error("Error : Incorrect input, second argument must be of type graphic Axes handle");
+      error("Error : handle must be of type Axes");
     end
+  else
+    error("Error : Incorrect input, second argument must be of type graphic Axes handle");
   end
-  a.data_bounds = [rect(1) rect(2) ; rect(3) rect(4)]
 end
+a.data_bounds = [rect(1) rect(2) ; rect(3) rect(4)]
 endfunction
index 78c046b..035db71 100644 (file)
@@ -10,32 +10,28 @@ j=int((p-1)/n)
 i=p-1-n*j
 axes_bounds=[i/n,j/m,1/n,1/m];
 
-if get('figure_style')=='new' then
-  f=gcf();
-  na=size(f.children,'*')
-  if na==1 then 
-    // an axes is automatically created when a figure is created
-    // do not create a new axes if we have just this one
-      a=f.children;da=gda()
-      if a.children==[]& and(a.axes_bounds==da.axes_bounds) then
-       //a single axes with no children, just resize it
-       a.axes_bounds=axes_bounds;
-       return  
-     end
-  end
-  // look for an axes with the same axes_bounds
-  for k=1:na
-    if and(f.children(k).axes_bounds==axes_bounds) then
-      //make it current
-      sca(f.children(k))
-      return
-    end
-  end  
-  //create a new axes
-  a=newaxes();
-  a.axes_bounds=axes_bounds;
-  sca(a)
-else //old graphic
-  xsetech(axes_bounds)
+f=gcf();
+na=size(f.children,'*')
+if na==1 then 
+  // an axes is automatically created when a figure is created
+  // do not create a new axes if we have just this one
+    a=f.children;da=gda()
+    if a.children==[]& and(a.axes_bounds==da.axes_bounds) then
+     //a single axes with no children, just resize it
+     a.axes_bounds=axes_bounds;
+     return    
+   end
 end
+// look for an axes with the same axes_bounds
+for k=1:na
+  if and(f.children(k).axes_bounds==axes_bounds) then
+    //make it current
+    sca(f.children(k))
+    return
+  end
+end    
+//create a new axes
+a=newaxes();
+a.axes_bounds=axes_bounds;
+sca(a)
 endfunction
index 3cd7ada..e1227cd 100644 (file)
@@ -7,14 +7,6 @@ function surf(varargin)
 
 [lhs,rhs]=argn(0);
 
-isold=get('figure_style')=='old'
-
-if isold
-  disp("Not supported under old graphic style");
-  return;
-end
-
-
 if ~rhs
   s_mat = [ "Z= [   0.0001    0.0013    0.0053   -0.0299   -0.1809   -0.2465   -0.1100   -0.0168   -0.0008   -0.0000;";
          "0.0005    0.0089    0.0259   -0.3673   -1.8670   -2.4736   -1.0866   -0.1602   -0.0067    0.0000;";
index b6a65cd..2704dfc 100644 (file)
@@ -6,20 +6,14 @@ function xbasc(win_num)
 // win_num can also be a vector of window Id to clear a set of windows
 //!
 // Copyright ENPC
+// Copyright INRIA 2007
 
   [lhs,rhs]=argn(0);
-  vvv=xget("old_style");
-  if vvv==0 then
-    if rhs==0, win_num=xget("window"), delete('all') ;end
-    [n1,n2]=size(win_num);
-    yyy=xget('window');
-    for xxx=win_num, xset('window',xxx);delete('all');end
-    xset('window',yyy);
-  else
-    if rhs==0,win_num=xget("window");end
-    [n1,n2]=size(win_num);
-    for xxx=win_num,xclear(xxx);xtape('clear',xxx);end
-  end
+  if rhs==0, win_num=xget("window"), delete('all') ;end
+  [n1,n2]=size(win_num);
+  yyy=xget('window');
+  for xxx=win_num, xset('window',xxx);delete('all');end
+  xset('window',yyy);
 endfunction 
 
 
index af6630d..80c9675 100644 (file)
@@ -1,20 +1,14 @@
 function []=xbasr(win_num)
 // This function is used to redraw the content of the graphic 
-// window win_num. It works only with the driver "Rec"
+// window win_num.
 //!
 // Copyright Enpc
+// Copyright INRIA 2007
+
 [lhs,rhs]=argn(0);
 if rhs==0,
-  if get('figure_style')=='old' then
-    win_num=xget("window");
-    xclear(win_num);xtape('replay',win_num);
-  end
+  draw(gcf()) ;
 else 
-   cw=xget("window");
-   xset("window",win_num);
-   if get('figure_style')=='old' then
-     xclear(win_num);xtape('replay',win_num);
-   end
-   xset("window",cw);
+   draw(scf(win_num)) ;
 end 
 endfunction
index 2f76cdf..49b1cad 100644 (file)
@@ -1,43 +1,12 @@
 function xload(fil,num)
   if  argn(2)==2 then xset("window",num),end
-  if get('figure_style')=='old' then set('figure_style','new'),end
   f=gcf()
-  xload_mode=%t
   res = execstr('load(fil)','errcatch') ;
   if res==0 then
     f.visible='on'
     f.immediate_drawing='on';
-  else 
-    //test if it is really an old style graphic save file
-    ufil=mopen(fil,'rb')
-    pos=mtell(ufil)
-    n1=mget(1,'uib',ufil)
-    if n1<>8 then 
-      mclose(ufil),error('Given file is not a graphic one');
-    end
-    mseek(pos,ufil,'set')
-    SciF_version=LoadVectC()
-    if part(SciF_version,1:4)<>"SciG" then 
-      mclose(ufil),error('Given file is not a graphic one'),
-    end
-    mclose(ufil),
-    set('figure_style','old')
-    xload(fil)
+  else
+    error('Given file is not a graphic one') ;
   end
-//  draw(f)
 
 endfunction
-function str=LoadVectC()
-// Copyright INRIA
-// Author: Serge Steer
-
-// Emulate the C procedure in routines/graphics/RecLoad.c
-  
-  n1=mget(1,'uib',ufil)
-  //q=int(n1/4);r=n1-4*q
-  n=n1
-  if modulo(n1,4)<>0 then n=4*(int(n1/4)+1),end
-  c=mget(n,'uc',ufil)
-  if n1-1>size(c) then pause,end
-  str=ascii(c(1:n1-1))
-endfunction
diff --git a/scilab/modules/graphics/src/c/Alloc.c b/scilab/modules/graphics/src/c/Alloc.c
deleted file mode 100644 (file)
index 960fb15..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*------------------------------------------------------------------------
- *    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_graphics.h"
-#include "Graphics.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;
-      }
-}
-
index d3d4ba2..0b13bd9 100644 (file)
@@ -12,6 +12,7 @@
 #include "PloEch.h"
 #include "Xcall1.h"
 #include "sciprint.h"
+#include "MALLOC.h"
 
 #include "GetProperty.h"
 
@@ -77,6 +78,12 @@ static integer oddp  __PARAMS((integer i));
 static double *GX,*GY,*GZ;
 static integer Gn1,Gn2;
 
+static double * Gxcont = NULL ;
+static double * Gycont = NULL ;
+
+static integer * xcont = NULL ;
+static integer * ycont = NULL ;
+
 static void InitValues(double *x, double *y, double *z, integer n1, integer n2)
 {
   Gn1=n1;  Gn2=n2;  GX = x;  GY = y;  GZ = z;
@@ -134,11 +141,11 @@ static integer oddp(integer i) { return( i == 1 || i ==3 );}
 
 /*---------return the x-value of a grid point--------*/
 
-static double x_cont(integer i) {  return GX[i] ;}
+static double x_cont(integer i) { return GX[i] ;}
 
 /*---------return the y-value of a grid point --------*/
 
-static double y_cont(integer i) {  return GY[i] ;}
+static double y_cont(integer i) { return GY[i] ;}
 
 /*------------------------------------------------------------
  * Draw level curves for a function f(x,y) which values 
@@ -220,7 +227,7 @@ int C2F(contour)(double *x, double *y, double *z, integer *n1, integer *n2, inte
      }
   if (*flagnz == 0)
     {
-      if ((zconst = graphic_alloc(5,(*nz),sizeof(double)))== 0) 
+      if ( ( zconst = MALLOC( (*nz) * sizeof(double) ) )== 0) 
        {
          sciprint("Running out of memory\r\n");
          return 0;
@@ -229,6 +236,8 @@ int C2F(contour)(double *x, double *y, double *z, integer *n1, integer *n2, inte
        zconst[i]=zmin + (i+1)*(zmax-zmin)/(*nz+1);
       N[0]= *n1;N[1]= *n2;N[2]= *nz;
       contourI(func,x,y,z,zconst,N,(integer *) 0,&err);
+      FREE(zconst) ;
+      zconst = NULL ;
     }
    else
     {
@@ -245,6 +254,7 @@ int C2F(contour)(double *x, double *y, double *z, integer *n1, integer *n2, inte
        DrawAxis(xbox,ybox,InsideD,fg);
     }
   frame_clip_off();
+
   return(0);
 }
 
@@ -336,7 +346,7 @@ static int Contour2D(ptr_level_f func, char *name, double *x, double *y, double
     }
   if (*flagnz==0)
     {
-      if ((zconst = graphic_alloc(5,(*nz),sizeof(double)))== 0) 
+      if (( zconst = MALLOC( (*nz) * sizeof(double) ) )== 0) 
        {
          sciprint("Running out of memory\r\n");
          return 0;
@@ -345,6 +355,8 @@ static int Contour2D(ptr_level_f func, char *name, double *x, double *y, double
        zconst[i]=zmin + (i+1)*(zmax-zmin)/(*nz+1);
       N[0]= *n1;N[1]= *n2;N[2]= *nz;
       contourI(func,x,y,z,zconst,N,style,&err);
+      FREE(zconst) ;
+      zconst = NULL ;
     }
   else
     {
@@ -353,6 +365,7 @@ static int Contour2D(ptr_level_f func, char *name, double *x, double *y, double
     }
 
   if (strcmp(name,"contour2")==0 )frame_clip_off();
+
   return(0);
 }
 
@@ -368,7 +381,7 @@ int C2F(contourif)(double *x, double *y, double *z, integer *n1, integer *n2, in
 
   if (*flagnz==0)
     {
-      if ((zconst = graphic_alloc(5,(*nz),sizeof(double)))== 0) 
+      if ( ( zconst = MALLOC( (*nz) * sizeof(double) ) ) == 0 ) 
        {
          sciprint("Running out of memory\r\n");
          return 0;
@@ -377,12 +390,15 @@ int C2F(contourif)(double *x, double *y, double *z, integer *n1, integer *n2, in
        zconst[i]=zmin + (i+1)*(zmax-zmin)/(*nz+1);
       N[0]= *n1;N[1]= *n2;N[2]= *nz;
       contourI(GContStore2,x,y,z,zconst,N,style,&err);
+      FREE(zconst) ;
+      zconst = NULL ;
     }
   else
     {
       N[0]= *n1;N[1]= *n2;N[2]= *nz;
       contourI(GContStore2,x,y,z,zz,N,style,&err);
     }
+
   return(0);
 }
 
@@ -410,14 +426,17 @@ static void contourI(ptr_level_f func, double *x, double *y, double *z, double *
   n5 =  2*(n1)+2*(n2)-3;
   /* Allocation */
   Gcont_size = 0; /** initialize the array indices for storing contours **/
-  xbd_cont = graphic_alloc(0,n5,sizeof(int));
-  ybd_cont = graphic_alloc(1,n5,sizeof(int));
-  itg_cont = graphic_alloc(2,n1*n2,sizeof(int));
+  xbd_cont = MALLOC( n5 * sizeof(int) ) ;
+  ybd_cont = MALLOC( n5 * sizeof(int) ) ;
+  itg_cont = MALLOC( n1*n2 * sizeof(int) ) ;
   if ( (xbd_cont == NULL) && n5 != 0) check= 0;
   if ( (ybd_cont == NULL) && n5 != 0) check= 0;
   if ( (itg_cont == NULL) && n1*n2 != 0) check= 0;
   if ( check == 0) 
     {
+      FREE( xbd_cont ) ;
+      FREE( ybd_cont ) ;
+      FREE( itg_cont ) ;
       sciprint("contourI_: Running out of memory\n");
       return;
     }
@@ -465,6 +484,10 @@ static void contourI(ptr_level_f func, double *x, double *y, double *z, double *
                               phi_cont(i, j-1)-zCont[c]))
            look(func,i,j,i,j-1,2L,zCont[c],stylec);
     }
+  FREE( xbd_cont ) ;
+  FREE( ybd_cont ) ;
+  FREE( itg_cont ) ;
+
 }
 
 /*--------------------------------------------------------------------
@@ -674,7 +697,6 @@ static integer ffnd (ptr_level_f func, integer i1, integer i2, integer i3, integ
  * Storing and tracing level curves 
  *----------------------------------------------------------------*/
 
-static integer *xcont,*ycont;
 static integer cont_size ;
 
 /*
@@ -690,10 +712,15 @@ G_ContStore(integer ival, int xncont, int yncont)
   /* nouveau contour */
   if ( ival == 0) cont_size =0 ;
   n= cont_size + 1;
-  xcont = graphic_alloc(3,n,sizeof(int));
-  ycont = graphic_alloc(4,n,sizeof(int));
-  if ( (xcont == NULL) && n != 0) return ; 
-  if ( (ycont == NULL) && n != 0) return ;
+  xcont = REALLOC( xcont, n * sizeof(int) ) ;
+  ycont = REALLOC( ycont, n * sizeof(int) ) ;
+  if ( ( xcont == NULL || ycont == NULL ) && n != 0 )
+  {
+    FREE( xcont ) ;
+    FREE( ycont ) ;
+
+    return ;
+  }
   xcont[cont_size]= xncont;
   ycont[cont_size++]= yncont;
 }
@@ -778,8 +805,6 @@ static void ContourTrace(double Cont, integer style)
  * double in order to access to the stored data at Scilab level 
  *----------------------------------------------------------------*/
 
-
-double *Gxcont,*Gycont;
 static int last=-1;
 static int count=0; 
  
@@ -802,22 +827,41 @@ static void GContStore2(integer ival, double Cont, double xncont, double yncont)
       /* Here : ival == 0 means stop the current level curve and 
        * store data at the end but do reset Gcont_size to zero 
        */
-      n= Gcont_size + 1;
-      Gxcont = graphic_alloc(3,n,sizeof(double));
-      Gycont = graphic_alloc(4,n,sizeof(double));
+      n= Gcont_size + 2;
+      if ( Gxcont == NULL )
+      {
+        Gxcont = MALLOC( n * sizeof(double) ) ;
+        Gycont = MALLOC( n * sizeof(double) ) ;
+      }
+      else
+      {
+        Gxcont = REALLOC( Gxcont, n * sizeof(double) ) ;
+        Gycont = REALLOC( Gycont, n * sizeof(double) ) ;
+      }
       if ( (Gxcont == NULL) && n != 0) return ; 
       if ( (Gycont == NULL) && n != 0) return ;
       Gxcont[Gcont_size] = Cont;
-      if ( last != -1 ) Gycont[last]= count;
+      if ( last != -1 && last < n ) Gycont[last]= count;
       last = Gcont_size;
       Gcont_size++;
       count = 0;
     }
-  n= Gcont_size + 1;
-  Gxcont = graphic_alloc(3,n,sizeof(double));
-  Gycont = graphic_alloc(4,n,sizeof(double));
-  if ( (Gxcont == NULL) && n != 0) return ; 
-  if ( (Gycont == NULL) && n != 0) return ;
+  else
+  {
+    n = Gcont_size + 1 ;
+    if ( Gxcont == NULL )
+    {
+      Gxcont = MALLOC( n * sizeof(double) ) ;
+      Gycont = MALLOC( n * sizeof(double) ) ;
+    }
+    else
+    {
+      Gxcont = REALLOC( Gxcont, n * sizeof(double) ) ;
+      Gycont = REALLOC( Gycont, n * sizeof(double) ) ;
+    }
+    if ( (Gxcont == NULL) && n != 0) return ; 
+    if ( (Gycont == NULL) && n != 0) return ;
+  }
   Gxcont[Gcont_size]=xncont;
   Gycont[Gcont_size++]=yncont;
   count++;
index 023826e..77f9b75 100644 (file)
@@ -316,9 +316,9 @@ void newfec(integer *xm,integer *ym,double *triangles,double *func,integer *Nnod
  
   /* allocations for some arrays ... */
   nz = color_max - color_min + 1;
-  zone   = MALLOC( *Nnode * sizeof(int)    ) ; /*graphic_alloc(2,(*Nnode),sizeof(int)); */
-  zlevel = MALLOC( (nz+1) * sizeof(double) ) ;/* graphic_alloc(3,nz+1,sizeof(double));*/
-  fill   = MALLOC( (nz+2) * sizeof(int)    ) ; /*graphic_alloc(4,nz+2,sizeof(int));*/
+  zone   = MALLOC( *Nnode * sizeof(int)    ) ;
+  zlevel = MALLOC( (nz+1) * sizeof(double) ) ;
+  fill   = MALLOC( (nz+2) * sizeof(int)    ) ;
   if ( (zone == NULL) || (zlevel == NULL) || (fill  == NULL)) 
   {
     sciprint("fec: malloc No more Place\n");
index 9271c8c..ae8113d 100644 (file)
@@ -90,11 +90,13 @@ int C2F(plot2d)(double    x[]      ,
   n = (*n1)*(*n2) ; 
   if ( n != 0 ) 
     {
-      xm = graphic_alloc(0,n,sizeof(int));
-      ym = graphic_alloc(1,n,sizeof(int));
+      xm = MALLOC( n * sizeof(int) ) ;
+      ym = MALLOC( n * sizeof(int) ) ;
       if ( xm == 0 || ym == 0) 
        {
          sciprint("Running out of memory \n");
+          FREE( xm ) ;
+          FREE( ym ) ;
          return 0;
        }      
       /** Real to Pixel values **/
@@ -112,6 +114,8 @@ int C2F(plot2d)(double    x[]      ,
       if ((int)strlen(strflag) >=1  && strflag[0] == '1')
        Legends(style,n1,legend); 
     }
+  FREE( xm ) ;
+  FREE( ym ) ;
   return(0);
 }
 
index 130b6ff..ea2dada 100644 (file)
@@ -157,10 +157,10 @@ static void C2F(plot3dg)(char *name, int (*func) (/* ??? */), double *x, double
       if (flag[2] >=2 )DrawAxis(xbox,ybox,InsideU,fg1);
     }
  
-  polyx = graphic_alloc(0,5*(*q),sizeof(int));
-  polyy = graphic_alloc(1,5*(*q),sizeof(int));
-  fill  = graphic_alloc(2,(*q),sizeof(int));
-  if ( (polyx == NULL) || (polyy == NULL) || (fill  == NULL)) 
+  polyx = MALLOC( 5 * (*q) * sizeof(int) ) ;
+  polyy = MALLOC( 5 * (*q) * sizeof(int) ) ;
+  fill  = MALLOC( (*q) * sizeof(int) ) ;
+  if ( (polyx == NULL) || (polyy == NULL) || (fill  == NULL))
     {
       sciprint("plot3dg_ : malloc No more Place\n");
       return;
@@ -235,7 +235,10 @@ static void C2F(plot3dg)(char *name, int (*func) (/* ??? */), double *x, double
        }
       break;
     }
-  /* jpc   if (flag[1] != 0 && flag[2] >=3 ) */
+  
+  FREE( polyx ) ;
+  FREE( polyy ) ;
+
   if ( flag[2] >=3 )
     {
       /** Le triedre que l'on doit voir **/
@@ -295,16 +298,16 @@ static void C2F(fac3dg)(char *name, int iflag, double *x, double *y, double *z,
       cache=InsideU[0]-4;
       if (flag[2] >=2 )DrawAxis(xbox,ybox,InsideU,fg1);
     }
-  polyz = graphic_alloc(5,(*q),sizeof(double));
+  polyz = MALLOC( (*q) * sizeof(double) ) ;
   if ( (polyz == NULL) && (*q) != 0)
     {
       sciprint("plot3dg_ : malloc No more Place\n");
       return;
     }
   /** Allocation  **/
-  polyx = graphic_alloc(0,(*p)+1L,sizeof(int));
-  polyy = graphic_alloc(1,(*p)+1L,sizeof(int));
-  locindex = graphic_alloc(2,(*q),sizeof(int));
+  polyx = MALLOC( ((*p) + 1L) * sizeof(int) ) ;
+  polyy = MALLOC( ((*p)+1L) * sizeof(int) ) ;
+  locindex = MALLOC( (*q) * sizeof(int) ) ;
   if ( ( polyx == NULL) ||  ( polyy== NULL) || ( locindex== NULL) )
     {
       sciprint("plot3dg_ : malloc No more Place\n");
@@ -447,7 +450,13 @@ static void C2F(fac3dg)(char *name, int iflag, double *x, double *y, double *z,
          /* End of modified code by polpoth 4/5/2000 */
 
        }
-    } 
+    }
+
+  FREE( polyx ) ;
+  FREE( polyy ) ;
+  FREE( polyz ) ;
+  FREE( locindex ) ;
+
   if ( flag[2] >=3 )
     {
       integer fg;
@@ -575,8 +584,8 @@ int C2F(param3d)(double *x, double *y, double *z, integer *n, double *teta, doub
       if (flag[2] >=2 ) DrawAxis(xbox,ybox,InsideU,fg1);
     }
 
-  xm = graphic_alloc(0,(*n),sizeof(int));
-  ym = graphic_alloc(1,(*n),sizeof(int));
+  xm = MALLOC( (*n) * sizeof(int) ) ;
+  ym = MALLOC( (*n) * sizeof(int) ) ;
   if ( ( (xm == NULL) && *n != 0 ) || ((ym == NULL) && *n != 0)) 
     {
       sciprint("Param3d : malloc  No more Place\n");
@@ -606,6 +615,10 @@ int C2F(param3d)(double *x, double *y, double *z, integer *n, double *teta, doub
       init = j+1;
       if ( init >= (*n)) break;
     }
+
+  FREE( xm ) ;
+  FREE( ym ) ;
+
   if (flag[2] >=3 ) 
     {
       integer fg;
@@ -663,8 +676,8 @@ int C2F(param3d1)(double *x, double *y, double *z, integer *m, integer *n, integ
       if (flag[2] >=2 ) DrawAxis(xbox,ybox,InsideU,fg1);
     }
 
-  xm = graphic_alloc(0,(*m),sizeof(int));
-  ym = graphic_alloc(1,(*m),sizeof(int));
+  xm = MALLOC( (*m) * sizeof(int) ) ;
+  ym = MALLOC( (*m) * sizeof(int) ) ;
   if ( ( (xm == NULL) && *m != 0 ) || ((ym == NULL) && *m != 0)) 
     {
       sciprint("Param3d : malloc  No more Place\n");
@@ -699,6 +712,10 @@ int C2F(param3d1)(double *x, double *y, double *z, integer *m, integer *n, integ
          if ( init >= (*m)) break;
        }
     }
+
+  FREE( xm ) ;
+  FREE( ym ) ;
+
   if (flag[2] >=3 ) 
     {
       integer fg;
index 1583e45..81332a5 100644 (file)
@@ -138,9 +138,9 @@ void C2F (plot3dn) (sciPointObj * pobj, double *x, double *y, double *z,
   xx[0] = sciGetForeground (pobj);
 
   /** initialisation **/
-  polyx = graphic_alloc (0, 5 * (*q), sizeof (int));
-  polyy = graphic_alloc (1, 5 * (*q), sizeof (int));
-  fill = graphic_alloc (2, (*q), sizeof (int));
+  polyx = MALLOC( 5 * (*q) * sizeof(int) ) ;
+  polyy = MALLOC( 5 * (*q) * sizeof(int) );
+  fill = MALLOC( (*q) * sizeof(int) ) ;
   if ((polyx == NULL) || (polyy == NULL) || (fill == NULL))
     {
       sciprint ("plot3dg_ : malloc No more Place\n");
@@ -649,6 +649,9 @@ void C2F (plot3dn) (sciPointObj * pobj, double *x, double *y, double *z,
   xtmp = NULL;
   FREE (ytmp);
   ytmp = NULL;
+  FREE( polyx ) ;
+  FREE( polyy ) ;
+  FREE( fill ) ;
 }
 
 void C2F (fac3dn) (sciPointObj * pobj, double *x, double *y, double *z,
index 6d18298..0cea70e 100644 (file)
@@ -366,6 +366,7 @@ void fillarcs_1(char *fname, char *str, integer *v1, integer *fillvect, integer
   if (err ==  1) return;
   C2F(ellipse2d)(vects,xm,(n2=6*(*n),&n2),"f2i");
   C2F(dr)(fname,str,xm,fillvect,n,x6,x7,x8,PD0,dx2,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
 }
 
 /*-----------------------------------------------------------------------------
@@ -379,6 +380,7 @@ void drawarcs_1(char *fname, char *str, integer *v1, integer *style, integer *n,
   if (err ==  1) return;
   C2F(ellipse2d)(vects,xm,(n2=6*(*n),&n2),"f2i");
   C2F(dr)(fname,str,xm,style,n,x6,x7,x8,PD0,dx2,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
 }
 /*-----------------------------------------------------------------------------
  *  
@@ -391,6 +393,8 @@ void fillpolyline_1(char *fname, char *str, integer *n, integer *v1, integer *v2
   if (err ==  1) return;
   C2F(echelle2d)(vx,vy,xm,ym,n,&n2,"f2i",3L);
   C2F(dr)(fname,str,n,xm,ym,closeflag,x7,x8,PD0,PD0,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
+  FREE(ym) ;
 }
 
 /*-----------------------------------------------------------------------------
@@ -422,6 +426,8 @@ void drawarrows_1(char *fname, char *str, integer *style, integer *iflag, intege
   C2F(echelle2dl)(as,as,&ias,&ias1,&n1,&n1,"f2i"); 
   ias=10*ias;
   C2F(dr)(fname,str,xm,ym,n,&ias,style,iflag,PD0,PD0,PD0,dx4,lx0,lx1);
+  FREE(xm) ;
+  FREE(ym) ;
 }
 
 /*-----------------------------------------------------------------------------
@@ -540,6 +546,8 @@ void drawpolyline_1(char *fname, char *str, integer *n, integer *v1, integer *v2
   if (err ==  1) return;
   C2F(echelle2d)(vx,vy,xm,ym,n,&n2,"f2i",3L);
   C2F(dr)(fname,str,n,xm,ym,closeflag,x7,x8,PD0,PD0,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
+  FREE(ym) ;
 }
 
 /*-----------------------------------------------------------------------------
@@ -578,6 +586,7 @@ void fillpolylines_1(char *fname, char *str, integer *v1, integer *v2, integer *
 
   /* end of code modified by polpoth 11/7/2000 */
 
+
 }
 /*-----------------------------------------------------------------------------
  *  drawpolymark
@@ -589,7 +598,8 @@ void drawpolymark_1(char *fname, char *str, integer *n, integer *v1, integer *v2
   if (err ==  1) return;
   C2F(echelle2d)(vx,vy,xm,ym,n,&n2,"f2i",3L);
   C2F(dr)(fname,str,n,xm,ym,x6,x7,x8,PD0,PD0,dx3,dx4,lx0,lx1);
-
+  FREE(xm) ;
+  FREE(ym) ;
 }
 
 /*-----------------------------------------------------------------------------
@@ -603,6 +613,8 @@ void displaynumbers_1(char *fname, char *str, integer *v1, integer *v2, integer
   if (err ==  1) return;
   C2F(echelle2d)(x,y,xm,ym,n,&n2,"f2i",3L);
   C2F(dr)(fname,str,xm,ym,PI0,PI0,n,flag,z,alpha,PD0,PD0,lx0,lx1);
+  FREE(xm) ;
+  FREE(ym) ;
 }
 
 /*-----------------------------------------------------------------------------
@@ -616,6 +628,8 @@ void drawpolylines_1(char *fname, char *str, integer *v1, integer *v2, integer *
   if (err ==  1) return;
   C2F(echelle2d)(vx,vy,xm,ym,n,p,"f2i",3L);
   C2F(dr)(fname,str,xm,ym,drawvect,n,p,x8,PD0,PD0,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
+  FREE(ym) ;
 }
 /*-----------------------------------------------------------------------------
  *   drawrectangle
@@ -638,6 +652,7 @@ void drawrectangles_1(char *fname, char *str, integer *v1, integer *fillvect, in
   if (err ==  1) return;
   C2F(rect2d)(vects,xm,(n2=4*(*n),&n2),"f2i");
   C2F(dr)(fname,str,xm,fillvect,n,x6,x7,x8,PD0,dx2,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
 }
 /*-----------------------------------------------------------------------------
  *  drawsegments
@@ -649,6 +664,8 @@ void drawsegments_1(char *fname, char *str, integer *style, integer *iflag, inte
   if (err ==  1) return;
   C2F(echelle2d)(vx,vy,xm,ym,n,&n2,"f2i",3L);
   C2F(dr)(fname,str,xm,ym,n,style,iflag,x8,PD0,PD0,dx3,dx4,lx0,lx1);
+  FREE(xm) ;
+  FREE(ym) ;
 }
 /*-----------------------------------------------------------------------------
  *  displaystring
@@ -958,8 +975,8 @@ static void Myalloc(integer **xm, integer **ym, integer n, integer *err)
 {
   if ( n != 0) 
     {
-      *xm= graphic_alloc(6,n,sizeof(integer));
-      *ym= graphic_alloc(7,n,sizeof(integer));
+      *xm= MALLOC( n * sizeof(integer) ) ;
+      *ym= MALLOC( n * sizeof(integer) ) ;
       if ( *xm == 0 || *ym == 0 )
        {
          sciprint("malloc: Running out of memory\n");
@@ -972,7 +989,7 @@ static void Myalloc1(integer **xm, integer n, integer *err)
 {
   if ( n != 0) 
     {
-      if (( *xm= graphic_alloc(6,n,sizeof(integer)))  == 0  )
+      if (( *xm= MALLOC( n * sizeof(integer)))  == 0  )
        {
          sciprint("malloc: Running out of memory\n");
          *err=1;
index 2adafb4..2807503 100644 (file)
@@ -29,7 +29,7 @@ void loadGraphicModule( void )
 /*------------------------------------------------------------------------*/
 void closeGraphicModule( void )
 {
-  if ( !isGraphicModuleLoaded ) { return ;}
+  if ( !isGraphicModuleLoaded ) { return ; }
 
   /* destroy hashtables */
   destroyScilabGetHashTable() ;
index 4be9bb3..9b1af94 100644 (file)
@@ -6,6 +6,9 @@
 #include "WindowList.h"
 
 #include "MALLOC.h" /* MALLOC */
+
+void scig_savesg( int win_num, char * filename ) ;
+
 /*-----------------------------------------------------------------------------------*/
 extern HINSTANCE hdllInstance;
 /*-----------------------------------------------------------------------------------*/
@@ -496,6 +499,7 @@ void CloseGraphMacros (struct BCG *ScilabGC)
     if ( ScilabGC->lpmw.szMenuName != NULL )
     {
       FREE( ScilabGC->lpmw.szMenuName ) ;
+      ScilabGC->lpmw.szMenuName = NULL ;
     }
 }
 /*-----------------------------------------------------------------------------------*/