gluTessProperty 函数

gluTessProperty 函数设置分割对象的 属性。

语法

void WINAPI gluTessProperty(
   GLUtesselator *tess,
   GLenum        which,
   GLdouble      value
);

参数

苔 丝

(使用 gluNewTess) 创建的细化对象。

其中

要设置的属性值。 以下值有效:GLU_TESS_WINDING_RULE、GLU_TESS_BOUNDARY_ONLY 和 GLU_TESS_TOLERANCE。

含义
GLU_TESS_WINDING_RULE
确定多边形的哪些部分位于内部。 值参数可以设置为下列值之一:GLU_TESS_WINDING_ODD、GLU_TESS_WINDING_NONZERO、GLU_TESS_WINDING_POSITIVE、GLU_TESS_WINDING_NEGATIVE或GLU_TESS_WINDING_ABS_GEQ_TWO。
若要了解绕组规则的工作原理,首先请考虑输入轮廓将平面分区为多个区域。 缠绕规则确定这些区域中的哪一个位于多边形内。
对于单轮廓 C,点 x 的绕组数只是我们在 x 周围绕行一次的有符号旋转数 (其中逆时针为正) 。 当有多个轮廓时,将求和各个绕组数。 此过程将有符号整数值与平面中的每个点 x 相关联。 请注意,单个区域中所有点的绕组数相同。
如果卷绕编号属于至少两个) (奇数、非零值、正值、负值或绝对值,则绕组规则将区域分类为“内部”。 GLU 1.2 之前的上一个 GLU 细化器 () 使用了“奇数”规则。 “非零”规则 (GLU_TESS_WINDING_NONZERO) 是定义内部的另一种常见方法。 其他三个规则 (GLU_TESS_WINDING_POSITIVE GLU_TESS_WINDING_NEGATIVE GLU_TESS_WINDING_ABS_GEQ_TWO) 可用于多边形 CSG 操作。
GLU_TESS_BOUNDARY_ONLY
指定一个布尔值, (值设置为 GL_TRUE 或 GL_FALSE) 。 将值设置为 GL_TRUE 时,将返回一组分隔多边形内部和外部的封闭轮廓,而不是细化。 外部轮廓相对于法线逆时针方向;内部轮廓是顺时针方向的。 GLU_TESS_BEGIN和GLU_TESS_BEGIN_DATA回调为每个轮廓使用类型GL_LINE_LOOP。
GLU_TESS_TOLERANCE
指定合并特征的容忍度,以减小输出的大小。 例如,两个彼此非常接近的顶点可能被单个顶点替换。 容差乘以任何输入顶点的最大坐标数量级;这指定任何特征作为单个合并操作的结果可以移动的最大距离。 如果单个功能参与多个合并操作,则移动的总距离可能会更大。
功能合并是完全可选的;容忍度只是一个提示。 实现在某些情况下可以自由合并,而在某些情况下则不合并,或者完全不合并功能。 默认容差为零。
当前实现仅当顶点完全重合时才合并顶点,而不考虑当前容差。 仅当实现无法区分顶点位于边缘的哪一侧时,顶点才会拼接成边缘。 仅当两个终结点相同时,才会合并两个边缘。

value

指示属性的值。

返回值

此函数不返回值。

注解

gluTessProperty 函数控制存储在分割对象中的属性。 这些属性会影响多边形的解释和呈现方式。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Glu.h

Glu32.lib
DLL
Glu32.dll

另请参阅

gluGetTessProperty

gluNewTess