跳转到内容

setvertexattrib

int  setvertexattrib(int geohandle, string name, int prim_num, int vertex_num, <type>value, string mode="set")

int  setvertexattrib(int geohandle, string name, int prim_num, int vertex_num, <type>value[], string mode="set")

要使用线性顶点索引,请将 prim_num 设置为线性顶点编号,并将 vertex_num 设置为 -1。注意这与大多数其他顶点函数的工作方式不同

成功时返回 geohandle 的值,失败时返回 -1

注意 如果属性不存在,此函数会创建该属性,默认值为零、空字符串或空数组。 如果要控制数值属性的默认值,请在设置属性之前使用 addattrib

如果属性尚不存在,对于具有标准名称(如 Cdorient)的属性,其类型信息会自动设置。 如果要控制数值属性的类型信息,请在设置属性之前使用 setattribtypeinfo

geohandle

要写入的几何体的句柄。目前唯一有效的值是 0geoself,表示节点中的当前几何体。(此参数将来可能用于允许写入其他几何体。)

name

要修改的组的名称。

prim_num

包含要添加/删除的顶点的基元编号。

vertex_num

要添加/删除的顶点在基元上的顶点偏移量。

value

要设置的属性值。

注意,在 VEX 程序中,只能将一种类型写入单个属性。即,不能混合写入浮点数和整数。这可能会令人惊讶,因为像 1 这样的字面量会被视为整数写入,因此如果之前写入的是浮点数,则会被忽略。

mode

(可选)如果提供,此参数控制函数如何修改属性中的任何现有值。

"set"用给定值覆盖属性。
"add"将值添加到属性中。
"min", "minimum"将属性设置为其自身和值中的最小值。
"max", "maximum"将属性设置为其自身和值中的最大值。
"mult", "multiply"将属性乘以值。对于矩阵,这将执行矩阵乘法。对于向量,按分量相乘。
"toggle"切换属性,与源值无关。适用于切换组成员资格。
"append"适用于字符串、字典和数组属性。对于字符串和数组,将源值追加到原始值的末尾。对于字典,用源字典更新原始字典,替换任何匹配的键。