NAME
    hwSurfRev - create a shape specified by revolving a path about the Z
    		axis

INHERITS FROM
    hwSurface
    hwOrient

PROPERTIES
    GraphN	1I	The number of rows in the resulting mesh
    Data	*F	The 2-dimensional path to be rotated around
			the Z axis
    LonRange	2F	The starting and ending points of the rotation,
			in degrees from 0 to 360
    OptLevel	1I	Optimization level; see hw(3) for details
    HasNormals	1B	True for smooth shading; false for faceted
    			appearance
    Resolution	1F	Tesselation multiplier

DEFAULTS
    LonRange = {0,360}
    HasNormals = True
    Resolution = 1.0

DESCRIPTION
    The hwSurfRev class creates a surface of revolution based on a
    2-dimensional path.  The path consists of radius, height pairs.  The
    radius is the distance of this point on the path from the Z axis.
    The height is the distance of the point above the XY plane.  This
    path is revolved about the Z axis, starting at LonRange[0] degrees,
    and going to LonRange[1] degrees.  By default, this surface is
    smoothly shaded; set HasNormals to False if you want a faceted
    appearance.

    The default texture coordinates for a surface of revolution have the
    S coordinate increasing from 0.0 to 1.0 around the arc, and T
    increasing from 0.0 to 1.0 from minimum Z to maximum Z.

C EXAMPLE
    /* Draw a surface of revolution */
    hwObject
	surfRev;
    hwFloat
	points[] = {1,0, 0.5,1, 1,2};

    surfRev = hwSurfRev->create( hwSurfRev );
    surfRev->modify( surfRev, hwStrData,
			HW_MAKE_TYPE(HW_TYPE_FLOAT,6), points );
    HW_MODIFY_1B( surfRev, hwStrTwoSided, HW_TRUE );
    surfRev->draw( surfRev, disp );
    surfRev->destroy( surfRev );

OBJECT FILE EXAMPLE
    # A simple surface of revolution
    hwSurfRev surfRev {
	Data = {1,0, 0.5,1, 1,2}
	TwoSided = True
    }

SEE ALSO
    hw(3), hwSurface(3), hwOrient(3)