IUP

 view release on metacpan or  search on metacpan

lib/IUP/Internal/MglPlot.xs.inc  view on Meta::CPAN

                double * zpointers;
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		xcount = (SvROK(xlist) && SvTYPE(SvRV(xlist))==SVt_PVAV) ? (1+av_len((AV *)SvRV(xlist))) : 0;
		ycount = (SvROK(ylist) && SvTYPE(SvRV(ylist))==SVt_PVAV) ? (1+av_len((AV *)SvRV(ylist))) : 0;
		zcount = (SvROK(ylist) && SvTYPE(SvRV(zlist))==SVt_PVAV) ? (1+av_len((AV *)SvRV(zlist))) : 0;
		if (xcount>ycount) pcount = ycount; else pcount = xcount;
		if (pcount>zcount) pcount = zcount;
		if (pcount>0) {
		  xpointers = malloc( pcount*sizeof(double) );
		  ypointers = malloc( pcount*sizeof(double) );
		  zpointers = malloc( pcount*sizeof(double) );
		  for(i=0; i<pcount; i++) { 
		    xpointers[i] = mySV2FLT(*av_fetch((AV *)SvRV(xlist), i, 0));
		    ypointers[i] = mySV2FLT(*av_fetch((AV *)SvRV(ylist), i, 0));
		    zpointers[i] = mySV2FLT(*av_fetch((AV *)SvRV(zlist), i, 0));
		  }
		  IupMglPlotInsert3D(ih,ds_index,sample_index,xpointers,ypointers,zpointers,pcount);
		  free(xpointers);
		  free(ypointers);
		  free(zpointers);
		}
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotSet3D(Ihandle* ih, int ds_index, const double* x, const double* y, const double* z, int count);
void
_IupMglPlotSet3D(Ihandle* ih, int ds_index, SV* xlist, SV* ylist, SV* zlist)
	INIT:
		int pcount, xcount, ycount, zcount, i;
		double * xpointers;
		double * ypointers;
		double * zpointers;
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		xcount = (SvROK(xlist) && SvTYPE(SvRV(xlist))==SVt_PVAV) ? (1+av_len((AV *)SvRV(xlist))) : 0;
		ycount = (SvROK(ylist) && SvTYPE(SvRV(ylist))==SVt_PVAV) ? (1+av_len((AV *)SvRV(ylist))) : 0;
		zcount = (SvROK(ylist) && SvTYPE(SvRV(zlist))==SVt_PVAV) ? (1+av_len((AV *)SvRV(zlist))) : 0;
		if (xcount>ycount) pcount = ycount; else pcount = xcount;
		if (pcount>zcount) pcount = zcount;
		if (pcount>0) {
		  xpointers = malloc( pcount*sizeof(double) );
		  ypointers = malloc( pcount*sizeof(double) );
		  zpointers = malloc( pcount*sizeof(double) );
		  for(i=0; i<pcount; i++) { 
		    xpointers[i] = mySV2FLT(*av_fetch((AV *)SvRV(xlist), i, 0));
		    ypointers[i] = mySV2FLT(*av_fetch((AV *)SvRV(ylist), i, 0));
		    zpointers[i] = mySV2FLT(*av_fetch((AV *)SvRV(zlist), i, 0));
		  }
		  IupMglPlotSet3D(ih,ds_index,xpointers,ypointers,zpointers,pcount);
		  free(xpointers);
		  free(ypointers);
		  free(zpointers);
		}
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotTransform(Ihandle* ih, double x, double y, double z, int *ix, int *iy);
void
_IupMglPlotTransform(Ihandle* ih, double x, double y, double z)
	INIT:
		int ix, iy;
	PPCODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotTransform(ih,x,y,z,&ix,&iy);
		XPUSHs(sv_2mortal(newSViv(ix)));
		XPUSHs(sv_2mortal(newSViv(iy)));
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotTransformTo(Ihandle* ih, int ix, int iy, double *x, double *y, double *z);
void
_IupMglPlotTransformTo(Ihandle* ih, int ix, int iy)
	INIT:
		double x, y, z;
	PPCODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotTransformTo(ih,ix,iy,&x,&y,&z);
		XPUSHs(sv_2mortal(newSVnv(x)));
		XPUSHs(sv_2mortal(newSVnv(y)));
		XPUSHs(sv_2mortal(newSVnv(z)));
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotPaintTo(Ihandle *ih, const char* format, int w, int h, double dpi, void *data);
void
_IupMglPlotPaintTo(Ihandle* ih, char* format, int w, int h, double dpi, char *data)
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotPaintTo(ih,format,w,h,dpi,data); /* data == filename*/
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotDrawMark(Ihandle* ih, double x, double y, double z);
void
_IupMglPlotDrawMark(Ihandle* ih, double x, double y, double z)
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotDrawMark(ih,x,y,z);
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotDrawLine(Ihandle* ih, double x1, double y1, double z1, double x2, double y2, double z2);
void
_IupMglPlotDrawLine(Ihandle* ih, double x1, double y1, double z1, double x2, double y2, double z2)
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotDrawLine(ih,x1,y1,z1,x2,y2,z2);
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotDrawText(Ihandle* ih, const char* text, double x, double y, double z);
void
_IupMglPlotDrawText(Ihandle* ih, const char* text, double x, double y, double z)
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotDrawText(ih,text,x,y,z);
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotSetFormula(Ihandle* ih, int ds_index, const char* formulaX, const char* formulaY, const char* formulaZ, int count);
void
_IupMglPlotSetFormula(Ihandle* ih, int ds_index, int count, char* formulaX, char* formulaY, char* formulaZ)
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
		IupMglPlotSetFormula(ih,ds_index,formulaX,formulaY,formulaZ,count);
#endif

#### Original C function from <iup_mglplot.h> # void IupMglPlotLoadData(Ihandle* ih, int ds_index, const char* filename, int count_x, int count_y, int count_z);
void
_IupMglPlotLoadData(Ihandle* ih, int ds_index, char* filename, ...)
	INIT:
		int count_x, count_y, count_z;
	CODE:
#ifdef HAVELIB_IUP_MGLPLOT
                count_x = (items>3) ? myST2INT(3) : 0;
                count_y = (items>4) ? myST2INT(4) : 0;
                count_z = (items>5) ? myST2INT(5) : 0;
                IupMglPlotLoadData(ih,ds_index,filename,count_x,count_y,count_z);
#endif



( run in 0.814 second using v1.01-cache-2.11-cpan-5511b514fd6 )