SOP/SOP_PrimVOP.h
#ifndef __SOP_PrimVOP__
#define __SOP_PrimVOP__
#include <SOP/SOP_Node.h>
#include <CVEX/CVEX_Value.h>
#include <VOP/VOP_CodeGenerator.h>
class CVEX_RunData;
class CVEX_Context;
namespace HDK_Sample {
class SOP_PrimVOP : public SOP_Node
{
public:
SOP_PrimVOP(OP_Network *net, const char *, OP_Operator *entry);
virtual ~SOP_PrimVOP();
virtual unsigned disableParms();
static OP_Node *myConstructor(OP_Network *net, const char *name,
OP_Operator *entry);
static PRM_Template myTemplateList[];
virtual OP_OperatorFilter *getOperatorFilter();
virtual const char *getChildType() const;
virtual OP_OpTypeId getChildTypeID() const;
virtual VOP_CodeGenerator *getVopCodeGenerator();
virtual void opChanged(OP_EventType reason, void *data=0);
virtual bool evalVariableValue(
UT_String &value, int index, int thread);
protected:
virtual OP_ERROR cookMySop (OP_Context &context);
void executeVex(int argc, char **argv,
fpreal t, OP_Caller &opcaller);
void processVexBlock(CVEX_Context &context,
CVEX_RunData &rundata,
int argc, char **argv,
int *primid, int n,
fpreal t);
int VEXSRC(fpreal t)
{ return evalInt("vexsrc", 0, t); }
void SCRIPT(UT_String &s, fpreal t)
{ evalString(s, "script", 0, t); }
void SHOPPATH(UT_String &path, fpreal t)
{ evalString(path, "shoppath", 0, t); }
virtual void finishedLoadingNetwork(bool is_child_call=false);
virtual void addNode(OP_Node *node, int notify=1, int explicitly=1);
virtual void getNodeSpecificInfoText(OP_Context &context,
OP_NodeInfoParms &parms);
void buildScript(UT_String &script, fpreal t);
VOP_CodeGenerator myCodeGenerator;
};
}
#endif