=head1 NAME B - Lua wrapper for the DISLIN plotting & widgets library (ldislin) =head1 OVERVIEW B provides a Lua interface for the DISLIN plotting & widgets library available from the Max Planck Institute for Solar System Research: L B has examples & over 500 functions for scientific plots, business graphs, and widget based GUIs. DISLIN is free for non-commercial use. See the DISLIN site for details. This version of B was developed and tested with DISLIN 9.1. =head1 DOWNLOAD B wrapper source code can be downloaded from its LuaForge (L) page. =head1 INSTALLATION A I is provided. You will need to obtain DISLIN from its site L, and modify the Makefile to indicate where it is installed on your system. The file I is included, and was used to generate much of the C source code for the wrapper. For a new version of DISLIN you may wish to run I again, and merge the generated code into I. =head1 USAGE There are several examples in the I directory. It is instructive to compare these examples to the Python examples from the DISLIN site at L. Here is a complete program to create a bar chart: require "ldislin" dislin.metafl "XWIN" dislin.disini () dislin.qplbar ({0.5,1,2,4,8,16,8,4,2,1,0.5}, 11) Note that B may only be used in a single threaded manner. This is a limitation of DISLIN in the context of Lua coroutines. The functions L|/dislin.thrini> and L|/dislin.thrfin> may be used to support multiple Lua interpreters in separate OS threads using B simultaneously, but this has not be tested. =head1 REFERENCE All of the functions provided are thin wrappers over the DISLIN functions. Characters and strings are provided to and returned from the library functions as Lua strings, integers and floats as Lua numbers, arrays and matrices as Lua tables, and functions as Lua functions. Only a few things complicate matters: =over 4 =item * Functions that return values using C reference arguments =item * Functions that return (out, or in/out) arrays =item * Functions that modify strings =item * Functions that take function arguments =back In general, B returns values in this order: the value returned by the function, if any, followed by any values returned by reference in the order of the corresponding C reference arguments. If a C reference argument is in/out, then the value must be supplied by the caller of the Lua wrapper. Otherwise, the library will construct a table to return the result array. Note that functions that take in/out array parameters always return new tables, and never modify their table arguments. The function reference is divided into sections for: =over 4 =item * Functions With Special Handling =item * Functions Returning Multiple Scalars =item * Functions With No Special Handling =back The documentation for the Functions With No Special Handling is generated from the DISLIN C header file directly. Please refer to the DISLIN documentation at L for a complete description of the functions' operation. =head1 Functions With Special Handling =head2 C There is one userdata type created and used by B; this is the C. A C is created with L|/dislin.legini> and used by L|/dislin.piegrf> L|/dislin.legend> L|/dislin.leglin> L|/dislin.nxlegn> and L|/dislin.nylegn> When translating DISLIN examples from other languages such as Python, typically you would replace sequences such as: cbuf = ' ' dislin.legini (cbuf, n, w) with cbuf = dislin.legini (n, w) and then use C as the modifiable string buffer argument to the functions using this C. =head2 C dislin.bars (xray, y1ray, y2ray, n [, ret]) Normally there are no return values from C. However, bars can return values calculated by DISLIN if a special option is set with C. So, the optional argument C, if true, will cause the calculated arrays, C, C, C to be returned from C. =head2 C dislin.bezier (xray, yray, n, np) Returns arrays C and C. =head2 C dislin.colray (zray, n) Returns integer array C. =head2 C dislin.conpts (xray, n, yray, m, zmat, zlev, maxpts, maxray) Returns C, C, C. =head2 C dislin.getlab () Returns three strings, C, C, C. =head2 C dislin.getmat (xray, yray, zray, n, nx, ny, zval [, ret]) Returns C. If C is true, also returns C. =head2 C dislin.gwgfil (id) Returns C. =head2 C dislin.gwgtxt (id) Returns C. =head2 C dislin.histog (xray, n) Returns C, C, and C. =head2 C dislin.legend (cbuf, ncor) cbuf:legend (ncor) Note that the cbuf argument is a L|/legend_buffer>. =head2 C dislin.legini (nlin, nmaxln) Returns a newly created L|/legend_buffer> C. =head2 C dislin.leglin (cbuf, cstr, ilin) cbuf:leglin (cstr, ilin) Note that the cbuf argument is a L|/legend_buffer>. =head2 C dislin.nxlegn (cbuf) cbuf:nxlegn () Returns integer C. Note that the cbuf argument is a L|/legend_buffer>. =head2 C dislin.nylegn (cbuf) cbuf:nylegn () Returns integer C. Note that the cbuf argument is a L|/legend_buffer>. =head2 C dislin.pdfbuf (nmax) Returns string C and integer C the actual buffer size. If C is C then C is the required size > C. =head2 C dislin.piegrf (cbuf, nlin, xray, nseg) cbuf:piegrf (nlin, xray, nseg) Note that the cbuf argument is a L|/legend_buffer>. =head2 C dislin.rbfpng (nmax) Returns string C and integer C the actual buffer size. If C is C then C is the required size > C. =head2 C dislin.setcbk (fun, copt) Note that C is a Lua function. =head2 C dislin.sortr1 (xray, n, copt) Returns C (truncated to length C) sorted as specified. =head2 C dislin.sortr2 (xray, yray, n, copt) Returns C and C (both truncated to length C) sorted as specified. =head2 C dislin.spline (xray, yray, n) Returns C and C. =head2 C dislin.surfcp (fun, amin, amax, astp, bmin, bmax, bstp) Note that C is a Lua function. =head2 C dislin.surfun (fun, ixpts, xdel, iypts, ydel) Note that C is a Lua function. =head2 C dislin.swgcbk (id, fun) Note that C is a Lua function. =head2 C dislin.trfco1 (xray, n, cfrom, cto) Returns C (truncated to length C) converted as specified. =head2 C dislin.trfco2 (xray, yray, n, cfrom, cto) Returns C and C (both truncated to length C) converted as specified. =head2 C dislin.trfco3 (xray, yray, zray, n, cfrom, cto) Returns C C and C (all truncated to length C) converted as specified. =head2 C dislin.trfmat (zmat, nx, ny, nx2, ny2) Returns C converted by bilinear interpolation. =head2 C dislin.trfrel (xray, yray, n) Returns C and C (both truncated to length C) converted to plot coordinates. =head2 C dislin.triang (xray, yray, n) Returns C, C, C, and integer C, the number of triangles. =head2 C dislin.tripts (xray, yray, zray, n, i1ray, i2ray, i3ray, ntri, zlev, maxpts, maxray) Returns C, C, C. =head2 C dislin.unit (zero) The argument to C must be zero; this function is provided for (literal translation of) legacy code where C is used as an idiom to suppress error messages. New code should use the newer routines L|/dislin.errmod> L|/dislin.errdev> and L|/dislin.errfil> =head1 Functions Returning Multiple Scalars =head2 C dislin.abs3pt (x, y, z) Returns the absolute 3-D argument point converted to plot coordinates, C, C. =head2 C dislin.circ3p (x1, y1, x2, y2, x3, y3) Calculates a circle specified by three points. Returns C, C, C which are the location of the center of the circle and the circle's radius. =head2 C dislin.csrpt1 () Returns C, C, the position of the cursor when the mouse button 1 is pressed. =head2 C dislin.getclp () Returns the upper left corner and the size of the current clipping window, C, C, C, C. See L|/dislin.clpwin>. =head2 C dislin.getdig () Returns the number of decimal places that are displayed in axis labels, C, C, C. See L|/dislin.labdig>. =head2 C dislin.getgrf (cax) Returns the current scaling of an axis system for axis C, 'X', 'Y', or 'Z'. The returned values are C, C, C, C, which are the lower and upper limits of the axis, the first axis label, and the step between labels. =head2 C dislin.getlen () Returns the length of the X-, Y- and Z-axes, C, C, C. See L|/dislin.axslen>, L|/dislin.axlen>. =head2 C dislin.getor () Returns the coordinates of the origin, C, C. See L|/dislin.origin>. =head2 C dislin.getpag () Returns the page size, C, C. See L|/dislin.setpag>, L|/dislin.page>. =head2 C dislin.getpos () Returns the position of the lower left corner of an axis system in plot coordinates, C, C. See L|/dislin.axspos>. =head2 C dislin.getran () Returns the color range of color bars, C, C. See L|/dislin.colran>. =head2 C dislin.getres () Returns the width and height of rectangles plotted in 3-D colour graphics, C, C. See L|/dislin.setres>, L|/dislin.autres>. =head2 C dislin.getrgb () Returns the RGB coordinates of the current color, C, C, C. =head2 C dislin.getscl () Returns the type of axis scaling used for each axis: C, C<, C<. For linear scaling, the value 0 is returned and for logarithmic scaling, the value 1 is returned. See L|/dislin.axsscl>. =head2 C dislin.getscr () Returns the width and height of the screen in pixels, C, C. =head2 C dislin.getsp1 () Returns the distance between axis ticks and labels, C, C, C. See L|/dislin.labdis>. =head2 C dislin.getsp2 () Returns the distance between axis labels and names, C, C, C. See L|/dislin.namdis>. =head2 C dislin.getsym () Returns the current symbol number and height of symbols, C, C. =head2 C dislin.gettcl () Returns tick lengths, C, C. =head2 C dislin.gettic () Returns the number of ticks that are plotted between axis labels, C, C, C. See L|/dislin.ticks>. =head2 C dislin.getvk () Returns the lengths used for shifting titles and color bars, C, C, C. See L|/dislin.vkytit>, L|/dislin.vkxbar>, L|/dislin.vkybar>. =head2 C dislin.getwin () Returns the upper left corner and the size of the graphics window, C, C, C, C. See L|/dislin.window>, L|/dislin.winsiz>. =head2 C dislin.gmxalf (calph) Returns shift characters used for shifting between the base and an alternate alphabet for the alphabet C: C, C, C, where C is the returned index of the alphabet between 0 and 6. If C, no shift characters are defined for the alphabet C. C and C are character strings that contain the returned shift characters. See L|/dislin.smxalf>. =head2 C dislin.hsvrgb (xh, xs, xv) Returns C, C, C, RGB values in the range 0 to 1 corresponding to the HSV argument. =head2 C dislin.pos2pt (xlong, ylat) Returns plot coordinates C, C, corresponding to map (longitude and latitude) coordinate argument. =head2 C dislin.pos3pt (x, y, z) Returns the absolute 3-D coordinates, C, C, C, converted from user coordinates. =head2 C dislin.rel3pt (x, y, z) Returns the plot coordinates, C, C, converted from user coordinates. =head2 C dislin.rgbhsv (xr, xg, xb) Returns C, C, C, HSV values corresponding to the RGB argument. =head2 C dislin.rpixel (ix, iy) Returns the value of one pixel C from memory at the specified position in screen coordinates. C is the returned color value of the pixel. If the parameter ’RGB’ had been used with the routine dislin.imgmod, C is an explicit RGB value, otherwise an entry of the color table. =head2 C dislin.trfdat (n) Returns the date, C, C, C, occuring C days after the base date. See L|/dislin.basdat>. =head1 Functions With No Special Handling =head2 C dislin.addlab (cstr, v, itic, cax) =head2 C dislin.angle (ngrad) =head2 C dislin.arcell (nx, ny, na, nb, a, b, t) =head2 C dislin.areaf (nxray, nyray, n) =head2 C dislin.autres (ixdim, iydim) =head2 C dislin.ax2grf () =head2 C dislin.ax3len (nxl, nyl, nzl) =head2 C dislin.axclrs (nclr, copt, cax) =head2 C dislin.axends (cstr, cax) =head2 C dislin.axgit () =head2 C dislin.axis3d (x3, y3, z3) =head2 C dislin.axsbgd (nclr) =head2 C dislin.axslen (nxl, nyl) =head2 C dislin.axsorg (nxa, nya) =head2 C dislin.axspos (nxa, nya) =head2 C dislin.axsscl (cscl, cax) =head2 C dislin.axstyp (copt) =head2 C dislin.barbor (iclr) =head2 C dislin.barclr (ic1, ic2, ic3) =head2 C dislin.bargrp (ngrp, gap) =head2 C dislin.barmod (cmod, copt) =head2 C dislin.baropt (xf, a) =head2 C dislin.barpos (copt) =head2 C dislin.bars3d (xray, yray, z1ray, z2ray, xwray, ywray, icray, n) =head2 C dislin.bartyp (ctyp) =head2 C dislin.barwth (factor) =head2 C dislin.basalf (calph) =head2 C dislin.basdat (id, im, iy) =head2 C dislin.bitsi2 (nbits, mher, iher, mhin, ihin) Returns integer C. =head2 C dislin.bitsi4 (nbits, mher, iher, mhin, ihin) Returns integer C. =head2 C dislin.bmpfnt (copt) =head2 C dislin.box2d () =head2 C dislin.box3d () =head2 C dislin.center () =head2 C dislin.cgmbgd (xr, xg, xb) =head2 C dislin.cgmpic (cstr) =head2 C dislin.cgmver (nclr) =head2 C dislin.chaang (angle) =head2 C dislin.chacod (copt) =head2 C dislin.chaspc (xspc) =head2 C dislin.chawth (xwth) =head2 C dislin.chnatt () =head2 C dislin.chnbar (copt) =head2 C dislin.chncrv (copt) =head2 C dislin.chndot () =head2 C dislin.chndsh () =head2 C dislin.chnpie (copt) =head2 C dislin.circle (nx, ny, nr) =head2 C dislin.circsp (nspc) =head2 C dislin.clip3d (ctyp) =head2 C dislin.clpbor (copt) =head2 C dislin.clpmod (copt) =head2 C dislin.clpwin (nx, ny, nw, nh) =head2 C dislin.clrcyc (index, iclr) =head2 C dislin.clrmod (cmode) =head2 C dislin.clswin (id) =head2 C dislin.color (col) =head2 C dislin.colran (nca, nce) =head2 C dislin.complx () =head2 C dislin.conclr (nray, n) =head2 C dislin.concrv (xray, yray, n, zlev) =head2 C dislin.confll (xray, yray, zray, n, i1ray, i2ray, i3ray, ntri, zlev, nlev) =head2 C dislin.congap (xfac) =head2 C dislin.conlab (clab) =head2 C dislin.conmat (zmat, n, m, zlev) =head2 C dislin.conmod (xfac, xquot) =head2 C dislin.conn3d (x, y, z) =head2 C dislin.connpt (x, y) =head2 C dislin.conshd (xray, n, yray, m, zmat, zlev, nlev) =head2 C dislin.contri (xray, yray, zray, n, i1ray, i2ray, i3ray, ntri, zlev) =head2 C dislin.contur (xray, n, yray, m, zmat, zlev) =head2 C dislin.cross () =head2 C dislin.crvmat (zmat, n, m, ixpts, iypts) =head2 C dislin.crvtri (xray, yray, zray, n, i1ray, i2ray, i3ray, ntri) =head2 C dislin.csrmod (cmod, ckey) =head2 C dislin.csrtyp (copt) =head2 C dislin.csruni (copt) =head2 C dislin.curv3d (xray, yray, zray, n) =head2 C dislin.curve (xray, yray, n) =head2 C dislin.curve3 (xray, yray, zray, n) =head2 C dislin.curvmp (xray, yray, n) =head2 C dislin.curvx3 (xray, y, zray, n) =head2 C dislin.curvy3 (x, yray, zray, n) =head2 C dislin.dash () =head2 C dislin.dashl () =head2 C dislin.dashm () =head2 C dislin.delglb () =head2 C dislin.disalf () =head2 C dislin.disfin () =head2 C dislin.disini () =head2 C dislin.dot () =head2 C dislin.dotl () =head2 C dislin.duplx () =head2 C dislin.dwgbut (cstr, ival) Returns integer C. =head2 C dislin.dwgfil (clab, cstr, cmask) Returns string C. =head2 C dislin.dwglis (clab, clis, ilis) Returns integer C. =head2 C dislin.dwgmsg (cstr) =head2 C dislin.dwgtxt (clab, cstr) Returns string C. =head2 C dislin.ellips (nx, ny, na, nb) =head2 C dislin.endgrf () =head2 C dislin.erase () =head2 C dislin.errbar (x, y, err1, err2, n) =head2 C dislin.errdev (cdev) =head2 C dislin.errfil (cfil) =head2 C dislin.errmod (cstr, copt) =head2 C dislin.eushft (cnat, cshf) =head2 C dislin.expzlb (cstr) =head2 C dislin.field (xray, yray, uray, vray, n, ivec) =head2 C dislin.filbox (nx, ny, nw, nh) =head2 C dislin.filclr (copt) =head2 C dislin.filmod (cmod) =head2 C dislin.fixspc (xfac) =head2 C dislin.flab3d () =head2 C dislin.flen (x, ndig) Returns integer C. =head2 C dislin.frame (nfrm) =head2 C dislin.frmclr (nclr) =head2 C dislin.frmess (nfrm) =head2 C dislin.gapcrv (xgap) =head2 C dislin.getalf () Returns string C. =head2 C dislin.getang () Returns integer C. =head2 C dislin.getbpp () Returns integer C. =head2 C dislin.getclr () Returns integer C. =head2 C dislin.getdsp () Returns string C. =head2 C dislin.getfil () Returns string C. =head2 C dislin.gethgt () Returns integer C. =head2 C dislin.gethnm () Returns integer C. =head2 C dislin.getlev () Returns integer C. =head2 C dislin.getlin () Returns integer C. =head2 C dislin.getlit (xp, yp, zp, xn, yn, zn) Returns integer C. =head2 C dislin.getmfl () Returns string C. =head2 C dislin.getmix (copt) Returns string C. =head2 C dislin.getpat () Returns integer C. =head2 C dislin.getplv () Returns integer C. =head2 C dislin.getshf (copt) Returns string C. =head2 C dislin.gettyp () Returns integer C. =head2 C dislin.getver () Returns number C. =head2 C dislin.getvlt () Returns string C. =head2 C dislin.getwid () Returns integer C. =head2 C dislin.getxid (copt) Returns integer C. =head2 C dislin.gifmod (cmod, ckey) =head2 C dislin.gothic () =head2 C dislin.grace (ngrace) =head2 C dislin.graf (xa, xe, xorg, xstp, ya, ye, yorg, ystp) =head2 C dislin.graf3 (xa, xe, xorg, xstp, ya, ye, yorg, ystp, za, ze, zorg, zstp) =head2 C dislin.graf3d (xa, xe, xorg, xstp, ya, ye, yorg, ystp, za, ze, zorg, zstp) =head2 C dislin.grafmp (xa, xe, xorg, xstp, ya, ye, yorg, ystp) =head2 C dislin.grdpol (ixgrid, iygrid) =head2 C dislin.grffin () =head2 C dislin.grfini (x1, y1, z1, x2, y2, z2, x3, y3, z3) =head2 C dislin.grid (ixgrid, iygrid) =head2 C dislin.grid3d (ixgrid, iygrid, copt) =head2 C dislin.gridmp (ixgrid, iygrid) =head2 C dislin.gwgatt (id, copt) Returns integer C. =head2 C dislin.gwgbox (id) Returns integer C. =head2 C dislin.gwgbut (id) Returns integer C. =head2 C dislin.gwglis (id) Returns integer C. =head2 C dislin.gwgscl (id) Returns number C. =head2 C dislin.gwgxid (id) Returns integer C. =head2 C dislin.height (nhchar) =head2 C dislin.helve () =head2 C dislin.helves () =head2 C dislin.hname (nhchar) =head2 C dislin.hsymbl (nhsym) =head2 C dislin.htitle (nhtit) =head2 C dislin.hwfont () =head2 C dislin.hworig (nx, ny) =head2 C dislin.hwpage (nw, nh) =head2 C dislin.imgbox (nx, ny, nw, nh) =head2 C dislin.imgclp (nx, ny, nw, nh) =head2 C dislin.imgfin () =head2 C dislin.imgfmt (copt) =head2 C dislin.imgini () =head2 C dislin.imgmod (copt) =head2 C dislin.imgsiz (nw, nh) =head2 C dislin.inccrv (ncrv) =head2 C dislin.incdat (id, im, iy) Returns integer C. =head2 C dislin.incfil (cfil) =head2 C dislin.incmrk (nmrk) =head2 C dislin.indrgb (xr, xg, xb) Returns integer C. =head2 C dislin.intax () =head2 C dislin.intlen (nx) Returns integer C. =head2 C dislin.intrgb (xr, xg, xb) Returns integer C. =head2 C dislin.itmcnt (clis) Returns integer C. =head2 C dislin.itmstr (clis, nlis) Returns string C. =head2 C dislin.labclr (iclr, copt) =head2 C dislin.labdig (ndig, cax) =head2 C dislin.labdis (ndis, cax) =head2 C dislin.labels (clab, cax) =head2 C dislin.labjus (copt, cax) =head2 C dislin.labl3d (copt) =head2 C dislin.labmod (ckey, cval, cax) =head2 C dislin.labpos (cpos, cax) =head2 C dislin.labtyp (ctyp, cax) =head2 C dislin.legclr () =head2 C dislin.legopt (x1, x2, x3) =head2 C dislin.legpat (ityp, ithk, isym, iclr, ipat, ilin) =head2 C dislin.legpos (nx, ny) =head2 C dislin.legtit (cstr) =head2 C dislin.lfttit () =head2 C dislin.light (copt) =head2 C dislin.lincyc (index, ityp) =head2 C dislin.line (nx, ny, nu, nv) =head2 C dislin.linesp (xfac) =head2 C dislin.lintyp (ntyp) =head2 C dislin.linwid (i) =head2 C dislin.litmod (id, copt) =head2 C dislin.litop3 (id, xr, xg, xb, copt) =head2 C dislin.litopt (id, xval, copt) =head2 C dislin.litpos (id, x, y, z, copt) =head2 C dislin.lncap (copt) =head2 C dislin.lnjoin (copt) =head2 C dislin.lnmlt (x) =head2 C dislin.logtic (cmod) =head2 C dislin.mapbas (cmod) =head2 C dislin.mapfil (cfil, copt) =head2 C dislin.maplev (cmod) =head2 C dislin.mapmod (cmod) =head2 C dislin.mappol (xpol, ypol) =head2 C dislin.mapref (ylower, yupper) =head2 C dislin.mapsph (xrad) =head2 C dislin.marker (nsym) =head2 C dislin.matop3 (xr, xg, xb, copt) =head2 C dislin.matopt (xval, copt) =head2 C dislin.mdfmat (nx, ny, weight) =head2 C dislin.messag (cstr, nx, ny) =head2 C dislin.metafl (cstr) =head2 C dislin.mixalf () =head2 C dislin.mixleg () =head2 C dislin.mpaepl (i) =head2 C dislin.mplang (x) =head2 C dislin.mplclr (nbg, nfg) =head2 C dislin.mplpos (nx, ny) =head2 C dislin.mplsiz (nsize) =head2 C dislin.mpslogo (nx, ny, nsize, copt) =head2 C dislin.msgbox (cstr) =head2 C dislin.mshclr (ic) =head2 C dislin.mylab (cstr, itick, cax) =head2 C dislin.myline (nray, n) =head2 C dislin.mypat (iang, itype, idens, icross) =head2 C dislin.mysymb (xray, yray, n, isym, iflag) =head2 C dislin.myvlt (xr, xg, xb, n) =head2 C dislin.namdis (ndis, cax) =head2 C dislin.name (cstr, cax) =head2 C dislin.namjus (copt, cax) =head2 C dislin.neglog (eps) =head2 C dislin.newmix () =head2 C dislin.newpag () =head2 C dislin.nlmess (cstr) Returns integer C. =head2 C dislin.nlnumb (x, ndig) Returns integer C. =head2 C dislin.noarln () =head2 C dislin.nobar () =head2 C dislin.nobgd () =head2 C dislin.nochek () =head2 C dislin.noclip () =head2 C dislin.nofill () =head2 C dislin.nograf () =head2 C dislin.nohide () =head2 C dislin.noline (cax) =head2 C dislin.number (x, ndig, nx, ny) =head2 C dislin.numfmt (copt) =head2 C dislin.numode (cdec, cgrp, cpos, cfix) =head2 C dislin.nwkday (id, im, iy) Returns integer C. =head2 C dislin.nxposn (x) Returns integer C. =head2 C dislin.nyposn (y) Returns integer C. =head2 C dislin.nzposn (z) Returns integer C. =head2 C dislin.opnwin (id) =head2 C dislin.origin (nx0, ny0) =head2 C dislin.page (nw, nh) =head2 C dislin.pagera () =head2 C dislin.pagfll (nclr) =head2 C dislin.paghdr (cstr1, cstr2, iopt, idir) =head2 C dislin.pagmod (cmod) =head2 C dislin.pagorg (cpos) =head2 C dislin.patcyc (index, ipat) =head2 C dislin.pdfmod (cmod, ckey) =head2 C dislin.pdfmrk (cstr, copt) =head2 C dislin.penwid (x) =head2 C dislin.pie (nxm, nym, nr, a, b) =head2 C dislin.piebor (iclr) =head2 C dislin.pieclr (ic1, ic2, n) =head2 C dislin.pieexp () =head2 C dislin.pielab (clab, cpos) =head2 C dislin.pieopt (xf, a) =head2 C dislin.pietyp (ctyp) =head2 C dislin.pievec (ivec, copt) =head2 C dislin.pngmod (cmod, ckey) =head2 C dislin.point (nx, ny, nb, nh, ncol) =head2 C dislin.polar (xe, xorg, xstp, yorg, ystp) =head2 C dislin.polcrv (cpol) =head2 C dislin.polmod (cpos, cdir) =head2 C dislin.projct (cproj) =head2 C dislin.psfont (cfont) =head2 C dislin.psmode (cmod) =head2 C dislin.qplbar (yray, n) =head2 C dislin.qplclr (zmat, n, m) =head2 C dislin.qplcon (zmat, n, m, nlv) =head2 C dislin.qplot (xray, yray, n) =head2 C dislin.qplpie (xray, n) =head2 C dislin.qplsca (xray, yray, n) =head2 C dislin.qplsur (zmat, n, m) =head2 C dislin.rbmp (cfil) =head2 C dislin.reawgt () =head2 C dislin.recfll (nx, ny, nw, nh, ncol) =head2 C dislin.rectan (nx, ny, nw, nh) =head2 C dislin.resatt () =head2 C dislin.reset (cname) =head2 C dislin.revscr () =head2 C dislin.rgif (cfil) =head2 C dislin.rgtlab () =head2 C dislin.rimage (cfil) =head2 C dislin.rlarc (xm, ym, xa, xb, a, b, t) =head2 C dislin.rlarea (xray, yray, n) =head2 C dislin.rlcirc (xm, ym, r) =head2 C dislin.rlconn (x, y) =head2 C dislin.rlell (xm, ym, a, b) =head2 C dislin.rline (x, y, u, v) =head2 C dislin.rlmess (cstr, x, y) =head2 C dislin.rlnumb (x, ndig, xp, yp) =head2 C dislin.rlpie (xm, ym, r, a, b) =head2 C dislin.rlpoin (x, y, nb, nh, ncol) =head2 C dislin.rlrec (x, y, xw, xh) =head2 C dislin.rlrnd (x, y, xb, xh, irnd) =head2 C dislin.rlsec (xm, ym, r1, r2, a, b, ncol) =head2 C dislin.rlstrt (x, y) =head2 C dislin.rlsymb (nsym, x, y) =head2 C dislin.rlvec (x1, y1, x2, y2, ivec) =head2 C dislin.rlwind (xk, x, y, nwidth, a) =head2 C dislin.rndrec (nx, ny, nb, nh, irnd) =head2 C dislin.rpng (cfil) =head2 C dislin.rppm (cfil) =head2 C dislin.rtiff (cfil) =head2 C dislin.rvynam () =head2 C dislin.sclfac (xfac) =head2 C dislin.sclmod (cmode) =head2 C dislin.scrmod (cmode) =head2 C dislin.sector (nx, ny, nr1, nr2, a, b, ncol) =head2 C dislin.selwin (id) =head2 C dislin.sendbf () =head2 C dislin.sendmb () =head2 C dislin.sendok () =head2 C dislin.serif () =head2 C dislin.setbas (xfac) =head2 C dislin.setclr (ncol) =head2 C dislin.setcsr (copt) =head2 C dislin.setexp (fexp) =head2 C dislin.setfil (cfil) =head2 C dislin.setgrf (c1, c2, c3, c4) =head2 C dislin.setind (index, xr, xg, xb) =head2 C dislin.setmix (cstr, cmix) =head2 C dislin.setpag (cpag) =head2 C dislin.setres (npb, nph) =head2 C dislin.setrgb (xr, xg, xb) =head2 C dislin.setscl (xray, n, cax) =head2 C dislin.setvlt (cvlt) =head2 C dislin.setxid (id, copt) =head2 C dislin.shdafr (inray, ipray, icray, n) =head2 C dislin.shdcha () =head2 C dislin.shdcrv (x1ray, y1ray, n1, x2ray, y2ray, n2) =head2 C dislin.shdeur (inray, ipray, icray, n) =head2 C dislin.shdmap (cmap) =head2 C dislin.shdmod (copt, ctyp) =head2 C dislin.shdpat (ipat) =head2 C dislin.shdusa (inray, ipray, icray, n) =head2 C dislin.shield (carea, cmode) =head2 C dislin.shlcir (nx, ny, nr) =head2 C dislin.shldel (id) =head2 C dislin.shlell (nx, ny, na, nb, t) =head2 C dislin.shlind () Returns integer C. =head2 C dislin.shlpie (nx, ny, nr, a, b) =head2 C dislin.shlpol (nxray, nyray, n) =head2 C dislin.shlrct (nx, ny, nw, nh, t) =head2 C dislin.shlrec (nx, ny, nw, nh) =head2 C dislin.shlres (n) =head2 C dislin.shlsur () =head2 C dislin.shlvis (id, cmode) =head2 C dislin.simplx () =head2 C dislin.smxalf (calph, c1, c2, n) =head2 C dislin.solid () =head2 C dislin.sphe3d (xm, ym, zm, r, n, m) =head2 C dislin.splmod (ngrad, npts) =head2 C dislin.strt3d (x, y, z) =head2 C dislin.strtpt (x, y) =head2 C dislin.surclr (ictop, icbot) =head2 C dislin.surfce (xray, n, yray, m, zmat) =head2 C dislin.suriso (xray, nx, yray, ny, zray, nz, wmat, wlev) =head2 C dislin.surmat (zmat, nx, ny, ixpts, iypts) =head2 C dislin.surmsh (copt) =head2 C dislin.suropt (copt) =head2 C dislin.surshd (xray, n, yray, m, zmat) =head2 C dislin.sursze (xmin, xmax, ymin, ymax) =head2 C dislin.surtri (xray, yray, zray, n, i1ray, i2ray, i3ray, ntri) =head2 C dislin.survis (cvis) =head2 C dislin.swgatt (id, cval, copt) =head2 C dislin.swgbox (ip, ival) =head2 C dislin.swgbut (ip, ival) =head2 C dislin.swgclr (xr, xg, xb, copt) =head2 C dislin.swgdrw (x) =head2 C dislin.swgfil (ip, cval) =head2 C dislin.swgfnt (cfnt, n) =head2 C dislin.swgfoc (id) =head2 C dislin.swghlp (cstr) =head2 C dislin.swgjus (ctyp, cwidg) =head2 C dislin.swglis (ip, ival) =head2 C dislin.swgmix (c, cstr) =head2 C dislin.swgmrg (ival, cstr) =head2 C dislin.swgoff (nx, ny) =head2 C dislin.swgopt (cval, copt) =head2 C dislin.swgpop (copt) =head2 C dislin.swgpos (nx, ny) =head2 C dislin.swgscl (ip, xval) =head2 C dislin.swgsiz (nx, ny) =head2 C dislin.swgspc (xw, xh) =head2 C dislin.swgstp (step) =head2 C dislin.swgtit (ctit) =head2 C dislin.swgtxt (ip, cval) =head2 C dislin.swgtyp (ctyp, cwidg) =head2 C dislin.swgwin (nx, ny, nw, nh) =head2 C dislin.swgwth (nchar) =head2 C dislin.symbol (nsym, nx, ny) =head2 C dislin.symfil (cdev, cstat) =head2 C dislin.symrot (angle) =head2 C dislin.texmod (copt) =head2 C dislin.texopt (copt, ctyp) =head2 C dislin.texval (x, copt) =head2 C dislin.thkcrv (nthk) =head2 C dislin.thrfin () =head2 C dislin.thrini (n) =head2 C dislin.ticks (itick, cax) =head2 C dislin.ticlen (nmaj, nmin) =head2 C dislin.ticmod (copt, cax) =head2 C dislin.ticpos (cpos, cax) =head2 C dislin.tifmod (n, cval, copt) =head2 C dislin.tiforg (nx, ny) =head2 C dislin.tifwin (nx, ny, nw, nh) =head2 C dislin.timopt () =head2 C dislin.titjus (copt) =head2 C dislin.title () =head2 C dislin.titlin (cstr, n) =head2 C dislin.titpos (copt) =head2 C dislin.trfres () =head2 C dislin.trfrot (xang, nx, ny) =head2 C dislin.trfscl (xscl, yscl) =head2 C dislin.trfshf (nx, ny) =head2 C dislin.trifll (xray, yray) =head2 C dislin.triplx () =head2 C dislin.trmlen (cstr) Returns integer C. =head2 C dislin.txtjus (copt) =head2 C dislin.units (copt) =head2 C dislin.vang3d (a) =head2 C dislin.vclp3d (x1, x2) =head2 C dislin.vector (nx1, ny1, nx2, ny2, ivec) =head2 C dislin.vectr3 (x1, y1, z1, x2, y2, z2, ivec) =head2 C dislin.vfoc3d (x, y, z, cview) =head2 C dislin.view3d (xvu, yvu, zvu, cvu) =head2 C dislin.vkxbar (nvfx) =head2 C dislin.vkybar (nvfy) =head2 C dislin.vkytit (nvfy) =head2 C dislin.vltfil (cfl, copt) =head2 C dislin.vup3d (a) =head2 C dislin.wgapp (ip, clab) Returns integer C. =head2 C dislin.wgbas (ip, ctyp) Returns integer C. =head2 C dislin.wgbox (ip, cstr, isel) Returns integer C. =head2 C dislin.wgbut (ip, cstr, ival) Returns integer C. =head2 C dislin.wgcmd (ip, clab, cmd) Returns integer C. =head2 C dislin.wgdlis (ip, cstr, isel) Returns integer C. =head2 C dislin.wgdraw (ip) Returns integer C. =head2 C dislin.wgfil (ip, clab, cstr, cmask) Returns integer C. =head2 C dislin.wgfin () =head2 C dislin.wgini (ctyp) Returns integer C. =head2 C dislin.wglab (ip, cstr) Returns integer C. =head2 C dislin.wglis (ip, cstr, isel) Returns integer C. =head2 C dislin.wgltxt (ip, clab, ctext, iper) Returns integer C. =head2 C dislin.wgok (ip) Returns integer C. =head2 C dislin.wgpbut (ip, clab) Returns integer C. =head2 C dislin.wgpop (ip, clab) Returns integer C. =head2 C dislin.wgquit (ip) Returns integer C. =head2 C dislin.wgscl (ip, cstr, x1, x2, xval, ndez) Returns integer C. =head2 C dislin.wgstxt (ip, nsize, nmax) Returns integer C. =head2 C dislin.wgtxt (ip, cstr) Returns integer C. =head2 C dislin.widbar (nzb) =head2 C dislin.wimage (cfil) =head2 C dislin.winapp (copt) =head2 C dislin.windbr (xk, nx, ny, nwidth, a) =head2 C dislin.window (nx, ny, nw, nh) =head2 C dislin.winfin (iopt) =head2 C dislin.winfnt (cfont) =head2 C dislin.winid () Returns integer C. =head2 C dislin.winkey (copt) =head2 C dislin.winmod (copt) =head2 C dislin.winopt (iopt, copt) =head2 C dislin.winsiz (nw, nh) =head2 C dislin.wintit (cstr) =head2 C dislin.wmfmod (cmod, ckey) =head2 C dislin.world () =head2 C dislin.wpixel (ix, iy, iclr) =head2 C dislin.wpixls (iray, ix, iy, nw, nh) =head2 C dislin.wpxrow (iray, ix, iy, n) =head2 C dislin.wtiff (cfil) =head2 C dislin.x11fnt (cfont, copt) =head2 C dislin.x11mod (copt) =head2 C dislin.x2dpos (x, y) Returns number C. =head2 C dislin.x3dabs (x, y, z) Returns number C. =head2 C dislin.x3dpos (x, y, z) Returns number C. =head2 C dislin.x3drel (x, y, z) Returns number C. =head2 C dislin.xaxgit () =head2 C dislin.xaxis (xa, xe, xorg, xstp, nl, cstr, it, nx, ny) =head2 C dislin.xaxlg (xa, xe, xorg, xstp, nl, cstr, it, nx, ny) =head2 C dislin.xaxmap (xa, xe, xorg, xstp, cstr, it, ny) =head2 C dislin.xcross () =head2 C dislin.xdraw (x, y) =head2 C dislin.xinvrs (n) Returns number C. =head2 C dislin.xmove (x, y) =head2 C dislin.xposn (x) Returns number C. =head2 C dislin.y2dpos (x, y) Returns number C. =head2 C dislin.y3dabs (x, y, z) Returns number C. =head2 C dislin.y3dpos (x, y, z) Returns number C. =head2 C dislin.y3drel (x, y, z) Returns number C. =head2 C dislin.yaxgit () =head2 C dislin.yaxis (ya, ye, yor, ystp, nl, cstr, it, nx, ny) =head2 C dislin.yaxlg (ya, ye, yor, ystp, nl, cstr, it, nx, ny) =head2 C dislin.yaxmap (ya, ye, yor, ystp, cstr, it, ny) =head2 C dislin.ycross () =head2 C dislin.yinvrs (n) Returns number C. =head2 C dislin.yposn (y) Returns number C. =head2 C dislin.z3dpos (x, y, z) Returns number C. =head2 C dislin.zaxis (za, ze, zor, zstp, nl, cstr, it, id, nx, ny) =head2 C dislin.zaxlg (za, ze, zor, zstp, nl, cstr, it, id, nx, ny) =head2 C dislin.zbffin () =head2 C dislin.zbfini () Returns integer C. =head2 C dislin.zbflin (x1, y1, z1, x2, y2, z2) =head2 C dislin.zbftri (x, y, z, ic) =head2 C dislin.zscale (za, ze) =head1 UNIMPLEMENTED B wraps 596 of the 616 DISLIN functions. The 20 unimplemented functions fall into two categories: those that make little or no sense for Lua, or those that have questionable usefulness, and have been set aside for later, if ever. The I functions are: =over 4 =item C FORTRAN I/O =item C Obsolete =item C Obsolete -- use C =item C has out cray (dtoa) -- use Lua =item C returns (FILE *) =item C has out cray (itoa) -- use Lua =item C side affects 1st arg -- use Lua =item C Obsolete =item C Obsolete =item C FORTRAN I/O =item C FORTRAN I/O =item C FORTRAN I/O; and has out cray =item C Obsolete -- use C =item C FORTRAN I/O =item C has in/out sray; rarely used (not in Python wrapper) =item C has in/out iray; rarely used (not in Python wrapper) =item C Obsolete =item C Obsolete =item C FORTRAN I/O =item C has in/out cray -- use Lua =item C Obsolete =item C FORTRAN I/O =back The I functions are: =over 4 =item C has out irays =item C has optional args =item C has out irays =item C has optional args =item C has out iray or cray =item C has out iray or cray =back =head1 VERSION This is B version 10. =head1 CREDITS B was developed by Doug Currie, Londonderry, NH, USA. DISLIN was developed by Helmut Michels at the Max Planck Institute for Solar System Research: L =head1 LICENSE Note that this license is for the B wrapper. DISLIN itself has its own license; see L Copyright (c) 2006-7 Doug Currie, Londonderry, NH, USA All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.