Functions | |
void | Edit_Cylinder (HC_KEY key, const HC_POINT *p1, const HC_POINT *p2, double radius, const char *cap) |
void Edit_Cylinder | ( | HC_KEY | key, | |
const HC_POINT * | p1, | |||
const HC_POINT * | p2, | |||
double | radius, | |||
const char * | cap | |||
) |
Edits a cylinder object as it sits in the database without deleting and reinserting.
key | - Key to a cylinder object. | |
p1 | - Center of the first end of the cylinder. | |
p2 | - Center of the second end of the cylinder. | |
radius | - Radius of the cylinder. | |
cap | - String specifying which ends to cap, either "first", "second", "none", or "both" |
Cylinders were introduced as a primitive primarily to allow for a higher-performance way to represent piping systems than what was previously available via shells. The benefits come in the form of both improved rendering speed and lower memory footprint.
Standard edge and face visibilities affect cylinders. When edges are visible, the edges are simply two circles at the ends connected by lengthwise struts. The edges around the end-caps are considered hard edges, and the lengthwise struts can be silhouette edges under the right viewing angles. When markers are visible, there will be one marker placed in the center of each end cap.
Like shells, cylinders have LOD representations. Unlike shells, however, the only form of LOD allowed on cylinders is simple changes in the tessellation resolution (i.e. it is not possible to use HC_Open_LOD to insert arbitrary geometry or modify the contents of a LOD). The tessellation resolutions of cylinders is given as an array of integers, one for every LOD level (see Set_Rendering_Options() ). If the tessellation level is set to 0, the cylinder will be drawn as a line along its axis. If set to -1, it will be suppressed completely.