CHOP/CHOP_Spring.h
#ifndef __CHOP_Spring__
#define __CHOP_Spring__
#include <CHOP/CHOP_Realtime.h>
#define ARG_SPR_SPRING_CONSTANT (myParmBase + 0)
#define ARG_SPR_MASS (myParmBase + 1)
#define ARG_SPR_DAMPING_CONSTANT (myParmBase + 2)
#define ARG_SPR_METHOD (myParmBase + 3)
#define ARG_SPR_GRAB_INITIAL (myParmBase + 4)
#define ARG_SPR_INITIAL_DISPLACEMENT (myParmBase + 5)
#define ARG_SPR_INITIAL_VELOCITY (myParmBase + 6)
class UT_Interrupt;
namespace HDK_Sample {
class CHOP_Spring : public CHOP_Realtime
{
public:
static OP_Node *myConstructor(OP_Network *,
const char *,
OP_Operator *);
static OP_TemplatePair myTemplatePair;
static OP_VariablePair myVariablePair;
static PRM_Template myTemplateList[];
static CH_LocalVariable myVariableList[];
OP_ERROR cookMyChop(OP_Context &context);
OP_ERROR cookMySlice(OP_Context &context,
int start, int end);
virtual unsigned disableParms();
virtual float getVariableValue(int idx, int thread);
virtual int usesScope() const { return 1; };
virtual int usesSampleMatch() const { return 0; };
virtual int usesUnits() { return getInput(0) ? 0 : 1; };
virtual int isSteady() const;
virtual const char * getTimeSliceExtension() { return "spring"; }
protected:
CHOP_Spring(OP_Network *net,
const char *name,
OP_Operator *op);
virtual ~CHOP_Spring();
virtual ut_RealtimeData * newRealtimeDataBlock(const char *name,
const CL_Track *track,
float t);
private:
int METHOD()
{ return evalInt(ARG_SPR_METHOD, 0, 0); }
float SPRING_CONSTANT(float t)
{ return evalFloat(ARG_SPR_SPRING_CONSTANT, 0, t); }
float MASS(float t)
{ return evalFloat(ARG_SPR_MASS, 0, t); }
void SET_MASS(float t, float f)
{ setFloat(ARG_SPR_MASS, 0, t, f); }
float DAMPING_CONSTANT(float t)
{ return evalFloat(ARG_SPR_DAMPING_CONSTANT, 0, t); }
bool GRAB_INITIAL()
{ return (bool) evalInt(ARG_SPR_GRAB_INITIAL, 0, 0); }
float INITIAL_DISPLACEMENT(float t)
{ return evalFloat(ARG_SPR_INITIAL_DISPLACEMENT, 0, t); }
float INITIAL_VELOCITY(float t)
{ return evalFloat(ARG_SPR_INITIAL_VELOCITY, 0, t); }
int my_NC;
int my_C;
int myChannelDependent;
int mySteady;
};
}
#endif