#include <math.h>
#include <maya/MIOStream.h>
#include <maya/MGlobal.h>
#include <maya/MFnPlugin.h>
#include <maya/MSelectionList.h>
#include <maya/MItSelectionList.h>
#include <maya/MPoint.h>
#include <maya/MVector.h>
#include <maya/MMatrix.h>
#include <maya/MDagPath.h>
#include <maya/MFnAnimCurve.h>
#include <maya/MFnDagNode.h>
#include <maya/MPxCommand.h>
#include <maya/MString.h>
#define OUTWARD_VELOCITY 0.075
#define RADIAL_VELOCITY 0.05
#define NUM_FRAMES 120
public:
spiralAnimCurve() {};
virtual ~spiralAnimCurve();
static void* creator();
};
#define NUM_SPANS 30
#define WIDTH 10.0
#define VERTICAL_SCALING 4.0
spiralAnimCurve::~spiralAnimCurve() {}
void* spiralAnimCurve::creator()
{
return new spiralAnimCurve();
}
{
cerr << "Failure in plugin setup";
}
for ( ; !iter.isDone(); iter.next() ) {
status = iter.getDagPath( mObject, mComponent );
if ( !mComponent.
isNull() )
continue;
cerr << "Failure to create function set\n";
continue;
}
const MObject attrX = fnSet.attribute( attrName, &status );
cerr << "Failure to find attribute\n";
}
cerr << "Failure creating MFnAnimCurve function set (translateX)\n";
continue;
}
attrName.set( "translateZ" );
const MObject attrZ = fnSet.attribute( attrName, &status );
cerr << "Failure to find attribute\n";
}
cerr << "Failure creating MFnAnimCurve function set (translateZ)\n";
continue;
}
for( int i = 1; i <= NUM_FRAMES; i++ ) {
double x = sin( (double)i * RADIAL_VELOCITY ) *
( (double)i * OUTWARD_VELOCITY );
double z = cos( (double)i * RADIAL_VELOCITY ) *
( (double)i * OUTWARD_VELOCITY );
cerr << "Error setting the keyframe\n";
}
}
}
return status;
}
{
MFnPlugin plugin( obj, PLUGIN_COMPANY,
"3.0",
"Any");
status = plugin.registerCommand( "spiralAnimCurve",
spiralAnimCurve::creator );
if (!status) {
status.
perror(
"registerCommand");
return status;
}
return status;
}
{
status = plugin.deregisterCommand( "spiralAnimCurve" );
if (!status) {
status.
perror(
"deregisterCommand");
return status;
}
return status;
}