[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.12 and 1.14

version 1.12, 2002/10/02 01:30:08 version 1.14, 2004/03/11 12:25:20
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/lib/glib,v 1.11 2002/09/10 06:18:46 takayama Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/lib/glib,v 1.13 2004/03/11 05:16:11 takayama Exp $ */
 /* $Id$ */  /* $Id$ */
   
 /* BUG: this library has not yet been adapted to the new automatic launcher  /* BUG: this library has not yet been adapted to the new automatic launcher
Line 381  def glib_tops() {
Line 381  def glib_tops() {
   return glib_ps(Glib_h);    return glib_ps(Glib_h);
 }  }
 def glib_ps(L) {  def glib_ps(L) {
   PS = "";    PS = string_to_tb("");
   Prev_color = 0;    Prev_color = 0;
   /* Prolog */    /* Prolog */
   PS += "%%!PS-Adobe-1.0\n";    write_to_tb("%%!PS-Adobe-1.0\n",PS);
   PS += "%%BoundingBox: 0 0 " +    write_to_tb("%%BoundingBox: 0 0 " +
           rtostr(Glib_canvas_x) + " " + rtostr(Glib_canvas_y) + "\n";            rtostr(Glib_canvas_x) + " " + rtostr(Glib_canvas_y) + "\n",PS);
   PS += "%%Creator: This is generated by ifplot\n";    write_to_tb("%%Creator: This is generated by ifplot\n",PS);
   PS += "%%Title: ifplot\n";    write_to_tb("%%Title: ifplot\n",PS);
   PS += "%%EndComments: \n";    write_to_tb("%%EndComments: \n",PS);
   PS += "0.1 setlinewidth \n";    write_to_tb("0.1 setlinewidth \n",PS);
   PS += "2 setlinecap \n";    write_to_tb("2 setlinecap \n",PS);
   PS += "2 setlinejoin \n";    write_to_tb("2 setlinejoin \n",PS);
   PS += "/ifplot_putpixel {  \n";    write_to_tb("/ifplot_putpixel {  \n",PS);
   PS += "    /yyy 2 1 roll def /xxx 2 1 roll def \n";    write_to_tb("    /yyy 2 1 roll def /xxx 2 1 roll def \n",PS);
   PS += "    gsave newpath xxx yyy .5 0 360 arc \n";    write_to_tb("    gsave newpath xxx yyy .5 0 360 arc \n",PS);
   PS += "    fill grestore \n";    write_to_tb("    fill grestore \n",PS);
   PS += "} def \n";    write_to_tb("} def \n",PS);
   
   L = reverse(L);    L = reverse(L);
   N = length(L);    N = length(L);
Line 405  def glib_ps(L) {
Line 405  def glib_ps(L) {
     C = L[I];      C = L[I];
     if (C[length(C)-1] != Prev_color) {      if (C[length(C)-1] != Prev_color) {
       Prev_color = C[length(C)-1];        Prev_color = C[length(C)-1];
       PS += rtostr(deval(ishift(Prev_color,16)/256)) + " " +        write_to_tb(rtostr(deval(ishift(Prev_color,16)/256)) + " " +
             rtostr(deval(iand(ishift(Prev_color,8),0xff)/256)) + " " +              rtostr(deval(iand(ishift(Prev_color,8),0xff)/256)) + " " +
             rtostr(deval(iand(Prev_color,0xff)/256)) + " setrgbcolor \n";              rtostr(deval(iand(Prev_color,0xff)/256)) + " setrgbcolor \n",PS);
     }      }
     if (C[0] == "putpixel") {      if (C[0] == "putpixel") {
        PS += rtostr(C[1][0]) + " " + rtostr(C[1][1]) + " ifplot_putpixel \n";         write_to_tb(rtostr(C[1][0]) + " " + rtostr(C[1][1]) + " ifplot_putpixel \n",PS);
     }      }
     if (C[0] == "line") {      if (C[0] == "line") {
        PS += " newpath ";         write_to_tb(" newpath ",PS);
        PS += rtostr(C[1][0]) + " " + rtostr(C[1][1]) + " moveto " +         write_to_tb(rtostr(C[1][0]) + " " + rtostr(C[1][1]) + " moveto " +
              rtostr(C[1][2]) + " " + rtostr(C[1][3]) + " lineto stroke \n";               rtostr(C[1][2]) + " " + rtostr(C[1][3]) + " lineto stroke \n",PS);
     }      }
     if (C[0] == "print") {      if (C[0] == "print") {
        PS += "/Times-Roman findfont 10 scalefont setfont \n";         write_to_tb("/Times-Roman findfont 10 scalefont setfont \n",PS);
        PS += rtostr(C[1][0]) + " " + rtostr(C[1][1]) + " moveto ";         write_to_tb(rtostr(C[1][0]) + " " + rtostr(C[1][1]) + " moveto ",PS);
        PS += "(" + C[2] + ")  show \n";         write_to_tb("(" + C[2] + ")  show \n",PS);
     }      }
   }    }
   
   /* Epilog */    /* Epilog */
   PS += "0 0 0 setrgbcolor \n";    write_to_tb("0 0 0 setrgbcolor \n",PS);
   PS += "showpage \n";    write_to_tb("showpage \n",PS);
   
   return PS;    return tb_to_string(PS);
   }
   
   /*&usage begin: glib_ps_form(S)
     It returns the PS code generated by executing {S}
     (experimental).
     BUG. Only one function call is allowed as an argument.
     example: glib_ps_form(quote( glib_line(0,0,100,100) ));
     ref: glib_tops
   end: */
   def glib_ps_form(F) {
     extern Glib_h;
     extern Glib_ps;
     H = Glib_h; /* push Glib_h */
     P = Glib_ps; /* push Glib_ps */
   
     Glib_ps=1; Glib_h = [];
     eval_quote(F);
     /* bug. eval_str causes seg fault for ccurve.rr main(8) */
     R = glib_tops();
     Glib_h = H; /* pop Glib_h */
     Glib_ps = P; /* pop Glib_ps */
     return R;
 }  }
   
 /*&usage begin: glib_plot(F)  /*&usage begin: glib_plot(F)

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

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