NCL Home > Documentation > Functions > Graphics routines


Adds triangles defining an isosurface to a triangle list (for use with selected TDPACK routines).

Available in version 4.3.1 and later.


	procedure tditri (
		u            [*] : float,    
		v            [*] : float,    
		w            [*] : float,    
		f      [*][*][*] : float,    
		fiso         [1] : float,    
		rtri     [*][10] : float,    
		ntri         [1] : integer,  
		render_index [1] : integer   



A real array dimensioned nu which must be monotonically increasing.


A real array dimensioned nv which must be monotonically increasing.


A real array dimensioned nw which must be monotonically increasing.


A real array dimensioned nw x nv x nu, which, along with u, v, and w, defines the isosurface to be drawn.


A scalar float cutoff value defining the isosurface. The purpose of a call to tditri is to generate a set of triangles separating the 3-space box within which the function f is defined into two volumes: one where the value of f is less than or equal to fiso and another where the value of f is greater than fiso.


A float input/output array, dimensioned mtri x 10, in which a list of triangles has been stored.


An input/output integer specifying the number of triangles currently in the triangle list.. It is the user's responsibility to zero this initially and its value is increased by each call to a triangle-generating routine like tditri. If ntri becomes equal to mtri, tditri does not take an error exit; instead, it just stops generating triangles. Therefore, it's a good idea, after calling tditri, to check the value of ntri against the dimension mtri; if they're equal, it probably means that the triangle list filled up and that the rendered surface will be incomplete.


This routine is part of the low-level TDPACK package, which is a group of Fortran and C callable routines for projecting objects from a 3-dimensional coordinate system having U, V, and W axes to a 2-dimensional projection plane having X and Y axes and/or for drawing the projections of those objects. This can be referred to somewhat loosely as "drawing objects in three dimensions".

Please see the documentation on TDITRI for a full description of this procedure.

See Also

Initialization routines: tdinit, tdpara, tdclrs

Parameter access routines: tdgetp, tdgtrs, tdsetp, tdstrs

Point transforming routines: tdprpt, tdprpa, tdprpi

Line drawing routines: tdline, tdlndp, tdlnpa, tdlpdp, tdcurv, tdcudp

Grid drawing routines: tdgrds, tdgrid

Label drawing routines: tdlbls, tdlbla, tdlblp, tdplch

Surface drawing routines: tddtri, tdstri, tditri, tdmtri, tdttri, tdctri, tdotri, tdsort

Simplified interface routines: tdez2d, tdez3d


See example 4 on the three-dimensional graphics applications page.