### Contour Functions

##### mi_get_contour_line

miBoolean mi_get_contour_line(
miContour_endpoint *p1,
miContour_endpoint *p2);

This function can be used by a contour
output shader to get end points
of a **contour line**
segment. When *mi_get_contour_line*
returns `miFALSE`, there are no more contour lines.

##### mi_add_contour_lines

void mi_add_contour_lines(
miContour_endpoint p1[],
miContour_endpoint p2[],
int n);

This is another function available to contour output shaders. It
adds extra contour lines to the
ones that were found during rendering. *p1* is the list of
first endpoints, *p2* is the list of second endpoints, and
*n* is the number of contour lines to be added (the number of
elements in the lists). This can for example be used by a
combination of two contour output shaders: the first one adds some
extra contour lines, and the second one renders all contour lines
(both the contour lines found during rendering and the extra
contour lines added using *mi_add_contour_lines*). Or, as
another example, the first contour output shader can read all
contour lines, analyze them, and write back a subset of them (or
even some altogether different contours) with
*mi_add_contour_lines*.

Copyright © 1986, 2013
NVIDIA Corporation