motionPathCmd.cpp
#include <string.h>
#include <maya/MIOStream.h>
#include <maya/MFnPlugin.h>
#include <maya/MString.h>
#include <maya/MArgList.h>
#include <maya/MSelectionList.h>
#include <maya/MItSelectionList.h>
#include <maya/MGlobal.h>
#include <maya/MDagPath.h>
#include <maya/MFnMotionPath.h>
#include <maya/MFnDependencyNode.h>
#include <maya/MTime.h>
#include <maya/MPxCommand.h>
class motionPath : public MPxCommand
{
public:
motionPath() {};
virtual ~motionPath();
MStatus doIt( const MArgList& args );
static void* creator();
};
void* motionPath::creator()
{
return new motionPath();
}
motionPath::~motionPath() {}
MStatus motionPath::doIt( const MArgList& )
{
MObject mdepNode;
MObject component;
MDagPath motionCurve;
MDagPath objectToAnimate;
MStatus stat = MS::kSuccess;
MTime startTime( 0.0 );
MTime endTime( 48.0 );
MSelectionList slist;
MGlobal::getActiveSelectionList( slist );
MItSelectionList itr( slist );
for (; !itr.isDone(); itr.next() )
{
if ( !objectToAnimate.isValid() ) {
itr.getDagPath( objectToAnimate, component );
}
else if ( !motionCurve.isValid() ) {
itr.getDagPath( motionCurve, component );
}
else {
break;
}
}
if ( (objectToAnimate.isValid()) && (motionCurve.isValid()) ) {
MFnMotionPath fnMotionPath;
mdepNode = fnMotionPath.create( motionCurve, objectToAnimate,
startTime, endTime );
}
return stat;
}
MStatus initializePlugin( MObject obj )
{
MStatus status;
MFnPlugin plugin( obj, PLUGIN_COMPANY, "3.0", "Any");
status = plugin.registerCommand( "motionPath", motionPath::creator );
if (!status) {
status.perror("registerCommand");
return status;
}
return status;
}
MStatus uninitializePlugin( MObject obj)
{
MStatus status;
MFnPlugin plugin( obj );
status = plugin.deregisterCommand( "motionPath" );
if (!status) {
status.perror("deregisterCommand");
return status;
}
return status;
}