2017/07/30

[Maya][Python]FaceVertexごとのカラーの取得

時間たっちゃったけど引き続きopenMayaを使ってポリゴンから情報を抽出。
faceVertex毎のカラーを取得。
import maya.OpenMaya as om
import maya.api.OpenMaya as om2
 
sels = om.MSelectionList()
om.MGlobal.getActiveSelectionList(sels)
node = om.MDagPath()
sels.getDagPath(0, node)
#vertIter = om.MItMeshVertex(node)
fvertIter = om.MItMeshFaceVertex(node)
faceIter = om.MItMeshPolygon(node)
intArr = om.MIntArray()
color = om.MColor()
colors = []
for i in range(faceIter.count()):
    faceIter.getVertices(intArr)
    for j in intArr:
        if not fvertIter.hasColor():
            continue
        fvertIter.getColor(color)
        colors.append([color.r, color.g, color.b, color.a])
        fvertIter.next()
    faceIter.next()
print colors

2017/07/01

[Maya][Python]MItMeshPolygon (api1.0)

会社ではMaya2015もサポートしなきゃいけないのでapi1.0で書く必要が。。。
なんでこんなにめんどくさいの。。。 

選択オブジェクトのフェース面積を表示するサンプル
import maya.OpenMaya as om
import maya.api.OpenMaya as om2

sels = om.MSelectionList()
om.MGlobal.getActiveSelectionList(sels)
node = om.MDagPath()
sels.getDagPath(0, node)
poly = om.MItMeshPolygon(node)
mesh = om.MFnMesh(node)
areaParam = om.MScriptUtil()
areaParam.createFromDouble(0.0)
areaPtr = areaParam.asDoublePtr()
faceid = 0
area = []
for i in range(poly.count()):
    poly.getArea(areaPtr)
    poly.next()
    area = om.MScriptUtil(areaPtr).asDouble()
    print area