From: Jorge G. <cl...@us...> - 2007-12-07 02:01:14
|
Update of /cvsroot/easycalc/easycalc In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv26054 Modified Files: grprefs.c grprefs.h Log Message: added "axis" function Index: grprefs.h =================================================================== RCS file: /cvsroot/easycalc/easycalc/grprefs.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** grprefs.h 28 Dec 2006 03:16:17 -0000 1.14 --- grprefs.h 7 Dec 2007 02:01:06 -0000 1.15 *************** *** 81,83 **** --- 81,86 ---- extern TscrPrefs ScrPrefs; extern IndexedColorType graphColors[]; + + CError set_axis(Functype *func,CodeStack *stack) GRAPH; + #endif Index: grprefs.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/grprefs.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** grprefs.c 10 Aug 2007 18:54:06 -0000 1.28 --- grprefs.c 7 Dec 2007 02:01:06 -0000 1.29 *************** *** 622,623 **** --- 622,689 ---- return handled; } + + CError + set_axis(Functype *func,CodeStack *stack) + { + List *lst,*lst2; + float xscale,yscale; + int i; + CError err; + + if (func->paramcount > 2) + return c_badargcount; + else if (func->paramcount == 2) { + err = stack_get_val(stack,&lst2,list); + if (err) + return err; + if (lst2->size!=2){ + MemPtrFree(lst2); + return c_baddim; + } + if (lst2->item[0].imag!=0.0 || lst2->item[1].imag!=0.0){ + MemPtrFree(lst2); + return c_badarg; + } + xscale=lst2->item[0].real; + yscale=lst2->item[1].real; + MemPtrFree(lst2); + } + + err = stack_get_val(stack,&lst,list); + if (err) + return err; + + if (lst->size!=4){ + MemPtrFree(lst); + return c_baddim; + } + + for (i=0;i<4;i++) + if (lst->item[i].imag != 0.0){ + MemPtrFree(lst); + return c_badarg; + } + + if(lst->item[0].real>=lst->item[1].real || lst->item[2].real>=lst->item[3].real){ + MemPtrFree(lst); + return c_badarg; + } + + graphPrefs.xmin=lst->item[0].real; + graphPrefs.xmax=lst->item[1].real; + graphPrefs.ymin=lst->item[2].real; + graphPrefs.ymax=lst->item[3].real; + if (func->paramcount == 2) { + graphPrefs.xscale=xscale; + graphPrefs.yscale=yscale; + graphPrefs.grEnable[7] = true; + } + else + graphPrefs.grEnable[7] = false; + + + err = stack_add_val(stack,&lst,list); + MemPtrFree(lst); + + return err; + } \ No newline at end of file |
From: Jorge G. <cl...@us...> - 2007-12-16 12:25:04
|
Update of /cvsroot/easycalc/easycalc In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv7738/easycalc Modified Files: grprefs.c grprefs.h Log Message: added 'axis' function Index: grprefs.h =================================================================== RCS file: /cvsroot/easycalc/easycalc/grprefs.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** grprefs.h 28 Dec 2006 03:16:17 -0000 1.14 --- grprefs.h 16 Dec 2007 12:24:50 -0000 1.15 *************** *** 81,83 **** --- 81,86 ---- extern TscrPrefs ScrPrefs; extern IndexedColorType graphColors[]; + + CError set_axis(Functype *func,CodeStack *stack) GRAPH; + #endif Index: grprefs.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/grprefs.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** grprefs.c 10 Aug 2007 18:54:06 -0000 1.28 --- grprefs.c 16 Dec 2007 12:24:50 -0000 1.29 *************** *** 622,623 **** --- 622,691 ---- return handled; } + + CError + set_axis(Functype *func,CodeStack *stack) + { + List *lst,*lst2; + float xscale=graphPrefs.xscale; + float yscale=graphPrefs.yscale; + int i; + CError err; + + if (func->paramcount > 2) + return c_badargcount; + else if (func->paramcount == 2) { + err = stack_get_val(stack,&lst2,list); + if (err) + return err; + if (lst2->size!=2){ + MemPtrFree(lst2); + return c_baddim; + } + if (lst2->item[0].imag!=0.0 || lst2->item[1].imag!=0.0){ + MemPtrFree(lst2); + return c_badarg; + } + xscale=lst2->item[0].real; + yscale=lst2->item[1].real; + MemPtrFree(lst2); + if(xscale<=0.0 || yscale<=0.0) return c_badarg; + } + + err = stack_get_val(stack,&lst,list); + if (err) + return err; + + if (lst->size!=4){ + MemPtrFree(lst); + return c_baddim; + } + + for (i=0;i<4;i++) + if (lst->item[i].imag != 0.0){ + MemPtrFree(lst); + return c_badarg; + } + + if(lst->item[0].real>=lst->item[1].real || lst->item[2].real>=lst->item[3].real){ + MemPtrFree(lst); + return c_badarg; + } + + graphPrefs.xmin=lst->item[0].real; + graphPrefs.xmax=lst->item[1].real; + graphPrefs.ymin=lst->item[2].real; + graphPrefs.ymax=lst->item[3].real; + if (func->paramcount == 2) { + graphPrefs.xscale=xscale; + graphPrefs.yscale=yscale; + graphPrefs.grEnable[7] = true; + } + else + graphPrefs.grEnable[7] = false; + + + err = stack_add_val(stack,&lst,list); + MemPtrFree(lst); + + return err; + } \ No newline at end of file |