MFnMesh.getTriangles() issue.

瀏覽次數:60 次
跳到第一則未讀訊息

Alejandro

未讀,
2021年7月28日 下午6:04:572021/7/28
收件者:Python Programming for Autodesk Maya
Hello people !

I've been trying to store faces from combined objects using getTriangles method, but I think I'm using it wrong..

to reproduce the issue, duplicate a sphere, move it a little so you can see, and combine it into a single object, name it as "combined_mesh" then:

```
sel = OpenMayaApi.MSelectionList()
sel.add("combined_mesh")

_dag = sel.getDagPath(0)
_mesh = OpenMayaApi.MFnMesh(_dag)

_, triangles_idx = _mesh.getTriangles()

_, mObject = sel.getComponent(0)
mfn_components = OpenMayaApi.MFnSingleIndexedComponent(mObject)
mfn_object = mfn_components.create(OpenMayaApi.MFn.kMeshPolygonComponent)
mfn_components.addElements(triangles_idx)

selection_list = OpenMayaApi.MSelectionList()
selection_list.add((_dag, mfn_object))

OpenMayaApi.MGlobal.setActiveSelectionList(selection_list)
```

thanks guys.

Tim Fowler

未讀,
2021年7月29日 上午10:33:042021/7/29
收件者:python_in...@googlegroups.com
MFnMesh::getTriangles doesn't return actual components like faces, it
returns the triangles that Maya used to render the mesh. e.g. a
single quad face has 4 vertices, and Maya has to turn that into two
triangles to render. This function will tell you what vertices it
used to make up those triangles. If you go to Display -> Polygons ->
Face Triangles then you can see them displayed in the viewport. The
"fake" edges Maya used to make up the triangles will be rendered in a
dashed line.
> --
> You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/6aa082e8-ba25-4ced-982c-58378ab6e7d0n%40googlegroups.com.
回覆所有人
回覆作者
轉寄
0 則新訊息