section of routines in dlist3d.i

functions in dlist3d.i -

 
 
 
clear3d


             clear3d  
 
     Clear the 3D "cached" and "direct" display lists.  
     Clear the screen.  
 
 
 
clear3d_cache


             clear3d_cache  
 
     Clear the 3D "cached" display list.  
 
 
 
clear3d_direct


             clear3d_direct  
 
     Clear the 3D "direct" display list.  
 
 
 
CollapseTri


             CollapseTri(tris)  
 
     This function is used to collapse an arbitrary number  
     of triangle arrays into a single triangle array.  
     tris must be a TriArrayGrp (which can point to another  
     TriArrayGrp, etc.).  
SEE ALSO: pltrilists3d,   sortTri  
 
 
 
draw3d


             draw3d  
 
     Draw the current 3D "cached" and "direct" display lists.  
     (Ordinarily triggered automatically when the drawing changes.)  
 
 
 
get_centroid3d


             get_centroid3d(xyz, nxyz)  
          or get_centroid3d(xyz)  
 
     return 3D centroids for polygons with vertices XYZ.  If NXYZ is  
     specified, XYZ should be 3-by-sum(nxyz), with NXYZ being the  
     list of numbers of vertices for each polygon (as for the plfp  
     function).  If NXYZ is not specified, XYZ should be a quadrilateral  
     mesh, 3-by-ni-by-nj (as for the plf function).  In the first case,  
     the return value is 3-by-numberof(NXYZ); in the second case, the  
     return value is 3-by-(ni-1)-by-(nj-1).  
     The centroids are constructed as the mean value of all vertices  
     of each polygon.  
SEE ALSO: get_normal3d,   get_light3d  
 
 
 
get_lims3d


             get_lims3d  
 
     Compute and return a bounding box containing everything   
     in the "cached" 3D display list.  
 
 
 
get_normal3d


             get_normal3d(xyz, nxyz)  
          or get_normal3d(xyz)  
 
     return 3D normals for polygons with vertices XYZ.  If NXYZ is  
     specified, XYZ should be 3-by-sum(nxyz), with NXYZ being the  
     list of numbers of vertices for each polygon (as for the plfp  
     function).  If NXYZ is not specified, XYZ should be a quadrilateral  
     mesh, 3-by-ni-by-nj (as for the plf function).  In the first case,  
     the return value is 3-by-numberof(NXYZ); in the second case, the  
     return value is 3-by-(ni-1)-by-(nj-1).  
     The normals are constructed from the cross product of the lines  
     joining the midpoints of two edges which as nearly quarter the  
     polygon as possible (the medians for a quadrilateral).  No check  
     is made that these not be parallel; the returned "normal" is  
     [0,0,0] in that case.  Also, if the polygon vertices are not  
     coplanar, the "normal" has no precisely definable meaning.  
SEE ALSO: get_centroid3d  
 
 
 
getpix3d


             getpix3d  
 
     Read pixels from an OpenGL window.  
 
 
 
light3d


             light3d, ambient=a_level, diffuse=d_level,  
             specular=s_level, spower=n, sdir=xyz  
 
     Sets lighting properties for 3D shading effects.  
     A surface will be shaded according to its orientation  
     relative to the viewing direction.  
     The ambient level A_LEVEL is a light level (arbitrary units)  
     that is added to every surface independent of its orientation.  
     The diffuse level D_LEVEL is a light level which is proportional  
     to cos(theta), where theta is the angle between the surface  
     normal and the viewing direction, so that surfaces directly  
     facing the viewer are bright, while surfaces viewed edge on are  
     unlit (and surfaces facing away, if drawn, are shaded as if they  
     faced the viewer).  
     The specular level S_LEVEL is a light level proportional to a high  
     power spower=N of 1+cos(alpha), where alpha is the angle between  
     the specular reflection angle and the viewing direction.  The light  
     source for the calculation of alpha lies in the direction XYZ (a  
     3 element vector) in the viewer's coordinate system at infinite  
     distance.  
   EXAMPLES:  
     light3d, diffuse=.1, specular=1., sdir=[0,0,-1]  
       (dramatic "tail lighting" effect)  
     light3d, diffuse=.5, specular=1., sdir=[1,.5,1]  
       (classic "over your right shoulder" lighting)  
 
 
 
lookat3d


             lookat3d(eye,center,up)  
 
     Sets the 3D viewing transform so that the viewer is  
     at "eye, the center of the view is "center", and   
     "up" points upward.  
SEE ALSO: stdview3,   prtview3  
 
 
 
palette3d


             palette3d, palette_name  
 
     Select a color palette to be used, for example,  
	 to color slices through 3D meshes.  
	 Uses the same palettes as the 2D graphics package.  
SEE ALSO: palette  
 
 
 
plcell3d


             plcell3d(corners, color)  
 
     Draws a cell array in 3D using OpenGL.  
SEE ALSO: plpoly3d,   lookat3d,   light3d,   win3d  
 
 
 
plcolrsurf3d


             plcolrsurf3d(xyz, norm, color, flip=)  
 
     Draws a lit 2D mesh in 3D using OpenGL.  
     Color varies across the mesh and is specified at mesh vertices.  
SEE ALSO: plsurf3d,   plm3d,   plpoly3d,   plcell3d,  
lookat3d,   light3d,   win3d  
 
 
 
plf3d


             plf3d(xyz, color)  
 
     Fills a logically 2D mesh in 3D using OpenGL.  
     color is (3 or 4)-by-(nx-1)-by-(ny-1).  
     The initial index of color is 3 (for RGB colors) or 4 (for   
     translucent RGBA colors).  
     Each zone is filled with a single color.  
     The surface does not "reflect" light, so there will not be any shiny highlights.  
SEE ALSO: plm3d,   plsurf3d,   plcolrsurf3d,   plcell3d,  
lookat3d,   light3d,   win3d  
 
 
 
plglyphs3d


             plglyphs3d(xyz, scal, theta, phi, color)  
 
     Draws a set of Glyphs using OpenGL. The glyphs are located  
     at xyz and have color "color". The base glyph size is multiplied  
     scal and the glyph axis points in the direction (theta, phi).  
SEE ALSO: plpoints3d,   lookat3d,   light3d,   win3d  
 
 
 
pllines3d


             pllines3d(xyz, color)  
 
     Draws a Polyline in 3D using OpenGL.  
SEE ALSO: plpoly3d,   plcell3d,   lookat3d,   light3d,   win3d  
 
 
 
plm3d


             plm3d(xyz, color)  
 
     Draws a logically 2D mesh in 3D using OpenGL.  
SEE ALSO: plpoly3d,   plcell3d,   lookat3d,   light3d,   win3d  
 
 
 
plpoints3d


             plpoints3d(xyz, color)  
 
     Draws a set of Points in 3D using OpenGL.  
SEE ALSO: plpoly3d,   plcell3d,   lookat3d,   light3d,   win3d  
 
 
 
plpoly3d


             plpoly3d(nv, xyz, color, norm, draw_edge=)  
 
     Draws a set of filled polygons in 3D using OpenGL.  
SEE ALSO: plcell3d,   lookat3d,   light3d,   win3d  
 
 
 
plqarray3d


             plqarray3d(xyz, norm, color, nquad, draw_edge=)  
 
     Draws a Quadrangle Array in 3D using OpenGL.  
SEE ALSO: pltarray3d,   plqstrips3d,   lookat3d,   light3d,  
win3d  
 
 
 
plqstrips3d


             plqstrips3d(nv, xyz, color, norm, draw_edge=)  
 
     Draws a set of quad-strips in 3D using OpenGL.  
     xyz is 3-by-2-by-nvert.  
     nv is the number of vertices per quad strip (i.e. the length   
     of the run in the last index of xyz).  
     nvert= sum(nv)  
     nstrip= numberof(nv);  
     nquad= nvert-nstrip;  
     color is 3-by-ncolor. ncolor can be 1 (all quads the same color),  
     numberof(nv)  (one color per strip), or  
     nquad (one color per quad). color will always be increased in  
     size to nquad before being stored.  
     norm can be 3-by-nquad for flat shading or 3-by-2-by-nvert  
     for smooth shading. If norm is not specified, lighting  
     will not be used (the specified color will be used directly).  
SEE ALSO: pltrilists3d,   pltstrips3d,   lookat3d,   light3d,  
win3d  
 
 
 
plsurf3d


             plsurf3d(xyz, norm, color, flip=)  
 
     Draws a lit 2D mesh in 3D using OpenGL.  
SEE ALSO: plcolrsurf3d,   plm3d,   plpoly3d,   plcell3d,  
lookat3d,   light3d,   win3d  
 
 
 
pltarray3d


             pltarray3d(xyz, norm, color, ntri, cubemap, emit, draw_edge=)  
 
     Draws a Triangle Array in 3D using OpenGL.  
     pltrilists3d is normally called instead of this  
     lower level routine.  
     If cubemap is non-zero, specular lighting is handled by   
     cube map textures.  
SEE ALSO: pltrilists3d,   lookat3d,   light3d,   win3d  
 
 
 
pltex2dvol


             pltex2dvol  
 
     Draws a volume visualization of a 3D cell array using OpenGL.  
     Uses 2D textures.  
SEE ALSO: pltex3dvol,   lookat3d,   light3d,   win3d,  
pltex3dvol  
 
 
 
pltex3dvol


             pltex3dvol  
 
     Draws a volume visualization of a 3D cell array using OpenGL.  
     Uses 3D textures.  
SEE ALSO: pltex2dvol,   lookat3d,   light3d,   win3d  
 
 
 
pltivarray3d


             pltivarray3d  
 
     Draws a Triangle Array in 3D using OpenGL.  
     Triangles are specified using indices into a list of vertices,  
     normals, and colors.  
     pltrilists3d is normally called instead of this  
     lower level routine.  
SEE ALSO: pltarray3d,   lookat3d,   pltrilists3d  
 
 
 
pltivstrips3d


             pltivstrips3d(nv, ndx, xyz, norm, color, draw_edge=)  
 
     Draws a set of triangle-strips in 3D using OpenGL.  
     pltrilists3d is normally called instead of this   
     lower level routine.  
     xyz and norm are 3-by-nvert.  
     ndx holds the vertex numbers (indices into xyz or norm)  
     of the vertices in the tristrips.  
     nv is the number of vertices per triangle strip (i.e. the length   
     of the run in the last index of ndx).  
     nvert= sum(nv)  
     nstrip= numberof(nv);  
     ntri= nvert-2*nstrip;  
     color is normally 3-by-ncolor. ncolor can be 1 (all tris the   
     same color), numberof(nv)  (one color per strip), or  
     ntri (one color per triangle). color will always be increased in  
     size to ntri before being stored.  
     If color is 4-by-ncolor, the 4th element is the alpha value.   
SEE ALSO: pltrilists3d,   pltristrips3d,   lookat3d,  
light3d,   win3d  
 
 
 
pltrilists3d


             pltrilists3d(tris,flip=,offset=,cubemap=,emit=)  
 
     This function is used to display an arbitrary number  
     of triangle strips or arrays in 3D. An example is the   
     output of an iso-surface routine.  
     tris is either a TriStripGrp, a TriArrayGrp, or a TriVertexGrp.  
     flip, if present, is a 3 element vector that multiplies  
     the x, y, and z coords of every point and normal.  
     Ordinarily, all elements are either +1 or -1.  
     If cubemap is non-zero, perform specular lighting using  
     cube map textures.  
     A TriStripGrp is composed of several triangle strips.  
     It has a pointer to the next TriStripGrp.  
     A TriArrayGrp is an array of triangles with a pointer to the  
     next TriArrayGrp.   
     A TriVertexGrp is like a TriArrayGrp except that the  
     vertices and normals have been gathered into vectors   
     and each triangle is specified by three indices  
     into these vectors.  
SEE ALSO: plcell3d,   lookat3d,   light3d,   win3d  
 
 
 
pltstrips3d


             pltstrips3d(nv, xyz, color, norm, draw_edge=)  
 
     Draws a set of triangle-strips in 3D using OpenGL.  
     pltrilists3d is normally called instead of this   
     lower level routine.  
     xyz is 3-by-nvert.  
     nv is the number of vertices per triangle strip (i.e. the length   
     of the run in the last index of xyz).  
     nvert= sum(nv)  
     nstrip= numberof(nv);  
     ntri= nvert-2*nstrip;  
     color is normally 3-by-ncolor. ncolor can be 1 (all tris the   
     same color), numberof(nv)  (one color per strip), or  
     ntri (one color per triangle). color will always be increased in  
     size to ntri before being stored.  
     If color is 4-by-ncolor, the 4th element is the alpha value.   
     norm can be 3-by-ntri for flat shading or 3-by-nvert  
     for smooth shading. If norm is not specified, lighting  
     will not be used (the specified color will be used directly).  
SEE ALSO: pltrilists3d,   lookat3d,   light3d,   win3d  
 
 
 
pltvarray3d


             pltvarray3d  
 
     Draws a Triangle Array in 3D using OpenGL.  
     Triangles are specified using indices into a list of vertices,  
     normals, and colors.  
     pltrilists3d is normally called instead of this  
     lower level routine.  
SEE ALSO: pltarray3d,   pltivarray3d,   lookat3d,  
pltrilists3d  
 
 
 
prtview3d


             prtview3d  
 
     Print the parameters for the current viewing   
     transformation.  
SEE ALSO: lookat3d,   stdview3  
 
 
 
putpix3d


             putpix3d  
 
     Draws pixels into an OpenGL window.  
SEE ALSO: clear3  
 
 
 
SortTri


             SortTri(tris)  
 
     This function performs a depth sort of a triangle  
     array. It uses the current viewpoint.  
     The resulting triangle array should display correctly  
     with translucency when viewed from the same point.  
     Rotating the scene may lead to incorrect results  
     if the triangles are translucent.  
     tris must be a TriArrayGrp.  
SEE ALSO: pltrilists3d,   collapseTri  
 
 
 
stdview3d


             stdview3d  
 
     Sets the 3D viewing transform to a default value that  
	 makes the whole scene visible.  
SEE ALSO: lookat3d,   prtview3d