Message 1 of 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I can't get MFnTransformation::rotateBy with MSpace::kWorld flag to rotate object in world space.
Was I doing something wrong? Quite certain MFnTransform was created using dagpath constructor as MSpace documentation suggests.
sample:
- Create a mesh under a transform group
- Apply random translation and rotation to both group and mesh object
- Use the following script with the mesh object
import pymel.core as pm
import pymel.core.datatypes as pmdt
import maya.OpenMaya as om
import math
sel = pm.ls(sl=1)[0]
# Works as expected
sel.rotateBy(pmdt.EulerRotation(0,10,0), "preTransform")
# Works as expected
sel.rotateBy(pmdt.EulerRotation(0,10,0), "object")
# Same behavior with object flag
sel.rotateBy(pmdt.EulerRotation(0,10,0), "world")
# Also same
msell = om.MSelectionList()
msell.add(sel.name())
dagpath = om.MDagPath()
msell.getDagPath(0, dagpath)
mfn = om.MFnTransform(dagpath)
mfn.rotateBy(om.MEulerRotation(0,math.radians(10),0), om.MSpace.kWorld)
# Desired result
cmds.rotate(sel, 0, 10 , 0, relative=True, worldSpace=True)
Solved! Go to Solution.