#include <string.h>
#include <maya/MIOStream.h>
#include <math.h>
#include <maya/MPxGeometryFilter.h>
#include <maya/MItGeometry.h>
#include <maya/MTypeId.h>
#include <maya/MPlug.h>
#include <maya/MDataBlock.h>
#include <maya/MDataHandle.h>
#include <maya/MFnNumericAttribute.h>
#include <maya/MFnPlugin.h>
#include <maya/MFnDependencyNode.h>
#include <maya/MPoint.h>
#include <maya/MMatrix.h>
#define McheckErr(stat,msg) \
if ( MS::kSuccess != stat ) { \
cerr << msg; \
return MS::kFailure; \
}
{
public:
yTwist();
~yTwist() override;
static void* creator();
unsigned int multiIndex) override;
public:
private:
};
yTwist::yTwist()
{
}
yTwist::~yTwist()
{}
void* yTwist::creator()
{
return new yTwist();
}
{
addAttribute( angle);
attributeAffects( yTwist::angle, yTwist::outputGeom );
return MS::kSuccess;
}
unsigned int )
{
McheckErr(status, "Error getting angle data handle\n");
double magnitude = angleData.
asDouble();
McheckErr(status, "Error getting envelope data handle\n");
double ff = magnitude*pt.
y*env;
if (ff != 0.0) {
double cct= cos(ff);
double cst= sin(ff);
double tt= pt.
x*cct-pt.
z*cst;
pt.
z= pt.
x*cst + pt.
z*cct;
}
}
return status;
}
{
MFnPlugin plugin( obj, PLUGIN_COMPANY,
"3.0",
"Any");
result = plugin.registerNode( "yTwist", yTwist::id, yTwist::creator,
return result;
}
{
result = plugin.deregisterNode( yTwist::id );
return result;
}