hwSurfRev - create a shape specified by revolving a path about the Z axis
| 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 |
| OptFlags | 1I | Optimization flags; see hw for details |
| HasNormals | 1B | True for smooth shading; false for faceted appearance |
| Resolution | 1F | Tesselation multiplier |
| GraphN | 9 |
| LonRange | {0,360} |
| OptFlags | hwDefaultOptFlags |
| HasNormals | True |
| Resolution | 1.0 |
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.
/* 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 );
surfRev->destroy( surfRev );
# A simple surface of revolution
hwSurfRev surfRev {
Data = {1,0, 0.5,1, 1,2}
TwoSided = True
}