#include "testNsolverNode.h"
#include <maya/MIOStream.h>
#include <maya/MPlug.h>
#include <maya/MDataBlock.h>
#include <maya/MDataHandle.h>
#include <maya/MGlobal.h>
#include <maya/MTime.h>
#include <maya/MFnMesh.h>
#include <maya/MFnMeshData.h>
#include <maya/MFnUnitAttribute.h>
#include <maya/MFnNumericAttribute.h>
#include <maya/MFnTypedAttribute.h>
#include <maya/MFnIntArrayData.h>
#include <maya/MFnComponentListData.h>
#include <maya/MFnSingleIndexedComponent.h>
#include <maya/MDagPath.h>
#include <maya/MPoint.h>
#include <maya/MFloatPointArray.h>
#include <maya/MItMeshVertex.h>
#include <maya/MFnPlugin.h>
#include <math.h>
const MTypeId testNsolverNode::id( 0x85005 );
#include <maya/MFnNObjectData.h>
#include <maya/MnCloth.h>
MObject testNsolverNode::startState;
MObject testNsolverNode::currentState;
MObject testNsolverNode::nextState;
MObject testNsolverNode::currentTime;
{
if ( !stat )
{
cout<<msg<<"\n";
}
}
testNsolverNode::testNsolverNode()
{
solver.createNSolver();
solver.setGravity(9.8f);
solver.setStartTime((float)(1.0/24.0));
}
{
if ( plug == nextState )
{
if(currTime.
value() <= 1.0) {
cerr << "multi handle elementcount = " << count << "\n";
solver.removeAllCollisions();
for (int i = 0; i < count; i++) {
inputNData.getObjectPtr(nObj);
solver.removeNObject(nObj);
solver.addNObject(nObj);
delete nObj;
}
solver.makeAllCollide();
} else {
for (int i = 0; i < count; i++) {
inputNData.getObjectPtr(nObj);
delete nObj;
}
}
solver.setGravity(9.8f);
solver.setGravityDir(0.0f, -1.0f, 0.0f);
solver.setAirDensity(1.0f);
solver.setWindSpeed(0.0f);
solver.setWindDir(0.0f, 1.0f, 0.0f);
solver.setWindNoiseIntensity(0.0f);
solver.setDisabled(false);
solver.setSubsteps(3);
solver.solve(solveTime);
}
else if ( plug == currentState )
{
}
else if (plug == startState) {
}
else {
stat = MS::kUnknownParameter;
}
return stat;
}
MStatus testNsolverNode::initialize()
{
statCheck(stat, "failed to create startState");
statCheck(stat, "failed to create currentState");
statCheck(stat, "failed to create nextState");
addAttribute(startState);
addAttribute(currentState);
addAttribute(nextState);
addAttribute(currentTime);
attributeAffects(startState, nextState);
attributeAffects(currentState, nextState);
attributeAffects(currentTime, nextState);
}
{
MFnPlugin plugin(obj,
"Autodesk - nCloth Prototype 4",
"8.5",
"Any");
status = plugin.registerNode ( "testNsolverNode", testNsolverNode::id,testNsolverNode ::creator, testNsolverNode::initialize );
if ( !status )
{
status.
perror(
"registerNode");
return status;
}
return status;
}
{
status = plugin.deregisterNode(testNsolverNode::id);
if ( !status )
{
status.
perror(
"deregisterNode");
return status;
}
return status;
}