NCL Home > Documentation > Functions > Graphics routines


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

Available in version 4.3.1 and later.


	procedure tdstri (
		u            [*] : float,    
		v            [*] : float,    
		w         [*][*] : 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 nv x nu, which, along with u and v, defines the surface to be drawn.


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 tdstri. If ntri becomes equal to mtri, tdstri does not take an error exit; instead, it just stops generating triangles. Therefore, it's a good idea, after calling tdstri, 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.


An input integer scalar specifying the index of the rendering style to to be used for the triangles added to the triangle list by this call. See the low-level "Rendering-Style Arrays" section for descriptions of the internal parameters defining the rendering styles.


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 TDSTRI 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, tditri, tdmtri, tdttri, tdctri, tdotri, tdsort

Simplified interface routines: tdez2d, tdez3d


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