93 static void buildActivationRules(
void *
data,
100 static int setActivationCallback(
void *
data,
108 void applyDataFromInput(
fpreal time,
int inputidx,
109 int inputidxforsuffix,
111 const char *parentdataname,
114 bool changeuniquenamesuffix);
119 void getRequiredOutputs(
fpreal time,
int foroutputidx,
130 void processObjects(
fpreal time,
int foroutputidx,
136 void applyOutputData(
fpreal time,
int outputidx,
138 const char *parentdataname,
144 void preNetworkProcessing(
DOP_Engine &engine,
bool firstframe);
148 void postNetworkProcessing(
DOP_Engine &engine);
154 void getOutputInfo(
int outputidx,
DOP_InOutInfo &info)
const;
186 const char *
inputLabel(
unsigned idx)
const override;
207 static void initializeExpressions();
209 static void installCommands();
245 unsigned outputIdx = 0)
override;
247 int keeppos,
unsigned outputIdx = 0)
override;
256 const char *
label,
int,
265 void setCurrentObject(
int objectindex,
274 void copyCurrentObjectAndRelInto(
DOP_Node *dest)
const;
276 void clearCurrentObjectAndRel();
317 virtual void getRequiredOutputsSubclass(
fpreal time,
322 virtual void partitionObjectsSubclass(
fpreal time,
327 virtual void processObjectsSubclass(
fpreal time,
333 virtual void applyOutputDataSubclass(
fpreal time,
int outputidx,
335 const char *parentdataname,
340 virtual void preNetworkProcessingSubclass(
DOP_Engine &engine,
bool firstframe);
343 virtual void postNetworkProcessingSubclass(
DOP_Engine &engine);
345 virtual void getInputInfoSubclass(
int inputidx,
348 virtual void getOutputInfoSubclass(
int outputidx,
353 void makeFullDataName(
const char *root,
356 void makeUniqueDataName(
UT_String &dataname,
357 const char *parentdataname,
359 bool usenodepath)
const;
363 bool usenodepath)
const;
369 void moveGlobalErrorsToEngine();
378 DOP_CookData &getCookData()
const;
382 int myCurrentObjectIndex;
383 int myCurrentObjectCount;
virtual int saveCookedData(std::ostream &os, OP_Context &, int binary=0)=0
fpreal getH() const override
Node position/scale is used by the UI.
fpreal getW() const override
Node position/scale is used by the UI.
GLuint const GLchar * name
virtual bool getWorldTransform(UT_Matrix4D &xform, OP_Context &)
#define SYS_VISIBILITY_EXPORT
GT_API const UT_StringHolder time
virtual bool getTransform(TransformMode mode, UT_Matrix4D &xform, OP_Context &)
virtual OP_OpTypeId getOpTypeID() const =0
UT_API UT_ErrorSeverity UTaddFatal(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
GLenum GLsizei GLenum GLenum const void * table
virtual const char * inputLabel(unsigned idx) const
Parameters for OP_Node::getInfoText()/OP_Node::getNodeSpecificInfoText()
virtual DOP_Parent * castToDOPParent()
int getDandROpsEqual() override
virtual void getNodeSpecificInfoText(OP_Context &context, OP_NodeInfoParms &parms)
UT_API UT_ErrorSeverity UTaddMessage(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
virtual OP_ERROR cookMe(OP_Context &context)=0
virtual void childFlagChange(OP_Node *)
void addWarning(DOP_ErrorCode code, const char *msg=0)
Adds a warning from the DOP error file.
virtual void clearInterrupted()
virtual const char * getOpType() const =0
GLint GLenum GLsizei GLint GLsizei const void * data
virtual OP_ERROR setInput(unsigned idx, OP_Node *op, unsigned outputIdx=0)
Sets a given input to connect to an output of a particular node.
const GLuint GLenum const void * binary
Holds pointers to a number of SIM_Object objects.
virtual bool hasDifferentMultiInputs() const
virtual OP_ERROR setNamedInput(const OP_ConnectorId &input_name, OP_Node *op, const OP_ConnectorId *output_name=nullptr)
New input functions that use names instead of indices.
void opChanged(OP_EventType reason, void *data=0) override
virtual bool getIWorldTransform(UT_Matrix4D &xform, OP_Context &)
virtual unsigned orderedInputs() const
int updateDandROpsEqual(int check_inputs=1) override
virtual OP_Node * getRenderNodePtr()
*Note that the tasks the is the thread number *for the or if it s being executed by a non pool thread(this *can happen in cases where the whole pool is occupied and the calling *thread contributes to running the work load).**Thread pool.Have fun
virtual OP_DataType getCookedDataType() const =0
GLuint GLsizei GLsizei GLchar * label
static const char * theChildTableName
virtual OP_ERROR setNamedInputReference(const OP_ConnectorId &input_name, const char *label, int, const OP_ConnectorId *output_name=nullptr)
virtual const char * getChildType() const
virtual const char * getFileExtension(int binary) const =0
Parameters for OP_Node::fillInfoTree()/OP_Node::fillInfoTreeNodeSpecific()
virtual void fillInfoTreeNodeSpecific(UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms)
void addFatal(DOP_ErrorCode code, const char *msg=0)
Adds a fatal error from the DOP error file.
virtual void referencedParmChanged(int pi)
UT_API UT_ErrorSeverity UTaddWarning(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
virtual OP_OpTypeId getChildTypeID() const =0
virtual bool evalVariableValue(UT_String &val, int index, int thread)
constexpr T pi()
Pi constant taken from Boost to match old behaviour.
void addMessage(DOP_ErrorCode code, const char *msg=0)
Adds a message from the DOP error file.
This is the base class for all DOP nodes.
void addError(int code, const char *msg=0)
Adds an error from the DOP error file.
SYS_VISIBILITY_EXPORT void newDopOperator(OP_OperatorTable *table)
This declaration allows HDK users to write custom DOP operators.
virtual OP_ERROR bypassMe(OP_Context &context, int &copied_input)=0
UT_API UT_ErrorSeverity UTaddError(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
virtual void deleteCookedData()=0
static OP_VariablePair theVariablePair
virtual OP_ERROR setInputReference(unsigned idx, const char *label, int keeppos, unsigned outputIdx=0)
Connects an input to particular node by name in the network.