[BACK]Return to glib CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / lib

Diff for /OpenXM_contrib2/asir2000/lib/glib between version 1.1 and 1.4

version 1.1, 2001/12/10 05:02:46 version 1.4, 2002/07/10 08:40:58
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM_contrib2/asir2000/lib/glib,v 1.3 2002/06/07 06:00:28 noro Exp $ */
 /* $Id$ */  /* $Id$ */
   
 /* Todo:  /* Todo:
Line 124  def glib_window(Xmin,Ymin,Xmax,Ymax) {
Line 124  def glib_window(Xmin,Ymin,Xmax,Ymax) {
          Glib_xoffset, Glib_yoffset, Glib_xmag, Glib_ymag;           Glib_xoffset, Glib_yoffset, Glib_xmag, Glib_ymag;
   if (Xmax <= Xmin) error("glib window: Invalid size");    if (Xmax <= Xmin) error("glib window: Invalid size");
   if (Ymax <= Ymin) error("glib window: Invalid size");    if (Ymax <= Ymin) error("glib window: Invalid size");
     glib_check_arg(Xmin,Ymin); glib_check_arg(Xmax,Ymax);
   Glib_xmin = Xmin;  Glib_xmax = Xmax;    Glib_xmin = Xmin;  Glib_xmax = Xmax;
   Glib_ymin = Ymin;  Glib_ymax = Ymax;    Glib_ymin = Ymin;  Glib_ymax = Ymax;
   Glib_xoffset = -Xmin;    Glib_xoffset = -Xmin;
Line 133  def glib_window(Xmin,Ymin,Xmax,Ymax) {
Line 134  def glib_window(Xmin,Ymin,Xmax,Ymax) {
   if (Glib_canvas < 0) glib_open();    if (Glib_canvas < 0) glib_open();
 }  }
   
   def glib_check_arg(X,Y) {
     if (type(X) <= 1 && type(Y) <= 1) return 1;
     else {
       print("Error in glib: arguments ",0);
       print([X,Y],0);
       print(" are not numbers.");
       error("Invalid argument for glib_window, glib_putpixel, glib_line.");
     }
   }
   
 def glib_putpixel(X,Y) {  def glib_putpixel(X,Y) {
   extern Glib_process, Glib_canvas,    extern Glib_process, Glib_canvas,
          Glib_xoffset, Glib_yoffset, Glib_xmag, Glib_ymag;           Glib_xoffset, Glib_yoffset, Glib_xmag, Glib_ymag;
   if (Glib_canvas < 0) glib_open();    if (Glib_canvas < 0) glib_open();
   glib_check();    glib_check();
   draw_obj(Glib_process,Glib_canvas,    glib_check_arg(X,Y);
     C = getopt(color);
     if ( type(C) != -1 )
       draw_obj(Glib_process,Glib_canvas,
            [floor(Glib_xmag*(X+Glib_xoffset)),             [floor(Glib_xmag*(X+Glib_xoffset)),
               floor(Glib_ymag*(Y+Glib_yoffset))],C);
     else
       draw_obj(Glib_process,Glib_canvas,
              [floor(Glib_xmag*(X+Glib_xoffset)),
             floor(Glib_ymag*(Y+Glib_yoffset))]);              floor(Glib_ymag*(Y+Glib_yoffset))]);
 }  }
   
 def glib_line(X0,Y0,X1,Y1) {  def glib_line(X0,Y0,X1,Y1) {
   extern Glib_xmag, Glib_ymag, Glib_xoffset, Glib_yoffset;    extern Glib_xmag, Glib_ymag, Glib_xoffset, Glib_yoffset;
     C = getopt(color);
     glib_check_arg(X0,Y0);
     glib_check_arg(X1,Y1);
   glib_clip_line(floor(Glib_xmag*(X0+Glib_xoffset)),    glib_clip_line(floor(Glib_xmag*(X0+Glib_xoffset)),
                  floor(Glib_ymag*(Y0+Glib_yoffset)),                   floor(Glib_ymag*(Y0+Glib_yoffset)),
                  floor(Glib_xmag*(X1+Glib_xoffset)),                   floor(Glib_xmag*(X1+Glib_xoffset)),
                  floor(Glib_ymag*(Y1+Glib_yoffset)));                   floor(Glib_ymag*(Y1+Glib_yoffset)),C);
 }  }
   
 def glib_clip_line(X0,Y0,X1,Y1) {  def glib_clip_line(X0,Y0,X1,Y1,Color) {
   /* X0, Y0, X1, Y1 should be integers.    /* X0, Y0, X1, Y1 should be integers.
      Coordinates are already translated. */       Coordinates are already translated. */
   extern Glib_process, Glib_canvas, Glib_canvas_x, Glib_canvas_y;    extern Glib_process, Glib_canvas, Glib_canvas_x, Glib_canvas_y;
Line 195  def glib_clip_line(X0,Y0,X1,Y1) {
Line 216  def glib_clip_line(X0,Y0,X1,Y1) {
 #endif  #endif
 #endif  #endif
   glib_check();    glib_check();
   draw_obj(Glib_process,Glib_canvas,    if ( type(Color) != -1 )
       draw_obj(Glib_process,Glib_canvas,
              [floor(X0),floor(Y0),floor(X1),floor(Y1)],Color);
     else
       draw_obj(Glib_process,Glib_canvas,
            [floor(X0),floor(Y0),floor(X1),floor(Y1)]);             [floor(X0),floor(Y0),floor(X1),floor(Y1)]);
   
 }  }
   
 def glib_clip0_x(X0,Y0,X1,Y1,Clip) {  def glib_clip0_x(X0,Y0,X1,Y1,Clip) {
Line 239  def glib_clip1_y(X0,Y0,X1,Y1,Clip) {
Line 263  def glib_clip1_y(X0,Y0,X1,Y1,Clip) {
      return([X0,Y0,X1+(Clip-Y1)*(X0-X1)/(Y0-Y1),Clip]);       return([X0,Y0,X1+(Clip-Y1)*(X0-X1)/(Y0-Y1),Clip]);
    }     }
    return([X0,Y0,X1,Y1]);     return([X0,Y0,X1,Y1]);
   }
   
   /*&usage begin:glib_print(X,Y,Text|color)
     It put a string {Text} at [{X},{Y}] on the glib canvas.
     example: glib_print(100,100,"Hello Worlds" | color=0xff0000);
   end: */
   def glib_print(X,Y,Text) {
     extern Glib_process, Glib_canvas,
            Glib_xoffset, Glib_yoffset, Glib_xmag, Glib_ymag;
     if (Glib_canvas < 0) glib_open();
     glib_check();
     glib_check_arg(X,Y);
     if (type(Text) != 7) error("glib_print(X,Y,Text): Text must be a string.");
     C = getopt(color);
     if ( type(C) != -1 )
       draw_string(Glib_process,Glib_canvas,
                   [X,Y],Text,C);
     else
       draw_string(Glib_process,Glib_canvas,
                   [X,Y],Text);
 }  }
 end$  end$
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

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