=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/glib,v retrieving revision 1.18 retrieving revision 1.20 diff -u -p -r1.18 -r1.20 --- OpenXM_contrib2/asir2000/lib/glib 2006/03/08 04:58:15 1.18 +++ OpenXM_contrib2/asir2000/lib/glib 2008/08/07 06:00:34 1.20 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM_contrib2/asir2000/lib/glib,v 1.17 2006/03/03 10:36:18 takayama Exp $ */ +/* $OpenXM: OpenXM_contrib2/asir2000/lib/glib,v 1.19 2006/03/08 07:59:15 takayama Exp $ */ /* BUG: this library has not yet been adapted to the new automatic launcher of ox_plot. 2002, Aug, 4. Do not load glib more than twice. @@ -157,10 +157,14 @@ def glib_check_strict() { } } +/*&usage begin: glib_clear() + Clear the screen. +end: */ def glib_clear() { extern Glib_process, Glib_canvas; if (Glib_canvas < 0) glib_open(); if (!Cfep_loaded) clear_canvas(Glib_process,Glib_canvas); + else cfep.glib_clear(); } /*&usage begin: glib_window(Xmin,Ymin,Xmax,Ymax) @@ -231,9 +235,10 @@ def glib_putpixel(X,Y) { } } -/*&usage begin: glib_line(X0,Y0,X1,Y1|color) - It draws the line [{X0},{Y0}]-- [{X1},{Y1}] with {color} +/*&usage begin: glib_line(X0,Y0,X1,Y1|color,shape) + It draws the line [{X0},{Y0}]-- [{X1},{Y1}] with {color} and {shape} example: glib_line(0,0,5,3/2 | color=0xff00ff); + glib_line(0,0,10,0 | shape=arrow); end: */ def glib_line(X0,Y0,X1,Y1) { extern Glib_xmag, Glib_ymag, Glib_xoffset, Glib_yoffset; @@ -244,6 +249,16 @@ def glib_line(X0,Y0,X1,Y1) { glib_floor(Glib_ymag*(Y0+Glib_yoffset)), glib_floor(Glib_xmag*(X1+Glib_xoffset)), glib_floor(Glib_ymag*(Y1+Glib_yoffset)),C); + Shape = getopt(shape); + if (type(Shape) != 2) return; + Px = X0+(7/8)*(X1-X0); + Py = Y0+(7/8)*(Y1-Y0); + Qx = (Y0-Y1)/8; + Qy = (X1-X0)/8; + if (type(C)>0) glib_line(X1,Y1,Px+Qx,Py+Qy | color=C); + else glib_line(X1,Y1,Px+Qx,Py+Qy); + if (type(C)>0) glib_line(X1,Y1,Px-Qx,Py-Qy | color=C); + else glib_line(X1,Y1,Px-Qx,Py-Qy); } def glib_clip_line(X0,Y0,X1,Y1,Color) { @@ -523,16 +538,7 @@ def glib_set_pixel_size(X) { if (!Cfep_loaded) /*Not implemented.*/ ; else cfep.glib_set_pixel_size(X); } -/*&usage begin: glib_clear() - Clear the screen. - (cfep only). -end: */ -def glib_clear() { - extern Glib_canvas; - if (Glib_canvas < 0) glib_open(); - if (!Cfep_loaded) /*Not implemented.*/ ; - else cfep.glib_clear(); -} + /*&usage begin: glib_remove_last() Remove the last object. glib_flush() should also be called to remove the last object.