[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.10 and 1.12

version 1.10, 2001/08/22 09:19:21 version 1.12, 2002/07/10 05:29:36
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.9 2001/06/04 02:49:49 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/plot/plotf.c,v 1.11 2001/10/09 01:36:27 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_cmo_rpc();
   
 struct ftab plot_tab[] = {  struct ftab plot_tab[] = {
         {"ifplot",Pifplot,-7},          {"ifplot",Pifplot,-7},
Line 66  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},
 */  */
Line 74  struct ftab plot_tab[] = {
Line 77  struct ftab plot_tab[] = {
   
 int current_s;  int current_s;
   
 void Popen_canvas(arg,rp)  void Popen_canvas(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q w300,s_id;          Q w300,s_id;
         LIST geom;          LIST geom;
         int stream,id,i;          int stream;
         NODE n,n0;          NODE n,n0;
         STRING fname,wname;          STRING fname,wname;
   
Line 120  Obj *rp;
Line 121  Obj *rp;
         Pox_cmo_rpc(arg,rp);          Pox_cmo_rpc(arg,rp);
 }  }
   
 void Pifplot(arg,rp)  void Pifplot(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
         LIST xrange,yrange,range[2],list,geom;          LIST xrange,yrange,range[2],list,geom;
         VL vl,vl0;          VL vl,vl0;
         V v[2],av[2];          V v[2],av[2];
         int stream,ri,id,i;          int stream,ri,i;
         P poly;          P poly;
         P var;          P var;
         NODE n,n0;          NODE n,n0;
Line 145  Obj *rp;
Line 144  Obj *rp;
                 switch ( OID(BDY(arg)) ) {                  switch ( OID(BDY(arg)) ) {
                         case O_P:                          case O_P:
                                 poly = (P)BDY(arg);                                  poly = (P)BDY(arg);
                                 get_vars_recursive(poly,&vl);                                  get_vars_recursive((Obj)poly,&vl);
                                 for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )                                  for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )
                                         if ( vl0->v->attr == V_IND )                                          if ( vl0->v->attr == (pointer)V_IND )
                                                 if ( i >= 2 )                                                  if ( i >= 2 )
                                                         error("ifplot : invalid argument");                                                          error("ifplot : invalid argument");
                                                 else                                                  else
Line 228  Obj *rp;
Line 227  Obj *rp;
         Pox_rpc(arg,rp);          Pox_rpc(arg,rp);
 }  }
   
 void Pmemory_ifplot(arg,rp)  void Pmemory_ifplot(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
         LIST xrange,yrange,range[2],list,geom;          LIST xrange,yrange,range[2],list,geom;
         VL vl,vl0;          VL vl,vl0;
         V v[2],av[2];          V v[2],av[2];
         int stream,ri,id,i;          int stream,ri,i;
         P poly;          P poly;
         P var;          P var;
         NODE n,n0;          NODE n,n0;
         STRING fname,wname;          STRING fname;
   
         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 253  Obj *rp;
Line 250  Obj *rp;
                 switch ( OID(BDY(arg)) ) {                  switch ( OID(BDY(arg)) ) {
                         case O_P:                          case O_P:
                                 poly = (P)BDY(arg);                                  poly = (P)BDY(arg);
                                 get_vars_recursive(poly,&vl);                                  get_vars_recursive((Obj)poly,&vl);
                                 for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )                                  for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )
                                         if ( vl0->v->attr == V_IND )                                          if ( vl0->v->attr == (pointer)V_IND )
                                                 if ( i >= 2 )                                                  if ( i >= 2 )
                                                         error("ifplot : invalid argument");                                                          error("ifplot : invalid argument");
                                                 else                                                  else
Line 333  Obj *rp;
Line 330  Obj *rp;
         Pox_rpc(arg,rp);          Pox_rpc(arg,rp);
 }  }
   
 void Pconplot(arg,rp)  void Pconplot(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
         LIST xrange,yrange,zrange,range[3],list,geom;          LIST xrange,yrange,zrange,range[3],list,geom;
         VL vl,vl0;          VL vl,vl0;
         V v[2],av[2];          V v[2],av[2];
         int stream,ri,id,i;          int stream,ri,i;
         P poly;          P poly;
         P var;          P var;
         NODE n,n0;          NODE n,n0;
Line 358  Obj *rp;
Line 353  Obj *rp;
                 switch ( OID(BDY(arg)) ) {                  switch ( OID(BDY(arg)) ) {
                         case O_P:                          case O_P:
                                 poly = (P)BDY(arg);                                  poly = (P)BDY(arg);
                                 get_vars_recursive(poly,&vl);                                  get_vars_recursive((Obj)poly,&vl);
                                 for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )                                  for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )
                                         if ( vl0->v->attr == V_IND )                                          if ( vl0->v->attr == (pointer)V_IND )
                                                 if ( i >= 2 )                                                  if ( i >= 2 )
                                                         error("ifplot : invalid argument");                                                          error("ifplot : invalid argument");
                                                 else                                                  else
Line 457  Obj *rp;
Line 452  Obj *rp;
         Pox_rpc(arg,rp);          Pox_rpc(arg,rp);
 }  }
   
 void Pplot(arg,rp)  void Pplot(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q m2,p2,w300,s_id;          Q m2,p2,w300,s_id;
         NODE defrange;          NODE defrange;
         LIST xrange,range[1],list,geom;          LIST xrange,range[1],list,geom;
         VL vl,vl0;          VL vl,vl0;
         V v[1],av[1];          V v[1],av[1];
         int stream,ri,id,i;          int stream,ri,i;
         P poly;          P poly;
         P var;          P var;
         NODE n,n0;          NODE n,n0;
Line 482  Obj *rp;
Line 475  Obj *rp;
                 switch ( OID(BDY(arg)) ) {                  switch ( OID(BDY(arg)) ) {
                         case O_P: case O_R:                          case O_P: case O_R:
                                 poly = (P)BDY(arg);                                  poly = (P)BDY(arg);
                                 get_vars_recursive(poly,&vl);                                  get_vars_recursive((Obj)poly,&vl);
                                 for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )                                  for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) )
                                         if ( vl0->v->attr == V_IND )                                          if ( vl0->v->attr == (pointer)V_IND )
                                                 if ( i >= 1 )                                                  if ( i >= 1 )
                                                         error("ifplot : invalid argument");                                                          error("ifplot : invalid argument");
                                                 else                                                  else
Line 548  Obj *rp;
Line 541  Obj *rp;
         Pox_rpc(arg,rp);          Pox_rpc(arg,rp);
 }  }
   
 void Pplotover(arg,rp)  void Pplotover(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q s_id,index;          Q s_id,index;
         P poly;          P poly;
Line 566  Obj *rp;
Line 557  Obj *rp;
   
 /* arg = [x,y,r,s_id,index] */  /* arg = [x,y,r,s_id,index] */
   
 void Pdrawcircle(arg,rp)  void Pdrawcircle(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         Q s_id,index;          Q s_id,index;
         Obj x,y,r;          Obj x,y,r;
Line 588  Obj *rp;
Line 577  Obj *rp;
 }  }
   
 /* 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(arg,rp)  void Pdraw_obj(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         static STRING fname;          static STRING fname;
         Q s_id,index;          Q s_id,index;
Line 610  Obj *rp;
Line 597  Obj *rp;
         Pox_cmo_rpc(arg,rp);          Pox_cmo_rpc(arg,rp);
 }  }
   
 void Pclear_canvas(arg,rp)  /* draw_string(s_id,cindex,pos,string,[,color]); pos=[x,y] */
 NODE arg;  void Pdraw_string(NODE arg,Obj *rp)
 Obj *rp;  
 {  {
         static STRING fname;          static STRING fname;
           STRING str;
         Q s_id,index;          Q s_id,index;
         LIST obj;          LIST pos;
   
         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,rp);
   }
   
   void Pclear_canvas(NODE arg,Obj *rp)
   {
           static STRING fname;
           Q s_id,index;
   
           if ( !fname ) {
                 MKSTR(fname,"clear_canvas");                  MKSTR(fname,"clear_canvas");
         }          }
         s_id = (Q)ARG0(arg);          s_id = (Q)ARG0(arg);
Line 628  Obj *rp;
Line 635  Obj *rp;
 }  }
   
 #if 0  #if 0
 void Parrayplot(arg,rp)  void Parrayplot(NODE arg,Obj *rp)
 NODE arg;  
 Obj *rp;  
 {  {
         int s;          int s;
         int id;          int id;

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.12

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