MQObject 包含顶点和面。
属性#
| 读取(get) | 写入(set) | 类型 | 名称 | 说明 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| x | x | string | name | 对象名称 | ||||||||||||
| x | long | id | 对象唯一 ID | |||||||||||||
| x | x | string | typeName | 对象类型
|
||||||||||||
| x | int | numVertex | 顶点数量 | |||||||||||||
| x | int | numFace | 面数量 | |||||||||||||
| x | list<MQVertex> | vertex | 顶点列表 | |||||||||||||
| x | list<MQFace> | face | 面列表 | |||||||||||||
| x | x | int | visible | 对象可见性
|
||||||||||||
| x | x | int | lock | 对象锁定状态
|
||||||||||||
| x | x | int | select | 对象选择状态
|
||||||||||||
| x | x | MQColor | color | 顶点和边的颜色 | ||||||||||||
| x | x | int | colorValid | color 属性是否有效
|
||||||||||||
| x | x | int | shading | 启用平滑着色
|
||||||||||||
| x | x | float | smoothAngle | 平滑角度 | ||||||||||||
| x | x | int | patchType | 细分曲面类型
|
||||||||||||
| x | x | int | patchSegment | 细分曲面的分段数 | ||||||||||||
| x | x | int | patchTriangle | Catmull-Clark 细分曲面的三角形划分方式
|
||||||||||||
| x | x | int | patchSmoothTriangle | OpenSubdiv 细分曲面的三角形平滑方式
|
||||||||||||
| x | x | int | patchLimitSurface | OpenSubdiv 细分曲面的极限曲面
|
||||||||||||
| x | x | int | patchMeshInterp | OpenSubdiv 细分曲面开放边界的插值方式
|
||||||||||||
| x | x | int | patchUVInterp | OpenSubdiv 细分曲面 UV 边界的插值方式
|
||||||||||||
| x | x | int | mirrorType | 镜像类型
|
||||||||||||
| x | x | int | mirrorAxisX | 沿 X 轴应用镜像
|
||||||||||||
| x | x | int | mirrorAxisY | 沿 Y 轴应用镜像
|
||||||||||||
| x | x | int | mirrorAxisZ | 沿 Z 轴应用镜像
|
||||||||||||
| x | x | int | mirrorAxisLocal | 按局部坐标应用镜像
|
||||||||||||
| x | x | float | mirrorDistance | 镜像的最大连接距离。 | ||||||||||||
| x | x | int | latheType | 旋转体类型
|
||||||||||||
| x | x | int | latheAxis | 旋转体轴向
|
||||||||||||
| x | x | int | latheSegment | 旋转体分段数 | ||||||||||||
| x | x | int | depth | 层级深度 | ||||||||||||
| x | x | int | folding | 层级折叠状态 | ||||||||||||
| x | x | MQPoint | scaling | 局部坐标的缩放系数 | ||||||||||||
| x | x | MQAngle | rotation | 局部坐标的旋转角度 | ||||||||||||
| x | x | MQPoint | translation | 局部坐标的平移量 | ||||||||||||
| x | x | float | lightValue | 灯光亮度 | ||||||||||||
| x | x | int | lightAttenuation | 灯光衰减
|
||||||||||||
| x | x | float | lightFalloffEnd | 衰减终止距离 | ||||||||||||
| x | x | float | lightFalloffHalf | 衰减至一半的距离 | ||||||||||||
| x | x | list<int> | uvChannels | UV 通道 ID 列表 | ||||||||||||
| x | int | activeUVChannel | 当前活动 UV 通道 ID |
方法#
| 成员 | 说明 |
|---|---|
| clone | 复制对象。 |
| merge | 合并两个对象。 |
| freeze | 将细分曲面、镜像等属性转换为多边形。 |
| clear | 清除全部顶点和面。 |
| addVertex | 添加顶点。 |
| addVertex | 添加顶点。 |
| deleteVertex | 删除顶点。 |
| addFace | 添加面。 |
| insertFace | 在指定索引位置插入面。 |
| deleteFace | 删除面。 |
| invertFace | 反转面的方向。 |
| optimizeVertex | 合并指定距离范围内的顶点。 |
| compact | 压缩顶点和面的索引。 |
| getVertexIndexFromUniqueID | 根据唯一 ID 获取顶点索引。 |
| getFaceIndexFromUniqueID | 根据唯一 ID 获取面索引。 |
| allocUserData | 为对象中的用户数据分配内存区域。 |
| freeUserData | 释放已为用户数据分配的内存区域。 |
| getUserDataInt | 从对象用户数据中获取整数值(4 字节)。 |
| getUserDataFloat | 从对象用户数据中获取浮点值(4 字节)。 |
| getUserDataString | 从对象用户数据中获取字符串。 |
| setUserDataInt | 向对象用户数据设置整数值(4 字节)。 |
| setUserDataFloat | 向对象用户数据设置浮点值(4 字节)。 |
| setUserDataString | 向对象用户数据设置字符串。 |
| allocVertexUserData | 为顶点中的用户数据分配内存区域。 |
| freeVertexUserData | 释放已为用户数据分配的内存区域。 |
| getVertexUserDataInt | 从顶点用户数据中获取整数值(4 字节)。 |
| getVertexUserDataFloat | 从顶点用户数据中获取浮点值(4 字节)。 |
| getVertexUserDataString | 从顶点用户数据中获取字符串。 |
| setVertexUserDataInt | 向顶点用户数据设置整数值(4 字节)。 |
| setVertexUserDataFloat | 向顶点用户数据设置浮点值(4 字节)。 |
| setVertexUserDataString | 向顶点用户数据设置字符串。 |
| allocFaceUserData | 为面中的用户数据分配内存区域。 |
| freeFaceUserData | 释放已为用户数据分配的内存区域。 |
| getFaceUserDataInt | 从面用户数据中获取整数值(4 字节)。 |
| getFaceUserDataFloat | 从面用户数据中获取浮点值(4 字节)。 |
| getFaceUserDataString | 从面用户数据中获取字符串。 |
| setFaceUserDataInt | 向面用户数据设置整数值(4 字节)。 |
| setFaceUserDataFloat | 向面用户数据设置浮点值(4 字节)。 |
| setFaceUserDataString | 向面用户数据设置字符串。 |
| activateUVChannel | 激活 UV 通道。 |
| addUVChannel | 添加 UV 通道。 |
| deleteUVChannel | 删除 UV 通道。 |
clone #
复制对象。
- 返回值:
MQObject - 复制得到的对象
merge(source)#
freeze([flag])#
将细分曲面、镜像等属性转换为多边形。
- 参数:
int flag - 标志(可组合)
[1] 细分曲面
[2] 镜像
[4] 旋转体
[-1] 全部
- 返回值:
int - 结果
[0] 失败
[1] 成功
clear #
清除全部顶点和面。
addVertex(point)#
addVertex(x, y, z)#
添加顶点。
- 参数:
float x - 新顶点的 X 坐标 float y - 新顶点的 Y 坐标 float z - 新顶点的 Z 坐标
- 返回值:
int - 顶点索引
[-1] 失败
deleteVertex(index[, delete_face])#
删除顶点。
- 参数:
int index - 要删除的顶点索引 int delete_face - 是否删除共享该顶点的面
[0] 不删除(默认)
[1] 删除
addFace(list)#
添加面。
- 参数:
list<int> list - 顶点索引列表
- 返回值:
int - 面索引
[-1] 失败
- 示例:
insertFace(index, list)#
在指定索引位置插入面。
- 参数:
int index - 面索引 list<int> list - 顶点索引列表
- 返回值:
int - 面索引
[-1] 失败
deleteFace(index[, delete_vertex])#
删除面。
- 参数:
int index - 要删除的面索引 int delete_vertex - 删除未被其他面共享的顶点
[0] 不删除(默认)
[1] 删除
invertFace(index)#
反转面的方向。
- 参数:
int index - 面索引
optimizeVertex(distance)#
合并指定距离范围内的顶点。
- 参数:
float distance - 合并距离
compact #
压缩顶点和面的索引。
getVertexIndexFromUniqueID(id)#
根据唯一 ID 获取顶点索引。
- 参数:
long id - 顶点唯一 ID
- 返回值:
int - 顶点索引
[-1] 失败
getFaceIndexFromUniqueID(id)#
根据唯一 ID 获取面索引。
- 参数:
long id - 面唯一 ID
- 返回值:
int - 面索引
[-1] 失败
allocUserData(userdata_id)#
为对象中的用户数据分配内存区域。
- 参数:
int userdata_id - 对象用户数据
- 返回值:
int - 结果
[0] 失败
[1] 成功
freeUserData(userdata_id)#
释放已为用户数据分配的内存区域。
- 参数:
int userdata_id - 对象用户数据
getUserDataInt(userdata_id, offset)#
从对象用户数据中获取整数值(4 字节)。
- 参数:
int userdata_id - 对象用户数据 int offset - 相对于用户数据起始位置的偏移量
- 返回值:
int - value
[None] 失败
getUserDataFloat(userdata_id, offset)#
从对象用户数据中获取浮点值(4 字节)。
- 参数:
int userdata_id - 对象用户数据 int offset - 相对于用户数据起始位置的偏移量
- 返回值:
float - value
[None] 失败
getUserDataString(userdata_id, offset, length)#
从对象用户数据中获取字符串。
- 参数:
int userdata_id - 对象用户数据 int offset - 相对于用户数据起始位置的偏移量 int length - 数据长度(字符串的最大字节长度)
- 返回值:
string - value
[None] 失败
setUserDataInt(userdata_id, offset, value)#
向对象用户数据设置整数值(4 字节)。
- 参数:
int userdata_id - 对象用户数据 int offset - 相对于用户数据起始位置的偏移量 int value - 值
setUserDataFloat(userdata_id, offset, value)#
向对象用户数据设置浮点值(4 字节)。
- 参数:
int userdata_id - 对象用户数据 int offset - 相对于用户数据起始位置的偏移量 float value - 值
setUserDataString(userdata_id, offset, length, value)#
向对象用户数据设置字符串。
- 参数:
int userdata_id - 对象用户数据 int offset - 相对于用户数据起始位置的偏移量 int length - 数据长度(字符串的最大字节长度) string value - 值
allocVertexUserData(userdata_id)#
为顶点中的用户数据分配内存区域。
- 参数:
int userdata_id - 顶点用户数据
- 返回值:
int - 结果
[0] 失败
[1] 成功
freeVertexUserData(userdata_id)#
释放已为用户数据分配的内存区域。
- 参数:
int userdata_id - 顶点用户数据
getVertexUserDataInt(userdata_id, index, offset)#
从顶点用户数据中获取整数值(4 字节)。
- 参数:
int userdata_id - 顶点用户数据 int index - 顶点索引 int offset - 相对于用户数据起始位置的偏移量
- 返回值:
int - value
[None] 失败
getVertexUserDataFloat(userdata_id, index, offset)#
从顶点用户数据中获取浮点值(4 字节)。
- 参数:
int userdata_id - 顶点用户数据 int index - 顶点索引 int offset - 相对于用户数据起始位置的偏移量
- 返回值:
float - value
[None] 失败
getVertexUserDataString(userdata_id, index, offset, length)#
从顶点用户数据中获取字符串。
- 参数:
int userdata_id - 顶点用户数据 int index - 顶点索引 int offset - 相对于用户数据起始位置的偏移量 int length - 数据长度(字符串的最大字节长度)
- 返回值:
string - value
[None] 失败
setVertexUserDataInt(userdata_id, index, offset, value)#
向顶点用户数据设置整数值(4 字节)。
- 参数:
int userdata_id - 顶点用户数据 int index - 顶点索引 int offset - 相对于用户数据起始位置的偏移量 int value - 值
setVertexUserDataFloat(userdata_id, index, offset, value)#
向顶点用户数据设置浮点值(4 字节)。
- 参数:
int userdata_id - 顶点用户数据 int index - 顶点索引 int offset - 相对于用户数据起始位置的偏移量 float value - 值
setVertexUserDataString(userdata_id, index, offset, length, value)#
向顶点用户数据设置字符串。
- 参数:
int userdata_id - 顶点用户数据 int index - 顶点索引 int offset - 相对于用户数据起始位置的偏移量 int length - 数据长度(字符串的最大字节长度) string value - 值
allocFaceUserData(userdata_id)#
为面中的用户数据分配内存区域。
- 参数:
int userdata_id - 面用户数据
- 返回值:
int - 结果
[0] 失败
[1] 成功
freeFaceUserData(userdata_id)#
释放已为用户数据分配的内存区域。
- 参数:
int userdata_id - 面用户数据
getFaceUserDataInt(userdata_id, index, offset)#
从面用户数据中获取整数值(4 字节)。
- 参数:
int userdata_id - 面用户数据 int index - 面索引 int offset - 相对于用户数据起始位置的偏移量
- 返回值:
int - value
[None] 失败
getFaceUserDataFloat(userdata_id, index, offset)#
从面用户数据中获取浮点值(4 字节)。
- 参数:
int userdata_id - 面用户数据 int index - 面索引 int offset - 相对于用户数据起始位置的偏移量
- 返回值:
float - value
[None] 失败
getFaceUserDataString(userdata_id, index, offset, length)#
从面用户数据中获取字符串。
- 参数:
int userdata_id - 面用户数据 int index - 面索引 int offset - 相对于用户数据起始位置的偏移量 int length - 数据长度(字符串的最大字节长度)
- 返回值:
string - value
[None] 失败
setFaceUserDataInt(userdata_id, index, offset, value)#
向面用户数据设置整数值(4 字节)。
- 参数:
int userdata_id - 面用户数据 int index - 面索引 int offset - 相对于用户数据起始位置的偏移量 int value - 值
setFaceUserDataFloat(userdata_id, index, offset, value)#
向面用户数据设置浮点值(4 字节)。
- 参数:
int userdata_id - 面用户数据 int index - 面索引 int offset - 相对于用户数据起始位置的偏移量 float value - 值
setFaceUserDataString(userdata_id, index, offset, length, value)#
向面用户数据设置字符串。
- 参数:
int userdata_id - 面用户数据 int index - 面索引 int offset - 相对于用户数据起始位置的偏移量 int length - 数据长度(字符串的最大字节长度) string value - 值
activateUVChannel(channel)#
激活 UV 通道。
- 参数:
int channel - UV 通道 ID
[0] 默认 UV 通道
[!= 0] 通过 MQDocument.getUVChannelID() 生成并获取的 ID
- 返回值:
int - UV 通道 ID
[0] 未找到 UV 通道
[1] 成功
addUVChannel(channel)#
添加 UV 通道。
- 参数:
int channel - UV 通道 ID
[!= 0] 通过 MQDocument.getUVChannelID() 生成并获取的 ID
- 返回值:
int - 结果
[0] 失败
[1] 成功
deleteUVChannel(channel)#
删除 UV 通道。
- 参数:
int channel - UV 通道 ID
- 返回值:
int - 结果
[0] 失败
[1] 成功