Search code examples
c++pluginsmaya

Maya c++ API, moving an object?


I am attempting to write a Maya c++ plugin, and am having some trouble.

I simply want to create a camera, and then move it in the viewport. I have:

    MObject camera;
    MDagPath cameraPath;
    // create new camera
    MFnCamera fnCamera;
    fnCamera.create(camera);
    fnCamera.getPath(cameraPath);

    MFnTransform fn(camera);
    MVector trans(12, 12, 12);
    fn.setTranslation(trans, MSpace::kWorld);

This creates the camera fine, but does not move it. What am I missing to translate the created object? Thank you.


Solution

  • Ah, i was doing it entirely wrong. This works:

    MDagModifier dagModifier;
    
        //Create the camera transform node.
        MObject cameraTransformObj = dagModifier.createNode("transform");
        dagModifier.renameNode(cameraTransformObj, "myCameraTransform");
    
        //Create the camera shape node as a child of the camera transform node.
        MObject cameraShapeObj = dagModifier.createNode("camera", cameraTransformObj);
        dagModifier.renameNode(cameraShapeObj, "myCameraShape");
    
        dagModifier.doIt();
    
    MFnTransform transformFn(cameraTransformObj);
    transformFn.setTranslation(MVector(0, 5, 30), MSpace::kTransform);