I am learning the maya c++ API, and am stuck on the simplest task.
i have an object (a locator):
MObject locatorObj = dagModifier.createNode("transform");
MObject locShapeObj = dagModifier.createNode("locator", locatorObj);
dagModifier.renameNode(locatorObj, "root");
dagModifier.renameNode(locShapeObj, "rootShape");
and another:
//root loc
MObject locatorObj2 = dagModifier.createNode("transform");
MObject locShapeObj2 = dagModifier.createNode("locator", locatorObj);
dagModifier.renameNode(locatorObj2, "root2");
dagModifier.renameNode(locShapeObj2, "root2Shape");
I want to parent the second underneath the first. I have tried:
//parent t
MStatus status;
MFnDagNode fnRoot(locatorObj);
status = fnRoot.addChild(locatorObj2, MFnDagNode::kNextPos, true);
But Maya crashes when i run it. Am i right in using MFnDagNode
here? I have also tried:
MFnTransform rootTransform (locatorObj);
status = rootTransform.addChild(locatorObj2, MFnDagNode::kNextPos, true);
But i also get the crash. Where am i going wrong? Thank you.
i ended up using joints instead of locators. This works:
MFnIkJoint* rootJoint = new MFnIkJoint();
MObject rootTransform = rootJoint->create(MObject::kNullObj, &status);
MFnIkJoint* Joint = new MFnIkJoint();
MObject Transform = Joint->create(MObject::kNullObj, &status);
MStatus status = rootJoint ->addChild(Transform , MFnDagNode::kNextPos, false);