我想在Maya中激活的变换节点下获取一个shape / mesh对象。
如果我在Maya中选择并对象(例如多边形球),则在调用getActiveSelectionList
方法时,它会返回变换节点,而不是形状/网格。
我正在疯狂阅读API类(MDagPath, MSelectionList, MFnDependencyNode
)以及实现这一目标的方法,但我找不到办法。
所以,我想通过C ++ API在Maya GUI中获取所选/活动多边形对象的信息(顶点坐标)。
答案 0 :(得分:4)
您希望获得导致转换的MDagPath,然后使用.extendToShape
或.extendToShapeDirectlyBelow()
来获取形状节点。然后你需要从形状中获得MFnMesh
并使用它来到达顶点。
这是python版本,这是我所有的方便。除了语法之外,它在C ++中的工作方式也是一样的:
# make a selectionList object, populate ite
sel_list = MSelectionList()
MGlobal.getActiveSelectionList(sel_list)
# make a dagPath, fill it using the first selected item
d = MDagPath()
sel_list.getDagPath(0,d)
print d.fullPathName()
# '|pCube1" <- this is the transform
d.extendToShape()
print d.fullPathName()
# "|pCube1|pCubeShape1" < - now it points at the shape
# get the dependency node as an MFnMesh:
mesh = MFnMesh(d.node())
# now you can call MFnMesh methods to work on the object:
print mesh.numVertices()
# 8