[BACK]Return to plotf.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / plot

Diff for /OpenXM_contrib2/asir2000/plot/plotf.c between version 1.11 and 1.13

version 1.11, 2001/10/09 01:36:27 version 1.13, 2002/08/02 02:28:29
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/plot/plotf.c,v 1.10 2001/08/22 09:19:21 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/plot/plotf.c,v 1.12 2002/07/10 05:29:36 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 54 
Line 54 
   
 void Pifplot(), Pconplot(), Pplotover(), Pplot(), Parrayplot(), Pdrawcircle();  void Pifplot(), Pconplot(), Pplotover(), Pplot(), Parrayplot(), Pdrawcircle();
 void Pmemory_ifplot();  void Pmemory_ifplot();
 void Popen_canvas(), Pclear_canvas(), Pdraw_obj();  void Popen_canvas(), Pclear_canvas(), Pdraw_obj(), Pdraw_string();
 void Pox_rpc();  void Pox_rpc();
 void Pox_cmo_rpc();  void Pox_cmo_rpc();
   
Line 68  struct ftab plot_tab[] = {
Line 68  struct ftab plot_tab[] = {
         {"open_canvas",Popen_canvas,-3},          {"open_canvas",Popen_canvas,-3},
         {"clear_canvas",Pclear_canvas,2},          {"clear_canvas",Pclear_canvas,2},
         {"draw_obj",Pdraw_obj,-4},          {"draw_obj",Pdraw_obj,-4},
           {"draw_string",Pdraw_string,-5},
 /*  /*
         {"arrayplot",Parrayplot,2},          {"arrayplot",Parrayplot,2},
 */  */
         {0,0,0},          {0,0,0},
 };  };
   
 int current_s;  
   
 void Popen_canvas(NODE arg,Obj *rp)  void Popen_canvas(NODE arg,Obj *rp)
 {  {
         Q w300,s_id;          Q w300,s_id;
Line 106  void Popen_canvas(NODE arg,Obj *rp)
Line 105  void Popen_canvas(NODE arg,Obj *rp)
                 wname=name (STRING)]                  wname=name (STRING)]
         */          */
   
         if ( stream < 0 )          stream = validate_ox_plot_stream(stream);
                 stream = current_s;  
         else  
                 current_s = stream;  
         STOQ(stream,s_id);          STOQ(stream,s_id);
         if ( !geom ) {          if ( !geom ) {
                 STOQ(300,w300);                  STOQ(300,w300);
Line 120  void Popen_canvas(NODE arg,Obj *rp)
Line 116  void Popen_canvas(NODE arg,Obj *rp)
         Pox_cmo_rpc(arg,rp);          Pox_cmo_rpc(arg,rp);
 }  }
   
 void Pifplot(NODE arg,Obj *rp)  void Pifplot(NODE arg,Q *rp)
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
Line 132  void Pifplot(NODE arg,Obj *rp)
Line 128  void Pifplot(NODE arg,Obj *rp)
         P var;          P var;
         NODE n,n0;          NODE n,n0;
         STRING fname,wname;          STRING fname,wname;
           Obj t;
   
         STOQ(-2,m2); STOQ(2,p2);          STOQ(-2,m2); STOQ(2,p2);
         MKNODE(n,p2,0); MKNODE(defrange,m2,n);          MKNODE(n,p2,0); MKNODE(defrange,m2,n);
Line 212  void Pifplot(NODE arg,Obj *rp)
Line 209  void Pifplot(NODE arg,Obj *rp)
                 wname=name (STRING)]                  wname=name (STRING)]
         */          */
   
         if ( stream < 0 )          stream = validate_ox_plot_stream(stream);
                 stream = current_s;  
         else  
                 current_s = stream;  
         STOQ(stream,s_id);          STOQ(stream,s_id);
         if ( !geom ) {          if ( !geom ) {
                 STOQ(300,w300);                  STOQ(300,w300);
Line 223  void Pifplot(NODE arg,Obj *rp)
Line 217  void Pifplot(NODE arg,Obj *rp)
         }          }
         MKSTR(fname,"plot");          MKSTR(fname,"plot");
         arg = mknode(8,s_id,fname,poly,xrange,yrange,0,geom,wname);          arg = mknode(8,s_id,fname,poly,xrange,yrange,0,geom,wname);
         Pox_rpc(arg,rp);          Pox_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 void Pmemory_ifplot(NODE arg,Obj *rp)  void Pmemory_ifplot(NODE arg,Q *rp)
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
Line 238  void Pmemory_ifplot(NODE arg,Obj *rp)
Line 233  void Pmemory_ifplot(NODE arg,Obj *rp)
         P var;          P var;
         NODE n,n0;          NODE n,n0;
         STRING fname;          STRING fname;
           Obj t;
   
         STOQ(-2,m2); STOQ(2,p2);          STOQ(-2,m2); STOQ(2,p2);
         MKNODE(n,p2,0); MKNODE(defrange,m2,n);          MKNODE(n,p2,0); MKNODE(defrange,m2,n);
Line 315  void Pmemory_ifplot(NODE arg,Obj *rp)
Line 311  void Pmemory_ifplot(NODE arg,Obj *rp)
                 geom=[xsize,ysize] (LIST)]                  geom=[xsize,ysize] (LIST)]
         */          */
   
         if ( stream < 0 )          stream = validate_ox_plot_stream(stream);
                 stream = current_s;  
         else  
                 current_s = stream;  
         STOQ(stream,s_id);          STOQ(stream,s_id);
         if ( !geom ) {          if ( !geom ) {
                 STOQ(300,w300);                  STOQ(300,w300);
Line 326  void Pmemory_ifplot(NODE arg,Obj *rp)
Line 319  void Pmemory_ifplot(NODE arg,Obj *rp)
         }          }
         MKSTR(fname,"memory_plot");          MKSTR(fname,"memory_plot");
         arg = mknode(7,s_id,fname,poly,xrange,yrange,0,geom);          arg = mknode(7,s_id,fname,poly,xrange,yrange,0,geom);
         Pox_rpc(arg,rp);          Pox_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 void Pconplot(NODE arg,Obj *rp)  void Pconplot(NODE arg,Q *rp)
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
Line 341  void Pconplot(NODE arg,Obj *rp)
Line 335  void Pconplot(NODE arg,Obj *rp)
         P var;          P var;
         NODE n,n0;          NODE n,n0;
         STRING fname,wname;          STRING fname,wname;
           Obj t;
   
         STOQ(-2,m2); STOQ(2,p2);          STOQ(-2,m2); STOQ(2,p2);
         MKNODE(n,p2,0); MKNODE(defrange,m2,n);          MKNODE(n,p2,0); MKNODE(defrange,m2,n);
Line 422  void Pconplot(NODE arg,Obj *rp)
Line 417  void Pconplot(NODE arg,Obj *rp)
                 default:                  default:
                         error("ifplot : cannot happen"); break;                          error("ifplot : cannot happen"); break;
         }          }
         if ( stream < 0 )  
                 stream = current_s;  
         else  
                 current_s = stream;  
   
         /* conplot in ox_plot requires          /* conplot in ox_plot requires
            [s_id (Q),             [s_id (Q),
                 formula (Obj),                  formula (Obj),
Line 437  void Pconplot(NODE arg,Obj *rp)
Line 427  void Pconplot(NODE arg,Obj *rp)
                 wname=name (STRING)]                  wname=name (STRING)]
         */          */
   
         if ( stream < 0 )          stream = validate_ox_plot_stream(stream);
                 stream = current_s;  
         else  
                 current_s = stream;  
         STOQ(stream,s_id);          STOQ(stream,s_id);
         if ( !geom ) {          if ( !geom ) {
                 STOQ(300,w300);                  STOQ(300,w300);
Line 448  void Pconplot(NODE arg,Obj *rp)
Line 435  void Pconplot(NODE arg,Obj *rp)
         }          }
         MKSTR(fname,"plot");          MKSTR(fname,"plot");
         arg = mknode(8,s_id,fname,poly,xrange,yrange,zrange,geom,wname);          arg = mknode(8,s_id,fname,poly,xrange,yrange,zrange,geom,wname);
         Pox_rpc(arg,rp);          Pox_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 void Pplot(NODE arg,Obj *rp)  void Pplot(NODE arg,Q *rp)
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
Line 463  void Pplot(NODE arg,Obj *rp)
Line 451  void Pplot(NODE arg,Obj *rp)
         P var;          P var;
         NODE n,n0;          NODE n,n0;
         STRING fname,wname;          STRING fname,wname;
           Obj t;
   
         STOQ(-2,m2); STOQ(2,p2);          STOQ(-2,m2); STOQ(2,p2);
         MKNODE(n,p2,0); MKNODE(defrange,m2,n);          MKNODE(n,p2,0); MKNODE(defrange,m2,n);
Line 526  void Pplot(NODE arg,Obj *rp)
Line 515  void Pplot(NODE arg,Obj *rp)
                 geom=[xsize,ysize] (LIST),                  geom=[xsize,ysize] (LIST),
                 wname=name (STRING)]                  wname=name (STRING)]
         */          */
         if ( stream < 0 )          stream = validate_ox_plot_stream(stream);
                 stream = current_s;  
         else  
                 current_s = stream;  
         STOQ(stream,s_id);          STOQ(stream,s_id);
         if ( !geom ) {          if ( !geom ) {
                 STOQ(300,w300);                  STOQ(300,w300);
Line 537  void Pplot(NODE arg,Obj *rp)
Line 523  void Pplot(NODE arg,Obj *rp)
         }          }
         MKSTR(fname,"plot");          MKSTR(fname,"plot");
         arg = mknode(8,s_id,fname,poly,xrange,0,0,geom,wname);          arg = mknode(8,s_id,fname,poly,xrange,0,0,geom,wname);
         Pox_rpc(arg,rp);          Pox_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 void Pplotover(NODE arg,Obj *rp)  void Pplotover(NODE arg,Q *rp)
 {  {
         Q s_id,index;          Q s_id,index;
         P poly;          P poly;
         STRING fname;          STRING fname;
           Obj t;
   
         poly = (P)ARG0(arg);          poly = (P)ARG0(arg);
         s_id = (Q)ARG1(arg);          s_id = (Q)ARG1(arg);
         index = (Q)ARG2(arg);          index = (Q)ARG2(arg);
         MKSTR(fname,"plotover");          MKSTR(fname,"plotover");
         arg = mknode(4,s_id,fname,index,poly);          arg = mknode(4,s_id,fname,index,poly);
         Pox_rpc(arg,rp);          Pox_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 /* arg = [x,y,r,s_id,index] */  /* arg = [x,y,r,s_id,index] */
   
 void Pdrawcircle(NODE arg,Obj *rp)  void Pdrawcircle(NODE arg,Q *rp)
 {  {
         Q s_id,index;          Q s_id,index;
         Obj x,y,r;          Obj x,y,r;
         STRING fname;          STRING fname;
         NODE n;          NODE n;
         LIST pos;          LIST pos;
           Obj t;
   
         x = (Obj)ARG0(arg);          x = (Obj)ARG0(arg);
         y = (Obj)ARG1(arg);          y = (Obj)ARG1(arg);
Line 572  void Pdrawcircle(NODE arg,Obj *rp)
Line 562  void Pdrawcircle(NODE arg,Obj *rp)
         MKSTR(fname,"drawcircle");          MKSTR(fname,"drawcircle");
         n = mknode(3,x,y,r); MKLIST(pos,n);          n = mknode(3,x,y,r); MKLIST(pos,n);
         arg = mknode(4,s_id,fname,index,pos);          arg = mknode(4,s_id,fname,index,pos);
         Pox_rpc(arg,rp);          Pox_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 /* draw_obj(s_id,cindex,point|line); point = [x,y], line = [xa,ya,xb,yb] */  /* draw_obj(s_id,cindex,point|line); point = [x,y], line = [xa,ya,xb,yb] */
 void Pdraw_obj(NODE arg,Obj *rp)  void Pdraw_obj(NODE arg,Q *rp)
 {  {
         static STRING fname;          static STRING fname;
         Q s_id,index;          Q s_id,index;
         LIST obj;          LIST obj;
           Obj t;
   
         if ( !fname ) {          if ( !fname ) {
                 MKSTR(fname,"draw_obj");                  MKSTR(fname,"draw_obj");
Line 593  void Pdraw_obj(NODE arg,Obj *rp)
Line 585  void Pdraw_obj(NODE arg,Obj *rp)
                 arg = mknode(5,s_id,fname,index,obj,ARG3(arg));                  arg = mknode(5,s_id,fname,index,obj,ARG3(arg));
         else          else
                 arg = mknode(4,s_id,fname,index,obj);                  arg = mknode(4,s_id,fname,index,obj);
         Pox_cmo_rpc(arg,rp);          Pox_cmo_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 void Pclear_canvas(NODE arg,Obj *rp)  /* draw_string(s_id,cindex,pos,string,[,color]); pos=[x,y] */
   void Pdraw_string(NODE arg,Q *rp)
 {  {
         static STRING fname;          static STRING fname;
           STRING str;
         Q s_id,index;          Q s_id,index;
           LIST pos;
           Obj t;
   
         if ( !fname ) {          if ( !fname ) {
                   MKSTR(fname,"draw_string");
           }
           s_id = (Q)ARG0(arg);
           index = (Q)ARG1(arg);
           pos = (LIST)ARG2(arg);
           str = (STRING)ARG3(arg);
           /* ARG4(arg) = color */
           if ( argc(arg) == 5 )
                   arg = mknode(6,s_id,fname,index,pos,str,ARG4(arg));
           else
                   arg = mknode(5,s_id,fname,index,pos,str);
           Pox_cmo_rpc(arg,&t);
           *rp = s_id;
   }
   
   void Pclear_canvas(NODE arg,Q *rp)
   {
           static STRING fname;
           Q s_id,index;
           Obj t;
   
           if ( !fname ) {
                 MKSTR(fname,"clear_canvas");                  MKSTR(fname,"clear_canvas");
         }          }
         s_id = (Q)ARG0(arg);          s_id = (Q)ARG0(arg);
         index = (Q)ARG1(arg);          index = (Q)ARG1(arg);
         arg = mknode(3,s_id,fname,index);          arg = mknode(3,s_id,fname,index);
         Pox_cmo_rpc(arg,rp);          Pox_cmo_rpc(arg,&t);
           *rp = s_id;
 }  }
   
 #if 0  #if 0

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.13

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>