Have you tried using MFnMesh::getTangents? On Fri, May 7, 2010 at 8:33 AM, [email protected] <[email protected]>wrote:
> im having problems working out the tangent from the face normal > > im using a simple pCube with 6 faces > > and running this code > i = 0 > t = 0 > rot=[] > while t < 6: > normal = [normVal[i], normVal[i+1], normVal[i+2]] > tangent = [0,0,0] > ro=0 > kRotateOrders = [mApi.MEulerRotation.kXYZ, > mApi.MEulerRotation.kYZX, > mApi.MEulerRotation.kZXY, > mApi.MEulerRotation.kXZY, > mApi.MEulerRotation.kYXZ, > mApi.MEulerRotation.kZYX,] > cross = [normal[1]*tangent[2] - normal[2]*tangent[1], > normal[2]*tangent[0] - normal[0]*tangent[2], > normal[0]*tangent[1] - normal[1]*tangent[0]] > tMatrix = normal+[0]+tangent+[0]+cross+[0,0,0,0,1] > mMatrix = mApi.MMatrix() > mApi.MScriptUtil.createMatrixFromList(tMatrix, mMatrix) > tmMatrix = mApi.MTransformationMatrix(mMatrix) > rotate = tmMatrix.eulerRotation().reorder(kRotateOrders[ro]) > RAD_to_DEG = (180/math.pi) > rotation = [rotate[0]*RAD_to_DEG, rotate[1]*RAD_to_DEG, > rotate[2]*RAD_to_DEG] > i = i+1 > t = t+1 > > rot.append(rotation[0]) > rot.append(rotation[1]) > rot.append(rotation[2]) > > this puts the rotation of the normal in degrees, but the lines > attached to these rotations are coming out wrong > > is this due to the tangent ive given as 0 0 0 or something else? > if anyone can help me it will be greatly appreciated > > -- > http://groups.google.com/group/python_inside_maya -- http://groups.google.com/group/python_inside_maya
