S2PLOT:Function List

From S2PLOT

(Difference between revisions)
Jump to: navigation, search
Revision as of 02:27, 27 November 2007
S2plot admin (Talk | contribs)
(Dynamic-Only Geometry Functions)
← Previous diff
Current revision
S2plot admin (Talk | contribs)
(S2 "Native" Routines)
Line 18: Line 18:
<tr><td>[[Function:s2ldev | s2ldev]]</td><td>List the available S2PLOT devices on stdout. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGLDEV PGLDEV]</td></tr> <tr><td>[[Function:s2ldev | s2ldev]]</td><td>List the available S2PLOT devices on stdout. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGLDEV PGLDEV]</td></tr>
<tr><td>[[Function:s2show | s2show]]</td><td>Draw the scene and enter interactive mode if interactive is non-zero. </td><td> </td></tr> <tr><td>[[Function:s2show | s2show]]</td><td>Draw the scene and enter interactive mode if interactive is non-zero. </td><td> </td></tr>
-<tr><td>[[Function:s2disp | s2disp]]</td><td>Draw the scene, but return control when a timeout occurs or when 'TAB' key is pressed. </td><td> </td></tr>+<tr><td>[[Function:s2disp | s2disp]]</td><td>Draw the scene, but return control when a timeout occurs or when shift-ENTER is pressed. </td><td> </td></tr>
<tr><td>[[Function:s2eras | s2eras]]</td><td>Erase the geometry. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGERAS PGERAS]</td></tr> <tr><td>[[Function:s2eras | s2eras]]</td><td>Erase the geometry. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGERAS PGERAS]</td></tr>
</table> </table>
Line 45: Line 45:
<tr><td>[[Function:s2rectxz | s2rectxz]]</td><td>Draw a rectangle in the xz plane at a given y coordinate. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGRECT PGRECT]</td></tr> <tr><td>[[Function:s2rectxz | s2rectxz]]</td><td>Draw a rectangle in the xz plane at a given y coordinate. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGRECT PGRECT]</td></tr>
<tr><td>[[Function:s2rectyz | s2rectyz]]</td><td>Draw a rectangle in the yz plane at a given x coordinate. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGRECT PGRECT]</td></tr> <tr><td>[[Function:s2rectyz | s2rectyz]]</td><td>Draw a rectangle in the yz plane at a given x coordinate. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGRECT PGRECT]</td></tr>
 +<tr><td>[[Function:s2wcube |s2wcube]]</td><td>Draw a wireframe cube.</td><td></td></tr>
<tr><td>[[Function:s2pt1 | s2pt1]]</td><td>Draw a single point with a given symbol. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGPT1 PGPT1]</td></tr> <tr><td>[[Function:s2pt1 | s2pt1]]</td><td>Draw a single point with a given symbol. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGPT1 PGPT1]</td></tr>
<tr><td>[[Function:s2pt | s2pt]]</td><td>Draw a set of points with a given symbol. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGPT PGPT]</td></tr> <tr><td>[[Function:s2pt | s2pt]]</td><td>Draw a set of points with a given symbol. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGPT PGPT]</td></tr>
Line 63: Line 64:
</table> </table>
-==Attributes ==+==Drawing Attributes ==
<table border=1 width=100%> <table border=1 width=100%>
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
-<tr><td>[[Function:s2sci | s2sci]]</td><td>Set the pen colour by index. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSCI PGSCI]</td></tr>+<tr><td>[[Function:s2sci | s2sci]]</td><td>Set the pen colour by index.
 +</td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSCI PGSCI]</td></tr>
 +<tr><td>[[Function:s2qci | s2qci]]</td><td>Query the colour index</td><td> </td></tr>
<tr><td>[[Function:s2scr | s2scr]]</td><td>Set colour representation, ie. define a colour associated with an index. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSCR PGSCR]</td></tr> <tr><td>[[Function:s2scr | s2scr]]</td><td>Set colour representation, ie. define a colour associated with an index. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSCR PGSCR]</td></tr>
<tr><td>[[Function:s2qcr | s2qcr]]</td><td>Query colour representation. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGQCR PGQCR]</td></tr> <tr><td>[[Function:s2qcr | s2qcr]]</td><td>Query colour representation. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGQCR PGQCR]</td></tr>
<tr><td>[[Function:s2slw | s2slw]]</td><td>Set the linewidth in pixels. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSLW PGSLW]</td></tr> <tr><td>[[Function:s2slw | s2slw]]</td><td>Set the linewidth in pixels. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSLW PGSLW]</td></tr>
 +<tr><td>[[Function:s2qlw | s2qlw]]</td><td>Query the line width</td><td> </td></tr>
 +<tr><td>[[Function:s2sls | s2sls]]</td><td>Set the line style.</td/><td></td></tr>
 +<tr><td>[[Function:s2qls | s2qls]]</td><td>Query the line style.</td/><td></td></tr>
<tr><td>[[Function:s2sch | s2sch]]</td><td>Set the character height in "arbitrary" units. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSCH PGSCH]</td></tr> <tr><td>[[Function:s2sch | s2sch]]</td><td>Set the character height in "arbitrary" units. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSCH PGSCH]</td></tr>
 +<tr><td>[[Function:s2qch | s2qch]]</td><td>Query the character height</td><td> </td></tr>
<tr><td>[[Function:s2sah | s2sah]]</td><td>Set the style to be used for arrowheads drawn with s2arro. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSAH PGSAH]</td></tr> <tr><td>[[Function:s2sah | s2sah]]</td><td>Set the style to be used for arrowheads drawn with s2arro. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSAH PGSAH]</td></tr>
 +<tr><td>[[Function:s2qah | s2qah]]</td><td>Query the arrow-head style</td><td> </td></tr>
 +<tr><td>[[Function:s2twc | s2twc]]</td><td>Set the window clipping mode</td><td> </td></tr>
 +<tr><td>[[Function:s2qwc| s2qwc]]</td><td>Query the window clipping mode</td><td> </td></tr>
 +<tr><td>[[Function:ss2txh | ss2txh]]</td><td>Enable/disable/toggle the visibility of the cursor cross-hair </td><td> </td></tr>
 +<tr><td>[[Function:ss2qxh | ss2qxh]]</td><td>Query the visibility of the cursor cross-hair </td><td></td></tr>
 +<tr><td>[[Function:ss2tsc | ss2tsc]]</td><td>Enable/disable 2-d screen coordinates</td><td> </td></tr>
</table> </table>
Line 79: Line 92:
<tr><td>[[Function:s2box | s2box]]</td><td>Draw a labelled box around the world space. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGBOX PGBOX]</td></tr> <tr><td>[[Function:s2box | s2box]]</td><td>Draw a labelled box around the world space. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGBOX PGBOX]</td></tr>
<tr><td>[[Function:s2lab | s2lab]]</td><td>Draw labels along the edges of bounding box. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGLAB PGLAB]</td></tr> <tr><td>[[Function:s2lab | s2lab]]</td><td>Draw labels along the edges of bounding box. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGLAB PGLAB]</td></tr>
 +<tr><td>[[Function:s2help | s2help]]</td><td>Set the custom help string.</td/><td></td></tr>
</table> </table>
Line 94: Line 108:
<tr><td>[[Function:s2funyzr | s2funyzr]]</td><td>Draw surface as per s2funyz, but with explicit settings for the colour range mapping. </td><td> </td></tr> <tr><td>[[Function:s2funyzr | s2funyzr]]</td><td>Draw surface as per s2funyz, but with explicit settings for the colour range mapping. </td><td> </td></tr>
<tr><td>[[Function:s2funuv | s2funuv]]</td><td>Plot a parametric function (generally a surface) defined by functions fx(u,v), fy(u,v) and fz(u,v). </td><td> </td></tr> <tr><td>[[Function:s2funuv | s2funuv]]</td><td>Plot a parametric function (generally a surface) defined by functions fx(u,v), fy(u,v) and fz(u,v). </td><td> </td></tr>
 +<tr><td>[[Function:s2funuva | s2funuva]]</td><td>Plot a parametric function (generally a surface) defined by functions fx(u,v), fy(u,v) and fz(u,v) with transparency. </td><td> </td></tr>
</table> </table>
Line 104: Line 119:
<tr><td>[[Function:s2qcir | s2qcir]]</td><td>Query the colour index range. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGQCIR PGQCIR]</td></tr> <tr><td>[[Function:s2qcir | s2qcir]]</td><td>Query the colour index range. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGQCIR PGQCIR]</td></tr>
<tr><td>[[Function:s2icm | s2icm]]</td><td>Install various colour maps. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSITF PGSITF]</td></tr> <tr><td>[[Function:s2icm | s2icm]]</td><td>Install various colour maps. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGSITF PGSITF]</td></tr>
-<tr><td>[[Function:s2wedge | s2wedge]]</td><td>Draw a colour wedge. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGWEDG PGWEDG]</td></tr> 
</table> </table>
-==Vector Plots ==+==Isosurfaces ==
<table border=1 width=100%> <table border=1 width=100%>
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
-<tr><td>[[Function:s2vect3 | s2vect3]]</td><td>Draw a vector map of a 3D data array, with blanking. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGVECT PGVECT]</td></tr>+<tr><td>[[Function:ns2cis | ns2cis]]</td><td>Create an isosurface object </td><td> </td></tr>
 +<tr><td>[[Function:ns2cisc | ns2cisc]]</td><td>Create an isosurface object with a colour function </td><td> </td></tr>
 +<tr><td>[[Function:ns2dis | ns2dis]]</td><td>Draw an isosurface object </td><td> </td></tr>
 +<tr><td>[[Function:ns2sisl | ns2sisl]]</td><td>Change the level of isosurface </td><td> </td></tr>
 +<tr><td>[[Function:ns2sisa | ns2sisa]]</td><td>Set the alpha channel for an isosurface</td><td> </td></tr>
 +<tr><td>[[Function:ns2sisc | ns2sisc]]</td><td>Set the colour for an isosurface</td><td> </td></tr>
 +<tr><td>[[Function:ns2ssq |ns2ssq ]]</td><td>Set general surface quality.</td/><td></td></tr>
 +<tr><td>[[Function:ns2qsq |ns2qsq ]]</td><td>Query general surface quality.</td/><td></td></tr>
</table> </table>
-==Miscellaneous Routines ==+==Volume Rendering ==
<table border=1 width=100%> <table border=1 width=100%>
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
-<tr><td>[[Function:s2iden | s2iden]]</td><td>Write username, date, time and optional string at bottom of plot. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGIDEN PGIDEN]</td></tr>+<tr><td>[[Function:ns2cvr | ns2cvr]]</td><td>Create a volume rendering object </td><td> </td></tr>
 +<tr><td>[[Function:ns2cvra | ns2cvra]]</td><td>Volume rendering with alpha function specified.</td/><td></td></tr>
 +<tr><td>[[Function:ds2dvr | ds2dvr]]</td><td>Draw a volume render object from a dynamic callback. </td><td> </td></tr>
 +<tr><td>[[Function:ns2svrl | ns2svrl]]</td><td>Change volume rendering data and alpha ranges </td><td> </td></tr>
 +<tr><td>[[Function:ns2svas |ns2svas ]]</td><td>Set alpha scaling mode.</td/><td></td></tr>
 +<tr><td>[[Function:ns2qvas |ns2qvas ]]</td><td>Query alpha scaling mode.</td/><td></td></tr>
 +<tr><td>[[Function:ns2sevas |ns2sevas ]]</td><td>Explicitly set alpha scaling values.</td/><td></td></tr>
</table> </table>
 +
 +==Misecllaneous Plots ==
 +<table border=1 width=100%>
 +<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
 +<tr><td>[[Function:s2vect3 | s2vect3]]</td><td>Draw a vector map of a 3D data array, with blanking. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGVECT PGVECT]</td></tr>
 +<tr><td>[[Function:s2skypa | s2skypa]]</td><td>Draw a skyscraper plot with/without walls</td><td> </td></tr>
 +<tr><td>[[Function:s2impa | s2impa]]</td><td>Draw an impulse plot with/without trunks</td><td> </td></tr>
 +<tr><td>[[Function:s2chromapts | s2chromapts]]</td><td>Plot points on a sphere using chromastereoscopic colouring for depth </td><td> </td></tr>
 +<tr><td>[[Function:s2chromacpts | s2chromacpts]]</td><td>Plot cartesian points using chromastereoscopic colouring for depth </td><td> </td></tr>
 +</table>
 +
 +
==S2 "Native" Routines == ==S2 "Native" Routines ==
Line 128: Line 167:
<tr><td>[[Function:ns2spherex | ns2spherex]]</td><td>Draw a textured sphere, with given centre, radius, colour and texture ID. </td><td> </td></tr> <tr><td>[[Function:ns2spherex | ns2spherex]]</td><td>Draw a textured sphere, with given centre, radius, colour and texture ID. </td><td> </td></tr>
<tr><td>[[Function:ns2vspherex | ns2vspherex]]</td><td>Draw a textured sphere, with given centre, radius, colour and texture ID - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vspherex | ns2vspherex]]</td><td>Draw a textured sphere, with given centre, radius, colour and texture ID - vector input. </td><td> </td></tr>
 +<tr><td>[[Function:ns2vplanett |ns2vplanett ]]</td><td>Draw a planet with texture filename.</td/><td></td></tr>
 +<tr><td>[[Function:ns2vplanetx |ns2vplanetx ]]</td><td>Draw a planet with texture id.</td/><td></td></tr>
<tr><td>[[Function:ns2disk | ns2disk]]</td><td>Draw an annulus with given centre, inner and out radii, and colour. </td><td> </td></tr> <tr><td>[[Function:ns2disk | ns2disk]]</td><td>Draw an annulus with given centre, inner and out radii, and colour. </td><td> </td></tr>
<tr><td>[[Function:ns2vdisk | ns2vdisk]]</td><td>Draw an annulus with given centre, inner and out radii, and colour - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vdisk | ns2vdisk]]</td><td>Draw an annulus with given centre, inner and out radii, and colour - vector input. </td><td> </td></tr>
<tr><td>[[Function:ns2arc | ns2arc]]</td><td>Draw an arc at (px,py,pz) with normal (nx,ny,nz) in current pen (thickness,colour). </td><td> </td></tr> <tr><td>[[Function:ns2arc | ns2arc]]</td><td>Draw an arc at (px,py,pz) with normal (nx,ny,nz) in current pen (thickness,colour). </td><td> </td></tr>
<tr><td>[[Function:ns2varc | ns2varc]]</td><td>Draw an arc at (px,py,pz) with normal (nx,ny,nz) in current pen (thickness,colour) - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2varc | ns2varc]]</td><td>Draw an arc at (px,py,pz) with normal (nx,ny,nz) in current pen (thickness,colour) - vector input. </td><td> </td></tr>
 +<tr><td>[[Function:ns2erc |ns2erc ]]</td><td>Draw an arc.</td/><td></td></tr>
 +<tr><td>[[Function:ns2verc |ns2verc ]]</td><td>Draw an arc - vector input.</td/><td></td></tr>
<tr><td>[[Function:ns2text | ns2text]]</td><td>Draw text at a given position, with right and up vectors, a specific colour, and a text string of course. </td><td> </td></tr> <tr><td>[[Function:ns2text | ns2text]]</td><td>Draw text at a given position, with right and up vectors, a specific colour, and a text string of course. </td><td> </td></tr>
<tr><td>[[Function:ns2vtext | ns2vtext]]</td><td>Draw text at a given position, with right and up vectors, a specific colour, and a text string of course - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vtext | ns2vtext]]</td><td>Draw text at a given position, with right and up vectors, a specific colour, and a text string of course - vector input. </td><td> </td></tr>
Line 139: Line 182:
<tr><td>[[Function:ns2thpoint | ns2thpoint]]</td><td>Draw a thick point at given position, in colour and thickness in pixels (not world coords). </td><td> </td></tr> <tr><td>[[Function:ns2thpoint | ns2thpoint]]</td><td>Draw a thick point at given position, in colour and thickness in pixels (not world coords). </td><td> </td></tr>
<tr><td>[[Function:ns2vthpoint | ns2vthpoint]]</td><td>Draw a thick point at given position, in colour and thickness in pixels (not world coords) - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vthpoint | ns2vthpoint]]</td><td>Draw a thick point at given position, in colour and thickness in pixels (not world coords) - vector input. </td><td> </td></tr>
 +<tr><td>[[Function:ns2vpa | ns2vpa]]</td><td>Draw a thick transparent point. </td><td> </td></tr>
<tr><td>[[Function:ns2i | ns2i]]</td><td>Illumination. </td><td> </td></tr> <tr><td>[[Function:ns2i | ns2i]]</td><td>Illumination. </td><td> </td></tr>
<tr><td>[[Function:ns2vi | ns2vi]]</td><td>Illumination - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vi | ns2vi]]</td><td>Illumination - vector input. </td><td> </td></tr>
Line 145: Line 189:
<tr><td>[[Function:ns2thline | ns2thline]]</td><td>Draw a thick line from one point to another in a specific colour. </td><td> </td></tr> <tr><td>[[Function:ns2thline | ns2thline]]</td><td>Draw a thick line from one point to another in a specific colour. </td><td> </td></tr>
<tr><td>[[Function:ns2vthline | ns2vthline]]</td><td>Draw a thick line from one point to another in a specific colour - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vthline | ns2vthline]]</td><td>Draw a thick line from one point to another in a specific colour - vector input. </td><td> </td></tr>
 +<tr><td>[[Function:ns2thwcube |ns2thwcube ]]</td><td>Draw a wireframe cube.</td/><td></td></tr>
 +<tr><td>[[Function:ns2vthwcube |ns2vthwcube ]]</td><td>Draw a wireframe cube - vector input.</td/><td></td></tr>
<tr><td>[[Function:ns2cline | ns2cline]]</td><td>Draw a coloured line, with colour blended between the two given colours along the line. </td><td> </td></tr> <tr><td>[[Function:ns2cline | ns2cline]]</td><td>Draw a coloured line, with colour blended between the two given colours along the line. </td><td> </td></tr>
<tr><td>[[Function:ns2vcline | ns2vcline]]</td><td>Draw a coloured line, with colour blended between the two given colours along the line - vector input. </td><td> </td></tr> <tr><td>[[Function:ns2vcline | ns2vcline]]</td><td>Draw a coloured line, with colour blended between the two given colours along the line - vector input. </td><td> </td></tr>
 +<tr><td>[[Function:ns2thcline |ns2thcline ]]</td><td>Draw a thick coloured line.</td/><td></td></tr>
 +<tr><td>[[Function:ns2vthcline |ns2vthcline ]]</td><td>Draw a thick coloured line - vector input.</td/><td></td></tr>
<tr><td>[[Function:ns2vf3 | ns2vf3]]</td><td>3-vertex facet with single colour and automatic normals. </td><td> </td></tr> <tr><td>[[Function:ns2vf3 | ns2vf3]]</td><td>3-vertex facet with single colour and automatic normals. </td><td> </td></tr>
 +<tr><td>[[Function:ns2vf3a | ns2vf3a]]</td><td>3-vertex facet with transparency </td><td> </td></tr>
<tr><td>[[Function:ns2vf3n | ns2vf3n]]</td><td>3-vertex facet with single colour and normals given. </td><td> </td></tr> <tr><td>[[Function:ns2vf3n | ns2vf3n]]</td><td>3-vertex facet with single colour and normals given. </td><td> </td></tr>
<tr><td>[[Function:ns2vf3c | ns2vf3c]]</td><td>3-vertex facet with coloured vertices and autmoatic normals. </td><td> </td></tr> <tr><td>[[Function:ns2vf3c | ns2vf3c]]</td><td>3-vertex facet with coloured vertices and autmoatic normals. </td><td> </td></tr>
<tr><td>[[Function:ns2vf3nc | ns2vf3nc]]</td><td>3-vertex facet with coloured vertices and normals given. </td><td> </td></tr> <tr><td>[[Function:ns2vf3nc | ns2vf3nc]]</td><td>3-vertex facet with coloured vertices and normals given. </td><td> </td></tr>
 +<tr><td>[[Function:ns2vf3na | ns2vf3na]]</td><td>Transparent 3-vertex facet with coloured vertices, normals and alpha given. </td><td> </td></tr>
 +<tr><td>[[Function:ns2vf3nca | ns2vf3nca]]</td><td>3-vertex facet with coloured vertices, normals and alpha per vertex given.</td><td> </td></tr>
<tr><td>[[Function:ns2vf4 | ns2vf4]]</td><td>4-vertex facet with single colour and automatic normals. </td><td> </td></tr> <tr><td>[[Function:ns2vf4 | ns2vf4]]</td><td>4-vertex facet with single colour and automatic normals. </td><td> </td></tr>
<tr><td>[[Function:ns2vf4n | ns2vf4n]]</td><td>4-vertex facet with single colour and normals given. </td><td> </td></tr> <tr><td>[[Function:ns2vf4n | ns2vf4n]]</td><td>4-vertex facet with single colour and normals given. </td><td> </td></tr>
Line 158: Line 209:
<tr><td>[[Function:ns2vf4x | ns2vf4x]]</td><td>Draw a textured 4-vertex facet using a texture id. </td><td> </td></tr> <tr><td>[[Function:ns2vf4x | ns2vf4x]]</td><td>Draw a textured 4-vertex facet using a texture id. </td><td> </td></tr>
<tr><td>[[Function:ns2vf4xt | ns2vf4xt]]</td><td>Draw a textured 4-vertex facet with alpha channel using a texture id. </td><td> </td></tr> <tr><td>[[Function:ns2vf4xt | ns2vf4xt]]</td><td>Draw a textured 4-vertex facet with alpha channel using a texture id. </td><td> </td></tr>
 +<tr><td>[[Function:ns2scube |ns2scube ]]</td><td>Draw a solid cube.</td/><td></td></tr>
 +<tr><td>[[Function:ns2vscube |ns2vscube ]]</td><td>Draw a solid cube - vector input.</td/><td></td></tr>
<tr><td>[[Function:ns2m | ns2m]]</td><td>Draw a marker </td><td> </td></tr> <tr><td>[[Function:ns2m | ns2m]]</td><td>Draw a marker </td><td> </td></tr>
<tr><td>[[Function:ns2vm | ns2vm]]</td><td>Draw a marker - vector input </td><td> </td></tr> <tr><td>[[Function:ns2vm | ns2vm]]</td><td>Draw a marker - vector input </td><td> </td></tr>
Line 167: Line 220:
<tr><td>[[Function:ds2bb | ds2bb]]</td><td>Draw a (dynamic) billboard: a textured facet that always faces the camera </td><td> </td></tr> <tr><td>[[Function:ds2bb | ds2bb]]</td><td>Draw a (dynamic) billboard: a textured facet that always faces the camera </td><td> </td></tr>
<tr><td>[[Function:ds2vbb | ds2vbb]]</td><td>Draw a (dynamic) billboard: a textured facet that always faces the camera - vector input </td><td> </td></tr> <tr><td>[[Function:ds2vbb | ds2vbb]]</td><td>Draw a (dynamic) billboard: a textured facet that always faces the camera - vector input </td><td> </td></tr>
 +<tr><td>[[Function:ds2vbbr | ds2vbbr]]</td><td>Draw a (dynamic) billboard texture with specified rotation</td><td> </td></tr>
 +<tr><td>[[Function:ds2vbbp |ds2vbbp ]]</td><td>Draw a "billboard" with aspect ratio - vector input.</td/><td></td></tr>
 +<tr><td>[[Function:ds2vbbpr |ds2vbbpr ]]</td><td>Billboard with aspect ratio, offset in screen coords, and rotation of texture - vector input.</td/><td></td></tr>
<tr><td>[[Function:ds2tb | ds2tb]]</td><td>Draw text that always faces the camera </td><td> </td></tr> <tr><td>[[Function:ds2tb | ds2tb]]</td><td>Draw text that always faces the camera </td><td> </td></tr>
<tr><td>[[Function:ds2vtb | ds2vtb]]</td><td>Draw text that always faces the camera - vector input </td><td> </td></tr> <tr><td>[[Function:ds2vtb | ds2vtb]]</td><td>Draw text that always faces the camera - vector input </td><td> </td></tr>
 +<tr><td>[[Function:ds2protect | ds2protect]]</td><td>Protect dynamic geometry </td><td> </td></tr>
 +<tr><td>[[Function:ds2unprotect | ds2unprotect]]</td><td>Unprotect dynamic geometry </td><td> </td></tr>
 +<tr><td>[[Function:ds2isprotected | ds2isprotected]]</td><td>Query state of dynamic geometry protection</td><td> </td></tr>
</table> </table>
Line 175: Line 234:
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
<tr><td>[[Function:cs2scb | cs2scb]]</td><td>Set the callback function; can be null to cancel callback. </td><td> </td></tr> <tr><td>[[Function:cs2scb | cs2scb]]</td><td>Set the callback function; can be null to cancel callback. </td><td> </td></tr>
 +<tr><td>[[Function:cs2scbx | cs2scbx]]</td><td>Set dynamic callback with initialisation data</td><td> </td></tr>
<tr><td>[[Function:cs2ecb | cs2ecb]]</td><td>Animation state - Enable callback. </td><td> </td></tr> <tr><td>[[Function:cs2ecb | cs2ecb]]</td><td>Animation state - Enable callback. </td><td> </td></tr>
<tr><td>[[Function:cs2dcb | cs2dcb]]</td><td>Animation state - Disable callback. </td><td> </td></tr> <tr><td>[[Function:cs2dcb | cs2dcb]]</td><td>Animation state - Disable callback. </td><td> </td></tr>
Line 180: Line 240:
<tr><td>[[Function:cs2sncb | cs2sncb]]</td><td>Set the function to call when number-keys pressed. </td><td> </td></tr> <tr><td>[[Function:cs2sncb | cs2sncb]]</td><td>Set the function to call when number-keys pressed. </td><td> </td></tr>
<tr><td>[[Function:cs2socb | cs2socb]]</td><td>Register function that will draw direct OpenGL graphics when called. </td><td> </td></tr> <tr><td>[[Function:cs2socb | cs2socb]]</td><td>Register function that will draw direct OpenGL graphics when called. </td><td> </td></tr>
-<tr><td>[[Function:cs2ah | cs2ah]]</td><td>Add a handle to allow interactive picking of objects </td><td> </td></tr>+<tr><td>[[Function:cs2srcb |cs2srcb ]]</td><td>Register when remote control data is received.</td/><td></td></tr>
<tr><td>[[Function:cs2shcb | cs2shcb]]</td><td>Set the handle callback function for when a handle is (de)selected </td><td> </td></tr> <tr><td>[[Function:cs2shcb | cs2shcb]]</td><td>Set the handle callback function for when a handle is (de)selected </td><td> </td></tr>
 +<tr><td>[[Function:cs2sdhcb | cs2sdhcb]]</td><td>Set the handle dragging callback</td><td> </td></tr>
 +<tr><td>[[Function:cs2skcb | cs2skcb]]</td><td>Set the keyboard callback</td><td> </td></tr>
 +<tr><td>[[Function:cs2spcb | cs2spcb]]</td><td>Set the user prompt callback</td><td> </td></tr>
 +<tr><td>[[Function:cs2sptxy |cs2sptxy ]]</td><td>Set the text and position of a prompt.</td/><td></td></tr>
 +<tr><td>[[Function:ds2ah | ds2ah]]</td><td>Add a handle to allow interactive picking of objects </td><td> </td></tr>
 +<tr><td>[[Function:ds2ahx | ds2ahx]]</td><td>Add a handle with a specified texture</td><td> </td></tr>
<tr><td>[[Function:cs2th | cs2th]]</td><td>Toggle the state of a named (dynamic) handle </td><td> </td></tr> <tr><td>[[Function:cs2th | cs2th]]</td><td>Toggle the state of a named (dynamic) handle </td><td> </td></tr>
-<tr><td>[[Function:cs2qhv | cs2qhv]]</td><td>Query whether selection handles are currently visible </td><td> </td></tr>+<tr><td>[[Function:cs2thv | cs2thv]]</td><td>Toggle the current state of selection handles </td><td>
 +<tr><td>[[Function:cs2qhv | cs2qhv]]</td><td>Query whether selection handles are currently visible </td><td> </td></tr></td></tr>
 +</table>
 + 
 +==Panels ==
 +<table border=1 width=100%>
 +<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
 +<tr><td>[[Function:xs2ap | xs2ap]]</td><td>Add a new panel</td><td> </td></tr>
 +<tr><td>[[Function:xs2cp | xs2cp]]</td><td>Select a panel for subsequent geometry calls</td><td> </td></tr>
 +<tr><td>[[Function:xs2mp | xs2mp]]</td><td>Modify location of existing panel</td><td> </td></tr>
 +<tr><td>[[Function:xs2tp | xs2tp]]</td><td>Toggle visibility of panel</td><td> </td></tr>
 +<tr><td>[[Function:xs2lpc | xs2lpc]]</td><td>Link panel cameras together</td><td> </td></tr>
 +<tr><td>[[Function:xs2qcpa | xs2qcpa]]</td><td>Query status of currently selected panel</td><td> </td></tr>
 +<tr><td>[[Function:xs2qpa | xs2qpa]]</td><td>Query whether identified panel is active</td><td> </td></tr>
 +<tr><td>[[Function:xs2qsp | xs2qsp]]</td><td>Query currently selected panel</td><td> </td></tr>
 +<tr><td>[[Function:xs2spp | xs2spp]]</td><td>Set panel frame properties.</td/><td></td></tr>
 +<tr><td>[[Function:ss2qsd | ss2qsd]]</td><td>Query screen panel dimensions</td><td> </td></tr>
</table> </table>
Line 191: Line 273:
<tr><td>[[Function:ss2lt | ss2lt]]</td><td>Load a texture for future (generally repeated) use. </td><td> </td></tr> <tr><td>[[Function:ss2lt | ss2lt]]</td><td>Load a texture for future (generally repeated) use. </td><td> </td></tr>
<tr><td>[[Function:ss2gt | ss2gt]]</td><td>Get a pointer to an identified texture. </td><td> </td></tr> <tr><td>[[Function:ss2gt | ss2gt]]</td><td>Get a pointer to an identified texture. </td><td> </td></tr>
 +<tr><td>[[Function:ss2ct | ss2ct]]</td><td>Create a texture with specified width and height</td><td></td></tr>
<tr><td>[[Function:ss2pt | ss2pt]]</td><td>Reinstall a texture. </td><td> </td></tr> <tr><td>[[Function:ss2pt | ss2pt]]</td><td>Reinstall a texture. </td><td> </td></tr>
 +<tr><td>[[Function:ss2ctt | ss2ctt]]</td><td>Create a transient texture map</td><td> </td></tr>
 +<tr><td>[[Function:ss2ptt | ss2ptt]]</td><td>Reinstall a transient texture map</td><td> </td></tr>
 +<tr><td>[[Function:ss2dt | ss2dt]]</td><td>Delete a texture </td><td> </td></tr>
<tr><td>[[Function:ss2lcm | ss2lcm]]</td><td>Load a colourmap into memory. </td><td> </td></tr> <tr><td>[[Function:ss2lcm | ss2lcm]]</td><td>Load a colourmap into memory. </td><td> </td></tr>
 +<tr><td>[[Function:ss2ltt | ss2ltt]]</td><td>Create a texture with LATEX commands. </td><td> </td></tr>
 +<tr><td>[[Function:ss2ftt | ss2ftt]] </td><td>Use a named freetype font to create a texture map.</td><td></td></tr>
 +<tr><td>[[Function:ns2texpoly3d | ns2texpoly3d]] </td><td>Draw a 3d texture.</td><td></td></tr>
 +<tr><td>[[Function:ss2c3dt | ss2c3dt]] </td><td>Create an empty 3d texture.</td><td></td></tr>
 +<tr><td>[[Function:ss2g3dt | ss2g3dt]] </td><td>Fetch pointer to 3d texture.</td><td></td></tr>
</table> </table>
Line 199: Line 290:
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
<tr><td>[[Function:ss2ssr | ss2ssr]]</td><td>Set sphere resolution. </td><td> </td></tr> <tr><td>[[Function:ss2ssr | ss2ssr]]</td><td>Set sphere resolution. </td><td> </td></tr>
 +<tr><td>[[Function:ss2qsr | ss2qsr]]</td><td>Query the sphere resolution</td><td> </td></tr>
<tr><td>[[Function:ss2srm | ss2srm]]</td><td>Set the rendering mode. </td><td> </td></tr> <tr><td>[[Function:ss2srm | ss2srm]]</td><td>Set the rendering mode. </td><td> </td></tr>
<tr><td>[[Function:ss2qrm | ss2qrm]]</td><td>Get the rendering mode. </td><td> </td></tr> <tr><td>[[Function:ss2qrm | ss2qrm]]</td><td>Get the rendering mode. </td><td> </td></tr>
<tr><td>[[Function:ss2sl | ss2sl]]</td><td>Set the entire lighting environment </td><td> </td></tr> <tr><td>[[Function:ss2sl | ss2sl]]</td><td>Set the entire lighting environment </td><td> </td></tr>
 +<tr><td>[[Function:ss2sfc | ss2sfc]]</td><td>Set the foreground colour</td><td> </td></tr>
 +<tr><td>[[Function:ss2qfc | ss2qfc]]</td><td>Query the foreground colour</td><td> </td></tr>
<tr><td>[[Function:ss2sbc | ss2sbc]]</td><td>Set the background colour. </td><td> </td></tr> <tr><td>[[Function:ss2sbc | ss2sbc]]</td><td>Set the background colour. </td><td> </td></tr>
 +<tr><td>[[Function:ss2qbc | ss2qbc]]</td><td>Query the background colour</td><td> </td></tr>
<tr><td>[[Function:ss2sfra | ss2sfra]]</td><td>Set the fisheye rotation angle (degrees). </td><td> </td></tr> <tr><td>[[Function:ss2sfra | ss2sfra]]</td><td>Set the fisheye rotation angle (degrees). </td><td> </td></tr>
 +<tr><td>[[Function:ss2qfra | ss2qfra]]</td><td>Query fisheye rotation angle</td><td> </td></tr>
 +<tr><td>[[Function:ss2spt | ss2spt]]</td><td>Set the projection type of the device in use</td><td> </td></tr>
<tr><td>[[Function:ss2qpt | ss2qpt]]</td><td>Fetch the projection type of the device in use. </td><td> </td></tr> <tr><td>[[Function:ss2qpt | ss2qpt]]</td><td>Fetch the projection type of the device in use. </td><td> </td></tr>
 +<tr><td>[[Function:ss2qsa | ss2qsa]]</td><td>Query the screen type and settings</td><td> </td></tr>
 +<tr><td>[[Function:ss2qar | ss2qar]]</td><td>Query the aspect ratio</td><td> </td></tr>
 +<tr><td>[[Function:ss2snfe | ss2snfe]]</td><td>Set the clipping plane expansion factor</td><td> </td></tr>
 +<tr><td>[[Function:ss2qnfp | ss2qnfp]]</td><td>Query the near and far clip plane distances</td><td> </td></tr>
</table> </table>
Line 212: Line 313:
<tr><td>[[Function:ss2sc | ss2sc]]</td><td>Set the camera position, up vector and view direction. </td><td> </td></tr> <tr><td>[[Function:ss2sc | ss2sc]]</td><td>Set the camera position, up vector and view direction. </td><td> </td></tr>
<tr><td>[[Function:ss2qc | ss2qc]]</td><td>Query the camera position, up vector and view direction. </td><td> </td></tr> <tr><td>[[Function:ss2qc | ss2qc]]</td><td>Query the camera position, up vector and view direction. </td><td> </td></tr>
 +<tr><td>[[Function:ss2scaf | ss2scaf]]</td><td>Set the camera position, up vector, view direction and rotate point. </td><td> </td></tr>
<tr><td>[[Function:ss2sas | ss2sas]]</td><td>Start/Stop the camera rotation. </td><td> </td></tr> <tr><td>[[Function:ss2sas | ss2sas]]</td><td>Start/Stop the camera rotation. </td><td> </td></tr>
 +<tr><td>[[Function:ss2qas | ss2qas]]</td><td>Query the autospin state</td><td> </td></tr>
<tr><td>[[Function:ss2scf | ss2scf]]</td><td>Set the camera mid/focus point. </td><td> </td></tr> <tr><td>[[Function:ss2scf | ss2scf]]</td><td>Set the camera mid/focus point. </td><td> </td></tr>
 +<tr><td>[[Function:ss2qcf | ss2qcf]]</td><td>Query camera focus point and state</td><td> </td></tr>
 +<tr><td>[[Function:ss2qpr | ss2qpr]]</td><td>Query point to rotate camera about. </td><td> </td></tr>
<tr><td>[[Function:ss2ucf | ss2ucf]]</td><td>Unset the camera mid/focus point - revert to auto mid-point. </td><td> </td></tr> <tr><td>[[Function:ss2ucf | ss2ucf]]</td><td>Unset the camera mid/focus point - revert to auto mid-point. </td><td> </td></tr>
 +<tr><td>[[Function:ss2sca |ss2sca ]]</td><td>Set the camera aperture.</td/><td></td></tr>
 +<tr><td>[[Function:ss2qca |ss2qca ]]</td><td>Query the camera aperture.</td/><td></td></tr>
<tr><td>[[Function:ss2tc | ss2tc]]</td><td>Enable/disable (1,0) camera translation. </td><td> </td></tr> <tr><td>[[Function:ss2tc | ss2tc]]</td><td>Enable/disable (1,0) camera translation. </td><td> </td></tr>
<tr><td>[[Function:ss2sss | ss2sss]]</td><td>Set the spin / interaction speed </td><td> </td></tr> <tr><td>[[Function:ss2sss | ss2sss]]</td><td>Set the spin / interaction speed </td><td> </td></tr>
<tr><td>[[Function:ss2qss | ss2qss]]</td><td>Get the spin / interaction speed </td><td> </td></tr> <tr><td>[[Function:ss2qss | ss2qss]]</td><td>Get the spin / interaction speed </td><td> </td></tr>
 +<tr><td>[[Function:ss2scs |ss2scs ]]</td><td>Set the camera speed.</td/><td></td></tr>
 +<tr><td>[[Function:ss2qcs |ss2qcs ]]</td><td>Query the camera speed.</td/><td></td></tr>
<tr><td>[[Function:ss2qess | ss2qess]]</td><td>Get the eye separation multiplier</td><td> </td></tr> <tr><td>[[Function:ss2qess | ss2qess]]</td><td>Get the eye separation multiplier</td><td> </td></tr>
<tr><td>[[Function:ss2sess | ss2sess]]</td><td>Set the eye separation multiplier </td><td> </td></tr> <tr><td>[[Function:ss2sess | ss2sess]]</td><td>Set the eye separation multiplier </td><td> </td></tr>
</table> </table>
-==Additional Primitives ==+==Image Writing/Fetching ==
<table border=1 width=100%> <table border=1 width=100%>
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
-<tr><td>[[Function:s2chromapts | s2chromapts]]</td><td>Plot points on a sphere using chromastereoscopic colouring for depth </td><td> </td></tr>+<tr><td>[[Function:ss2wtga | ss2wtga]]</td><td>Write the current frame image to a TGA file</td><td> </td></tr>
-<tr><td>[[Function:s2chromacpts | s2chromacpts]]</td><td>Plot cartesian points using chromastereoscopic colouring for depth </td><td> </td></tr>+<tr><td>[[Function:ss2gpix | ss2gpix]]</td><td>Fetch the current RGB buffer</td><td> </td></tr>
</table> </table>
-==Functions in Testing/Development ==+==Miscellaneous Routines ==
<table border=1 width=100%> <table border=1 width=100%>
<tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr> <tr><th width=15%>S2PLOT</th><th width=*>Description</th><th width=15%>PGPLOT</th></tr>
-<tr><td>[[Function:s2latexture | s2latexture]]</td><td>Create a texture with LATEX commands. </td><td> </td></tr>+<tr><td>[[Function:s2iden | s2iden]]</td><td>Write username, date, time and optional string at bottom of plot. </td><td>[http://www.astro.caltech.edu/~tjp/pgplot/subroutines.html#PGIDEN PGIDEN]</td></tr>
-<tr><td>[[Function:ns2vf3a | ns2vf3a]]</td><td>3-vertex facet with transparency </td><td> </td></tr>+<tr><td>[[Function:pushVRMLname | pushVRMLname]] </td><td>Push the given name onto the VRML name stack.</td><td></td></tr>
-<tr><td>[[Function:ns2cis | ns2cis]]</td><td>Create an isosurface object </td><td> </td></tr>+
-<tr><td>[[Function:ns2cisc | ns2cisc]]</td><td>Create an isosurface object with a colour function </td><td> </td></tr>+
-<tr><td>[[Function:ns2dis | ns2dis]]</td><td>Draw an isosurface object </td><td> </td></tr>+
-<tr><td>[[Function:ns2sisl | ns2sisl]]</td><td>Change the level of isosurface </td><td> </td></tr>+
-<tr><td>[[Function:ns2cvr | ns2cvr]]</td><td>Create a volume rendering object </td><td> </td></tr>+
-<tr><td>[[Function:cs2thv | cs2thv]]</td><td>Toggle the current state of selection handles </td><td> </td></tr>+
-<tr><td>[[Function:ss2ct | ss2ct]]</td><td>Create a texture with specified width and height </td><td> </td></tr>+
-<tr><td>[[Function:ss2dt | ss2dt]]</td><td>Delete a texture </td><td> </td></tr>+
-<tr><td>[[Function:ss2txh | ss2txh]]</td><td>Enable/disable/toggle the visibility of the cursor cross-hair </td><td> </td></tr>+
-<tr><td>[[Function:ss2qxh | ss2qxh]]</td><td>Query the visibility of the cursor cross-hair </td><td> </td></tr>+
-<tr><td>[[Function:s2skypa | s2skypa]]</td><td>Draw a skyscraper plot with/without walls</td><td> </td></tr>+
-<tr><td>[[Function:s2impa | s2impa]]</td><td>Draw an impulse plot with/without trunks</td><td> </td></tr>+
-<tr><td>[[Function:ss2spt | ss2spt]]</td><td>Set the projection type of the device in use</td><td> </td></tr>+
-<tr><td>[[Function:ss2sfc | ss2sfc]]</td><td>Set the foreground colour</td><td> </td></tr>+
-<tr><td>[[Function:xs2ap | xs2ap]]</td><td>Add a new panel</td><td> </td></tr>+
-<tr><td>[[Function:xs2cp | xs2cp]]</td><td>Select a panel for subsequent geometry calls</td><td> </td></tr>+
-<tr><td>[[Function:xs2mp | xs2mp]]</td><td>Modify location of existing panel</td><td> </td></tr>+
-<tr><td>[[Function:xs2tp | xs2tp]]</td><td>Toggle visibility of panel</td><td> </td></tr>+
-<tr><td>[[Function:xs2lpc | xs2lpc]]</td><td>Link panel cameras together</td><td> </td></tr>+
-<tr><td>[[Function:s2qci | s2qci]]</td><td>Query the colour index</td><td> </td></tr>+
-<tr><td>[[Function:s2qlw | s2qlw]]</td><td>Query the line width</td><td> </td></tr>+
-<tr><td>[[Function:s2qch | s2qch]]</td><td>Query the character height</td><td> </td></tr>+
-<tr><td>[[Function:s2qah | s2qah]]</td><td>Query the arrow-head style</td><td> </td></tr>+
-<tr><td>[[Function:ss2qsr | ss2qsr]]</td><td>Query the sphere resolution</td><td> </td></tr>+
-<tr><td>[[Function:ss2qbc | ss2qbc]]</td><td>Query the background colour</td><td> </td></tr>+
-<tr><td>[[Function:ss2qfc | ss2qfc]]</td><td>Query the foreground colour</td><td> </td></tr>+
-<tr><td>[[Function:ss2qfra | ss2qfra]]</td><td>Query fisheye rotation angle</td><td> </td></tr>+
-<tr><td>[[Function:ss2qas | ss2qas]]</td><td>Query the autospin state</td><td> </td></tr>+
-<tr><td>[[Function:ss2qar | ss2qar]]</td><td>Query the aspect ratio</td><td> </td></tr>+
-<tr><td>[[Function:ss2qsa | ss2qsa]]</td><td>Query the screen type and settings</td><td> </td></tr>+
-<tr><td>[[Function:ss2qsd | ss2qsd]]</td><td>Query screen panel dimensions</td><td> </td></tr>+
</table> </table>
- 
==Deprecated Function Names (V1.48-V1.62) == ==Deprecated Function Names (V1.48-V1.62) ==
For function names from earlier releases of S2PLOT that have been deprecated, see [[Functions:Deprecated | here]]. For function names from earlier releases of S2PLOT that have been deprecated, see [[Functions:Deprecated | here]].

Current revision


Contents

General

S2PLOTDescriptionPGPLOT
ColoursUseful colour definitions based on PGPlot default settings.
TexturesImportant information on using textures in S2PLOT.
struct XYZData structure for (x,y,z) coordinates.
struct COLOURData structure for (r,g,b) colour indices.

Opening, Closing and Selecting Devices

S2PLOTDescriptionPGPLOT
s2openOpen the S2PLOT device. PGOPEN
s2opendOpen the S2PLOT device (device string version). PGOPEN
s2opendoOpen the S2PLOT device (device string version, ignoring command line arguments). PGOPEN
s2ldevList the available S2PLOT devices on stdout. PGLDEV
s2showDraw the scene and enter interactive mode if interactive is non-zero.
s2dispDraw the scene, but return control when a timeout occurs or when shift-ENTER is pressed.
s2erasErase the geometry. PGERAS

Windows and Viewports

S2PLOTDescriptionPGPLOT
s2svpSet up the part of 3D space that is used for plotting. PGSVP
s2qvpQuery the device viewport range. PGQVP
s2swinSet up the world coordinate range for the device. PGSWIN
s2qwinQuery the world coordinate range. PGQWIN
s2envConvenience function which sets the plotting environment. PGENV

Primitives

S2PLOTDescriptionPGPLOT
s2lineDraw a poly line, n vertices at (xpts, ypts, zpts). PGLINE
s2circxyDraw a circle in the xy plane at a given z coordinate. PGCIRC
s2circxzDraw a circle in the xz plane at a given y coordinate. PGCIRC
s2circyzDraw a circle in the yz plane at a given x coordinate. PGCIRC
s2diskxyDraw a disk in the xy plane at a given z coordinate.
s2diskxzDraw a disk in the xz plane at a given y coordinate.
s2diskyzDraw a disk in the yz plane at a given x coordinate.
s2rectxyDraw a rectangle in the xy plane at a given z coordinate. PGRECT
s2rectxzDraw a rectangle in the xz plane at a given y coordinate. PGRECT
s2rectyzDraw a rectangle in the yz plane at a given x coordinate. PGRECT
s2wcubeDraw a wireframe cube.
s2pt1Draw a single point with a given symbol. PGPT1
s2ptDraw a set of points with a given symbol. PGPT
s2pntsDraw a set of points with different markers. PGPNTS
s2textxyDraw text in the xy plane at a fixed z coordinate. PGTEXT
s2textxzDraw text in the xz plane at a fixed y coordinate. PGTEXT
s2textyzDraw text in the yz plane at a fixed x coordinate. PGTEXT
s2textxyfDraw flipped text in the xy plane at a fixed z coordinate. PGTEXT
s2textxzfDraw flipped text in the xz plane at a fixed y coordinate. PGTEXT
s2textyzfDraw flipped text in the yz plane at a fixed x coordinate. PGTEXT
s2qtxtxyFind the bounding box of text drawn with s2textxy. PGQTXT
s2qtxtxzFind the bounding box of text drawn with s2textxz. PGQTXT
s2qtxtyzFind the bounding box of text drawn with s2textyz. PGQTXT
s2qtxtxyfFind the bounding box of text drawn with s2textxyf. PGQTXT
s2qtxtxzfFind the bounding box of text drawn with s2textxzf. PGQTXT
s2qtxtyzfFind the bounding box of text drawn with s2textyzf. PGQTXT
s2arroDraw an arrow from the point with world-coordinates (x1,y1,z1) to (x2,y2,z2). PGARRO

Drawing Attributes

S2PLOTDescriptionPGPLOT
s2sciSet the pen colour by index. PGSCI
s2qciQuery the colour index
s2scrSet colour representation, ie. define a colour associated with an index. PGSCR
s2qcrQuery colour representation. PGQCR
s2slwSet the linewidth in pixels. PGSLW
s2qlwQuery the line width
s2slsSet the line style.
s2qlsQuery the line style.
s2schSet the character height in "arbitrary" units. PGSCH
s2qchQuery the character height
s2sahSet the style to be used for arrowheads drawn with s2arro. PGSAH
s2qahQuery the arrow-head style
s2twcSet the window clipping mode
s2qwcQuery the window clipping mode
ss2txhEnable/disable/toggle the visibility of the cursor cross-hair
ss2qxhQuery the visibility of the cursor cross-hair
ss2tscEnable/disable 2-d screen coordinates

Axes, Boxes & Labels

S2PLOTDescriptionPGPLOT
s2boxDraw a labelled box around the world space. PGBOX
s2labDraw labels along the edges of bounding box. PGLAB
s2helpSet the custom help string.

XY(Z) Plots

S2PLOTDescriptionPGPLOT
s2errbDraw error bars at the coordinates (xpts[i], ypts[i], zpts[i]). PGERRB
s2funtDraw a curve defined by parametric equations fx(t), fy(t) and fz(t). PGFUNT
s2funtcDraw a curve defined by parametric equations fx(t), fy(t) and fz(t) with colour control. PGFUNT
s2funxyDraw the surface described by the provided function fxy. PGFUNX
s2funxzDraw the surface described by the provided function fxz. PGFUNY
s2funyzDraw the surface described by the provided function fyz. PGFUNX
s2funxyrDraw surface as per s2funxy, but with explicit settings for the colour range mapping.
s2funxzrDraw surface as per s2funxz, but with explicit settings for the colour range mapping.
s2funyzrDraw surface as per s2funyz, but with explicit settings for the colour range mapping.
s2funuvPlot a parametric function (generally a surface) defined by functions fx(u,v), fy(u,v) and fz(u,v).
s2funuvaPlot a parametric function (generally a surface) defined by functions fx(u,v), fy(u,v) and fz(u,v) with transparency.

Images/Surfaces

S2PLOTDescriptionPGPLOT
s2surpDraw a colour surface representation of the 2-dimensional array, data, containing nx * ny values. PGIMAG
s2surpaDraw a colour surface representation of the 2-dimensional array, data, containing nx * ny values. PGIMAG
s2scirSet the range of colour indices used for shading. PGSCIR
s2qcirQuery the colour index range. PGQCIR
s2icmInstall various colour maps. PGSITF

Isosurfaces

S2PLOTDescriptionPGPLOT
ns2cisCreate an isosurface object
ns2ciscCreate an isosurface object with a colour function
ns2disDraw an isosurface object
ns2sislChange the level of isosurface
ns2sisaSet the alpha channel for an isosurface
ns2siscSet the colour for an isosurface
ns2ssq Set general surface quality.
ns2qsq Query general surface quality.

Volume Rendering

S2PLOTDescriptionPGPLOT
ns2cvrCreate a volume rendering object
ns2cvraVolume rendering with alpha function specified.
ds2dvrDraw a volume render object from a dynamic callback.
ns2svrlChange volume rendering data and alpha ranges
ns2svas Set alpha scaling mode.
ns2qvas Query alpha scaling mode.
ns2sevas Explicitly set alpha scaling values.

Misecllaneous Plots

S2PLOTDescriptionPGPLOT
s2vect3Draw a vector map of a 3D data array, with blanking. PGVECT
s2skypaDraw a skyscraper plot with/without walls
s2impaDraw an impulse plot with/without trunks
s2chromaptsPlot points on a sphere using chromastereoscopic colouring for depth
s2chromacptsPlot cartesian points using chromastereoscopic colouring for depth


S2 "Native" Routines

S2PLOTDescriptionPGPLOT
ns2sphereDraw a sphere, with a given centre, radius and colour.
ns2vsphereDraw a sphere, with a given centre, radius and colour - vecotr input.
ns2spheretDraw a textured sphere, with given centre, radius, colour and texture filename.
ns2vspheretDraw a textured sphere, with given centre, radius, colour and texture filename - vector input.
ns2spherexDraw a textured sphere, with given centre, radius, colour and texture ID.
ns2vspherexDraw a textured sphere, with given centre, radius, colour and texture ID - vector input.
ns2vplanett Draw a planet with texture filename.
ns2vplanetx Draw a planet with texture id.
ns2diskDraw an annulus with given centre, inner and out radii, and colour.
ns2vdiskDraw an annulus with given centre, inner and out radii, and colour - vector input.
ns2arcDraw an arc at (px,py,pz) with normal (nx,ny,nz) in current pen (thickness,colour).
ns2varcDraw an arc at (px,py,pz) with normal (nx,ny,nz) in current pen (thickness,colour) - vector input.
ns2erc Draw an arc.
ns2verc Draw an arc - vector input.
ns2textDraw text at a given position, with right and up vectors, a specific colour, and a text string of course.
ns2vtextDraw text at a given position, with right and up vectors, a specific colour, and a text string of course - vector input.
ns2pointDraw a point at the given position and colour.
ns2vpointDraw a point at the given position and colour - vector input.
ns2vnpointDraw multiple points at the given positions with one colour - vector input.
ns2thpointDraw a thick point at given position, in colour and thickness in pixels (not world coords).
ns2vthpointDraw a thick point at given position, in colour and thickness in pixels (not world coords) - vector input.
ns2vpaDraw a thick transparent point.
ns2iIllumination.
ns2viIllumination - vector input.
ns2lineDraw a line from one point to another in a specific colour.
ns2vlineDraw a line from one point to another in a specific colour - vector input.
ns2thlineDraw a thick line from one point to another in a specific colour.
ns2vthlineDraw a thick line from one point to another in a specific colour - vector input.
ns2thwcube Draw a wireframe cube.
ns2vthwcube Draw a wireframe cube - vector input.
ns2clineDraw a coloured line, with colour blended between the two given colours along the line.
ns2vclineDraw a coloured line, with colour blended between the two given colours along the line - vector input.
ns2thcline Draw a thick coloured line.
ns2vthcline Draw a thick coloured line - vector input.
ns2vf33-vertex facet with single colour and automatic normals.
ns2vf3a3-vertex facet with transparency
ns2vf3n3-vertex facet with single colour and normals given.
ns2vf3c3-vertex facet with coloured vertices and autmoatic normals.
ns2vf3nc3-vertex facet with coloured vertices and normals given.
ns2vf3naTransparent 3-vertex facet with coloured vertices, normals and alpha given.
ns2vf3nca3-vertex facet with coloured vertices, normals and alpha per vertex given.
ns2vf44-vertex facet with single colour and automatic normals.
ns2vf4n4-vertex facet with single colour and normals given.
ns2vf4c4-vertex facet with coloured vertices and automatic normals.
ns2vf4nc4-vertex facet with coloured vertices and normals given.
ns2vf4tTextured 4-vertex facet, scale in [0,1]; trans = 'o' or 't'.
ns2vf4xDraw a textured 4-vertex facet using a texture id.
ns2vf4xtDraw a textured 4-vertex facet with alpha channel using a texture id.
ns2scube Draw a solid cube.
ns2vscube Draw a solid cube - vector input.
ns2mDraw a marker
ns2vmDraw a marker - vector input

Dynamic-Only Geometry Functions

S2PLOTDescriptionPGPLOT
ds2bbDraw a (dynamic) billboard: a textured facet that always faces the camera
ds2vbbDraw a (dynamic) billboard: a textured facet that always faces the camera - vector input
ds2vbbrDraw a (dynamic) billboard texture with specified rotation
ds2vbbp Draw a "billboard" with aspect ratio - vector input.
ds2vbbpr Billboard with aspect ratio, offset in screen coords, and rotation of texture - vector input.
ds2tbDraw text that always faces the camera
ds2vtbDraw text that always faces the camera - vector input
ds2protectProtect dynamic geometry
ds2unprotectUnprotect dynamic geometry
ds2isprotectedQuery state of dynamic geometry protection

Callback and Handle System

S2PLOTDescriptionPGPLOT
cs2scbSet the callback function; can be null to cancel callback.
cs2scbxSet dynamic callback with initialisation data
cs2ecbAnimation state - Enable callback.
cs2dcbAnimation state - Disable callback.
cs2tcbAnimation state - Toggle callback.
cs2sncbSet the function to call when number-keys pressed.
cs2socbRegister function that will draw direct OpenGL graphics when called.
cs2srcb Register when remote control data is received.
cs2shcbSet the handle callback function for when a handle is (de)selected
cs2sdhcbSet the handle dragging callback
cs2skcbSet the keyboard callback
cs2spcbSet the user prompt callback
cs2sptxy Set the text and position of a prompt.
ds2ahAdd a handle to allow interactive picking of objects
ds2ahxAdd a handle with a specified texture
cs2thToggle the state of a named (dynamic) handle
cs2thvToggle the current state of selection handles
cs2qhvQuery whether selection handles are currently visible

Panels

S2PLOTDescriptionPGPLOT
xs2apAdd a new panel
xs2cpSelect a panel for subsequent geometry calls
xs2mpModify location of existing panel
xs2tpToggle visibility of panel
xs2lpcLink panel cameras together
xs2qcpaQuery status of currently selected panel
xs2qpaQuery whether identified panel is active
xs2qspQuery currently selected panel
xs2sppSet panel frame properties.
ss2qsdQuery screen panel dimensions

Advanced Texture and Colormap Handling

S2PLOTDescriptionPGPLOT
ss2ltLoad a texture for future (generally repeated) use.
ss2gtGet a pointer to an identified texture.
ss2ctCreate a texture with specified width and height
ss2ptReinstall a texture.
ss2cttCreate a transient texture map
ss2pttReinstall a transient texture map
ss2dtDelete a texture
ss2lcmLoad a colourmap into memory.
ss2lttCreate a texture with LATEX commands.
ss2ftt Use a named freetype font to create a texture map.
ns2texpoly3d Draw a 3d texture.
ss2c3dt Create an empty 3d texture.
ss2g3dt Fetch pointer to 3d texture.

Environment and Rendering Attributes

S2PLOTDescriptionPGPLOT
ss2ssrSet sphere resolution.
ss2qsrQuery the sphere resolution
ss2srmSet the rendering mode.
ss2qrmGet the rendering mode.
ss2slSet the entire lighting environment
ss2sfcSet the foreground colour
ss2qfcQuery the foreground colour
ss2sbcSet the background colour.
ss2qbcQuery the background colour
ss2sfraSet the fisheye rotation angle (degrees).
ss2qfraQuery fisheye rotation angle
ss2sptSet the projection type of the device in use
ss2qptFetch the projection type of the device in use.
ss2qsaQuery the screen type and settings
ss2qarQuery the aspect ratio
ss2snfeSet the clipping plane expansion factor
ss2qnfpQuery the near and far clip plane distances

Advanced Camera Control

S2PLOTDescriptionPGPLOT
ss2scSet the camera position, up vector and view direction.
ss2qcQuery the camera position, up vector and view direction.
ss2scafSet the camera position, up vector, view direction and rotate point.
ss2sasStart/Stop the camera rotation.
ss2qasQuery the autospin state
ss2scfSet the camera mid/focus point.
ss2qcfQuery camera focus point and state
ss2qprQuery point to rotate camera about.
ss2ucfUnset the camera mid/focus point - revert to auto mid-point.
ss2sca Set the camera aperture.
ss2qca Query the camera aperture.
ss2tcEnable/disable (1,0) camera translation.
ss2sssSet the spin / interaction speed
ss2qssGet the spin / interaction speed
ss2scs Set the camera speed.
ss2qcs Query the camera speed.
ss2qessGet the eye separation multiplier
ss2sessSet the eye separation multiplier

Image Writing/Fetching

S2PLOTDescriptionPGPLOT
ss2wtgaWrite the current frame image to a TGA file
ss2gpixFetch the current RGB buffer

Miscellaneous Routines

S2PLOTDescriptionPGPLOT
s2idenWrite username, date, time and optional string at bottom of plot. PGIDEN
pushVRMLname Push the given name onto the VRML name stack.

Deprecated Function Names (V1.48-V1.62)

For function names from earlier releases of S2PLOT that have been deprecated, see here.

Personal tools