Functions | |
void | Set_Polygonal_Clip_Region (int count, const HC_POINT *points, const char *options) |
void | DSet_Polygonal_Clip_Region (int count, const HC_DPOINT *points, const char *options) |
void | UnSet_Clip_Region (void) |
void Set_Polygonal_Clip_Region | ( | int | count, |
const HC_POINT * | points, | ||
const char * | options | ||
) |
Defines a polygonal region in the segment tree, where all geometry within and beneath that segment will be drawn either clipped to that region or masked out.
count | - Number of (x,y,z) triplets in points. |
points | - The set of (x,y,z) triplets that define the polygonal clip region. |
options | - A comma separated list of the desired settings. |
This function allows you to define a polygonal region on a segment such that all geometry in or beneath it will be clipped. The options string allows you to specify whether the region is a clip region (in which case all the geometry "outside" the polygon will not be drawn) or a mask region (in which case all the geometry "inside" the polygon will not be drawn).
The list of valid choices for the options string:
window | world | object space
Specify the coordinate space. Valid options are either 'window', 'world', or 'object space'. 'window' means that the coordinates specified in points array are in window space while 'world' indicate the values specifed in the points array are in world space. If 'object space', then the clip region will be transformed by the object modelling matrix.
type [= clip|mask]
If "type=clip", then everything in and below the currently opened segment which lies outside the defined polygon will not be drawn. If the "type=mask", then everything in and below the currently opened segment which lies inside the defined polygon will not be drawn.
If nothing is specified in the options string, then the region will be a clip region and the points will be assumed to be in window space.
Where possible, display drivers make use of any hardware stencil buffers to accelerate this feature. Performance when using this feature is therefore greatly enhanced if the 'stencil' driver option is not turned off prior to the first update (it is on by default). Where not possible, some geometry may overstep the boundaries slightly. For example, text can often only be clipped away whole characters at a time, so parts of character may go outside.
Both concave and convex regions are supported.
void DSet_Polygonal_Clip_Region | ( | int | count, |
const HC_DPOINT * | points, | ||
const char * | options | ||
) |
Similar to Set_Polygonal_Clip_Region(), but operates on double-precision data.
count | - Number of (x,y,z) triplets in points. |
points | - The set of (x,y,z) triplets that define the polygonal clip region. |
options | - A comma separated list of the desired settings. |
void UnSet_Clip_Region | ( | void | ) |
Removes all clip regions set by a previous call to Set_Polygonal_Clip_Region()
No additional details. See Set_Polygonal_Clip_Region()