12 #ifndef __VOP_Node_h__
13 #define __VOP_Node_h__
40 #define VOP_OPT_LOW_FLAG 'L'
41 #define VOP_OPT_MEDIUM_FLAG 'M'
42 #define VOP_OPT_HIGH_FLAG 'H'
43 #define VOP_DEBUG_FLAG 'D'
44 #define VOP_MATERIAL_FLAG 'E'
48 #define VOP_PARMORDER_NAME "parmorder"
49 #define VOP_BIND_NAME "bind"
50 #define VOP_GLOBAL_NODE_NAME "global"
51 #define VOP_ILLUM_NODE_NAME "illuminance"
52 #define VOP_PARM_NODE_NAME "parameter"
53 #define VOP_CONST_NODE_NAME "constant"
54 #define VOP_PARMRAMP_NODE_NAME "rampparm"
55 #define VOP_INLINE_CODE_NODE_NAME "inline"
56 #define VOP_SNIPPET_NODE_NAME "snippet"
57 #define VOP_MATERIAL_BUILDER_NODE_NAME "materialbuilder"
58 #define VOP_RSL_PREFIX "rsl_"
59 #define VOP_VARIABLE_INOUT_MAX 2048
62 #define VOP_SUBNET_VARIABLE_PREFIX "_"
70 class VCC_DiagnosticInfo;
81 class VOP_VariableTags;
139 return myInfos(0).myTypeInfo;
145 T default_val )
const;
148 const T & default_val )
const;
161 virtual int getNumInputsFromParent()
const = 0;
162 virtual void NAMEFROMPARM(
UT_String &str,
int idx)
const = 0;
163 virtual void LABELFROMPARM(
UT_String &str,
int idx)
const = 0;
164 virtual void setNAMEFROMPARM(
UT_String &str,
int idx) = 0;
165 virtual void setLABELFROMPARM(
UT_String &str,
int idx) = 0;
181 {
return myTypeInfo; }
184 void setName(
const char *
name );
189 void setVarName(
const char *var_name );
194 void setInitCodeStr(
const char *init_code );
196 {
return myInitCodeStr; }
199 void setInputIndex(
int input_index );
201 {
return myInputIdx; }
204 void setOutputIndex(
int output_index );
206 {
return myOutputIdx; }
209 void setExported(
bool exported );
211 {
return myIsExported; }
230 myGroupsAbove(groups_above),
238 : myGroupName(group_name),
240 myGroupsAbove(groups_above),
241 myIsExpanded(expanded),
290 virtual void getParameterBlock(
UT_String &parmstr,
291 const char *shader_contexts);
294 virtual void getParameterDeclaration(
UT_String &parmdecl,
300 virtual void getParameterComment(
UT_String &parm_comment,
306 virtual bool definesShaderExtraParameters()
const;
320 virtual void getPragmas(
UT_String &pragmastr,
329 virtual void getOuterCode(
UT_String &codestr,
337 virtual bool getParmConstantString(
const char *parmname,
344 static const char *getTypeNameFromType(
const VOP_TypeInfo &type_info,
348 bool getParmPrintableString(
const char *parmname,
351 bool expand_string)
const;
356 virtual bool getIsParmGenerator()
const;
360 #define VOP_IMPLEMENT_CASTS(NAME) \
361 static const VOP_##NAME *castTo##NAME(const OP_Node *node) { \
362 const VOP_Node *vop = CAST_VOPNODE(node); \
363 return vop ? vop->castTo##NAME() : nullptr; } \
364 static VOP_##NAME *castTo##NAME(OP_Node *node) { \
365 VOP_Node *vop = CAST_VOPNODE(node); \
366 return vop ? vop->castTo##NAME() : nullptr; } \
367 virtual const VOP_##NAME *castTo##NAME() const { return nullptr; } \
368 virtual VOP_##NAME *castTo##NAME() { return nullptr; }
375 #undef VOP_IMPLEMENT_CASTS
385 void createAutoCodeGenerator();
389 void createAutoShaderChildren();
405 virtual void initializeNode();
414 virtual void ensureParametersAreValid();
415 static void incrementVariableName(
UT_String &varname);
454 virtual UT_IntArray getShaderLayerExportsInputsToCopy(
int out_idx,
470 VOP_Type getInputType(
int idx)
const;
484 virtual void getAllowedInputTypeInfos(
unsigned idx,
486 virtual void getAllowedInputTypes(
unsigned idx,
495 void getAllAllowedInputTypeInfos(
unsigned idx,
506 virtual int getSignatureCount()
const;
513 virtual void setCurrentSignature(
const char *
name);
522 void setInputVariableOverride(
int input_index,
533 virtual void getFixedOutputVariable(
UT_String &var,
int idx);
537 virtual void getOutputVariableName(
UT_String &var,
int idx)
const;
550 virtual bool shouldCheckInputContextForMergeInputNodeList()
const;
582 virtual bool forceCodeGenerationOfInputs(
584 bool check_shader_context)
const;
588 bool forceCodeGenerationInContext(
593 bool isInputForShaderType(
int input_idx,
595 bool isOutputForShaderType(
int output_idx,
611 virtual void findAllShaders(
VOP_NodeList &shader_nodes,
618 virtual bool canDefineShader()
const;
628 virtual bool isShader()
const;
634 virtual bool isShader(
VOP_Type shader_type)
const;
638 virtual bool translatesDirectlyToUSD()
const;
642 virtual bool isUSDNodeGraph()
const;
648 virtual bool isCachedShader()
const;
653 bool isExternalShader()
const;
668 virtual bool isEncapsulatedShader()
const;
682 virtual VOP_Type getShaderType()
const;
683 const char * getRenderMask()
const;
690 fpreal &
v,
int i,
int thr)
override
700 const char* parm_name);
702 const char* parm_name);
708 virtual bool getCachedShaderCode(std::ostream &os,
732 virtual bool isVopMethod()
const;
733 virtual bool isVopMethodPublic()
const;
739 virtual void getVopFunctionName(
UT_String &function_name)
const;
741 virtual void getVopFunctionArgInfos(
746 void getShaderArgInfos(
751 bool isParmForShaderType(
const PRM_Parm &parm,
752 VOP_Type shader_type,
bool check_context_tag);
762 void getVopFunctionArgInfosFromInputsAndOutputs(
764 int first_input,
int last_input,
765 int first_output,
int last_output,
766 bool prefix_input_arg_and_var_names,
767 bool prefix_input_var_names =
false,
772 void getVopFunctionArgInfosFromNodeParameters(
775 void getVopFunctionArgInfosFromNodeParameters(
781 void getVopFunctionArgInfosFromInputsOutputsAndParms(
783 int first_input,
int last_input,
784 int first_output,
int last_output,
785 bool prefix_input_arg_and_var_names,
786 bool prefix_input_var_names =
false,
793 void getVopFunctionArgInfosFromGlobals(
798 virtual void getVopFunctionArgInfosFromExports(
804 virtual void registerExtraVarRequests(
812 void pruneVopFunctionArgInfos(
814 bool keep_all_export_args =
false );
819 bool isParmAtDefaultValue(
const char *parm,
839 bool use_defined_input_defaults);
843 void getVopFunctionCallCode(
UT_String &codestr,
854 virtual bool shouldOutputNodeVariableDeclarations()
const;
867 void setTablesFromVop(
VOP_Node *vop);
875 bool mustBeWritable);
881 void addParentSubnetVariable(
const char *varname,
883 void deleteParentSubnetVariable(
const char *varname);
886 virtual bool shouldPrefixInputVariablesInsideSubnet()
const;
890 virtual bool usesSubnetConnectorsAsShaderParms()
const;
894 virtual bool showsShaderParmsAsSubnetConnectors()
const;
898 virtual void shaderParmGrandChildAdded(
VOP_Node *grand_child);
899 virtual void shaderParmGrandChildChanged(
VOP_Node *grand_child);
900 virtual void shaderParmGrandChildDeleted(
VOP_Node *grand_child);
905 bool setInOutLOD(
int level,
bool inoff);
906 bool getInOutLOD(
int level)
const;
908 static void setLODPref(
int value);
913 unsigned outputIdx = 0)
override;
918 unsigned outputIdx = 0)
override;
927 const char *
label,
int,
935 bool forcesubnet =
false)
override;
942 virtual bool isConnected(
int inputidx,
bool recursive);
950 virtual void dirtyShaderList();
957 virtual VOP_Node *getSubnetOutputNode()
const;
960 bool isInNonShaderSubNetwork()
const;
1005 VOP_Node *insertParmGenerator(
int inputidx,
1006 InputParmGenType
type);
1007 VOP_Node *insertNode(
int inputidx,
const char* nodetype,
1008 bool connect_to_input,
1009 const char* undo_string = NULL);
1011 int inputParmTypeIndex(
int inputidx,
1013 const char *inputParmTypeString(
int inputidx,
1027 void insertParmGeneratorsForAllInputs(
1028 InputParmGenType
type,
1034 void insertBindExportsForAllOutputs(
bool subnet);
1035 VOP_Node *insertBindExport(
int outputidx,
bool subnet);
1039 void rewireOutputConnections(
1046 virtual void getParmNameFromInput(
UT_String &parmname,
1047 int inputidx)
const;
1048 virtual void getParmNameFromOutput(
UT_String &parmname,
1049 int outputidx)
const;
1052 const PRM_Parm *getParmFromInput(
int inputidx)
const;
1053 const PRM_Parm *getParmFromOutput(
int outputidx)
const;
1060 bool outputDefaultParmDefinition(std::ostream &os,
int idx);
1063 void saveNodeInputAndOutputDefinitions(std::ostream &os);
1068 bool saveParmValues(std::ostream &os);
1080 {
return myLanguage; }
1089 void setDefaultLanguage();
1103 static void cacheAllParmNames(
OP_Node *root);
1105 static void recalculateAllParmDefiners(
OP_Node *root,
1106 bool dive_into_subnets =
true,
1118 VOP_TypeInfo getAutoConvertTargetTypeInfo(
int input_idx);
1119 VOP_Type getAutoConvertTargetType(
int input_idx);
1125 VOP_TypeInfo getAutoConvertTypeInfoFromType(
int input_idx,
1127 VOP_Type getAutoConvertTypeFromType(
int input_idx,
1133 void clearAutoVopNodeInfos();
1135 const VOP_AutoNode *getAutoVopNode(
int input_idx)
const;
1136 int getAutoVopNodeCount();
1148 void appendOutputOverrideCode(
UT_String& str_code);
1154 bool needToExecute();
1161 const char *path_prefix =
"",
1165 const char *
path=0)
override;
1169 bool setDebug(
bool on_off)
override;
1172 bool getMaterialFlag()
const;
1173 bool setMaterialFlag(
bool on_off);
1174 virtual void initMaterialFlag();
1176 void getSubOutputAndSubInputs(
OP_Node *&outputnode,
1179 void hideInput(
int input_index,
bool hide);
1180 void setReferenceTargetDefaults(
int input_index,
bool do_set);
1181 bool getAllowEditingParmDefaults(
int input_index);
1195 virtual bool isSingleContextType()
const;
1217 bool isCVEXPathParm(
const char *parm_name)
const;
1221 static void refreshShaderParmTemplatesIfNeeded(
OP_Node *
n);
1228 bool force_parms_at_default =
false);
1238 virtual bool allowUSDShaderParm(
PRM_Parm &parm);
1246 bool deleteIndependentInputNodes(
int input_index);
1249 bool doesDependOnlyOn(
const VOP_Node* other_node,
1250 int max_connections,
bool recurse);
1271 { input_indices.
clear(); }
1274 virtual void getInputDefaultValue(
UT_String &def,
int idx)
const;
1278 virtual int getNumNodeDefinedOutputs()
const;
1285 virtual int getNumSubnetInputsForChildren()
const;
1286 virtual int getSubnetInputIndexForChildren(
int child_input)
const;
1287 int getChildConnectorIndexFromParent(
int parent_input)
const;
1288 virtual void getSubnetOutputTerminalChild(
1289 VOP_Node * &output_vop,
int &input_idx,
1290 int subnet_output_idx )
const;
1300 static void setRunCreateScriptCB(
void (*)(
const char *node_path,
1301 const char*render_mask,
VOP_Type shader_type ));
1309 void updateInputFlagsFromOperator(
1320 virtual void getAllowedNamedInputTypeInfos(
1323 virtual void getAllowedNamedInputTypes(
1329 VOP_Type getNamedAutoConvertTargetType(
1334 VOP_Type getNamedAutoConvertTypeFromType(
1342 const char* nodetype,
1343 bool connect_to_input,
1344 const char* undo_string = NULL);
1347 {
return myVopDataMicroNode; }
1355 void setErrorsDirty();
1356 void setErrorsClean(
const OP_Context &context);
1357 bool areErrorsDirty(
const OP_Context &context);
1372 bool getInputTypeInfoFromInputNode(
1374 bool grow_inputs_to_idx =
false)
const;
1382 void getInputNameFromInputNode(
UT_String &in,
int idx,
1383 bool check_output_names)
const;
1390 bool create_missing_multiparms,
1395 PRM_Parm *&parm,
int &vector_index,
1403 int getInputVisibleIndex(
int idx);
1405 int getOutputVisibleIndex(
int idx);
1412 void setAllInputGroupsExpanded(
bool expanded);
1430 static bool getShowPreviewPref();
1431 static void setShowPreviewPref(
bool show);
1446 int binary = 0)
override;
1460 bool getPropertyFromNode(
1464 bool getPropertyFromNode(
1468 bool getPropertyFromCodeGen(
1472 bool getPropertyFromCodeGen(
1476 bool getPropertyFromInputs(
1480 bool getPropertyFromInputs(
1505 virtual void getContextsForCodeGeneration(
1511 virtual void getOutputNameSubclass(
UT_String &out,
int idx)
const;
1512 virtual VOP_Type getOutputTypeSubclass(
int idx);
1513 virtual void getOutputTypeInfoSubclass(
VOP_TypeInfo &type_info,
1519 void dirtyCachedOutputData();
1524 virtual void getInputNameSubclass(
UT_String &in,
int idx)
const;
1525 virtual int getInputFromNameSubclass(
const UT_String &in)
const;
1526 int findInputFromInputName(
const UT_String &in)
const;
1527 virtual void getInputTypeInfoSubclass(
VOP_TypeInfo &type_info,
1530 virtual VOP_Type getInputTypeSubclass(
int idx);
1531 virtual bool getIsInputVisibleDefaultSubclass(
int idx);
1540 virtual void getAllowedInputTypeInfosSubclass(
unsigned idx,
1542 virtual void getAllowedInputTypesSubclass(
unsigned idx,
1549 virtual bool getRequiresInputParameters()
const;
1552 bool disableConnectedParameters();
1555 bool updateParmsActiveState(
bool active);
1570 virtual void addDiagnosticInfo(
const VCC_DiagnosticInfo &diag);
1574 int srcidx,
int dstidx);
1589 const char *
path = 0)
override;
1593 const char *
path = 0)
override;
1600 void getInputsRecursiveHelper(
OP_NodeList& nodes_out,
1603 bool doesDependOnlyOnHelper(
const VOP_Node* other_node,
1604 int max_connections,
1612 bool is_child_call =
false)
override;
1621 virtual bool generateErrorsSubclass();
1625 virtual bool shouldCheckTimeDependence()
const;
1632 bool allowedToChangeParms();
1646 void findSafeConnectorNameBase(
UT_String &in,
1647 bool check_outputs )
const;
1651 virtual void getTentativeInputName(
UT_String &in,
int idx)
const;
1655 virtual void getTentativeOutputName(
UT_String &out,
int idx)
const;
1659 void setVisibleConnectorsDirty();
1663 void generateErrors(
const OP_Context &context);
1666 bool getIncludeIllumVars()
const;
1672 void propagateOpChangeToCodeGenerator(
1676 void reportRecursiveLoopError();
1679 const char *getParameterOpName(
int input_index);
1680 const char *getConstantOpName(
int input_index);
1681 bool isInputRampRBG(
int input_index);
1684 virtual int getParameterOpOutputIndex();
1691 void insertParmVOPsForAllInputs(
1700 void insertConstantVOPsForAllInputs(
1714 void updateVisibleConnectorInfo();
1722 exint myLatestOpChangedId;
1723 unsigned int myMakingInputList : 1,
1724 myIsSearchingForParmInputs : 1,
1726 myLanguageExplicitlySet : 1;
1728 static VOP_Node *theOriginalOpChanged;
1729 static exint theLatestOpChangedId;
1730 static int theLODPref;
1731 static bool theShowPreviewPref;
1733 using IntPair = std::pair<int, int>;
1739 mutable UT_Lock myCachedDataLock;
1740 mutable int myCachedOutputNodeId;
1750 bool myVisibleConnectorsDirty;
virtual int saveCookedData(std::ostream &os, OP_Context &, int binary=0)=0
Reprsents a language for which VOPs can generate source code.
virtual void buildVexScript(UT_String &script, fpreal t, OP_Node *owner, UT_Map< int, bool > *visitlist=0)
int getOutputIndex() const
virtual bool getParameterOrProperty(const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, bool create_missing_multiparms, PRM_ParmList *obsolete=0)
void adoptFromString(UT_String &str)
virtual bool updateParmsFlags()
PXL_API const char * getDescription(const ColorSpace *space)
Return the description of the color space.
fpreal getH() const override
Node position/scale is used by the UI.
VOP_ContextType myContextType
GLuint GLsizei const GLchar * label
std::pair< VOP_Node *, int > InputVariableOverride
fpreal getW() const override
Node position/scale is used by the UI.
virtual void getInputName(UT_String &in, int idx) const
virtual bool willAutoconvertNamedInputType(const OP_ConnectorId &input_name)
virtual bool isAutoVopNode() const
#define SYS_VISIBILITY_EXPORT
const UT_StringHolder & getName() const
#define VOP_IMPLEMENT_CASTS(NAME)
virtual void setFlag(char tag, int8 val)
UT_API UT_ErrorSeverity UTaddFatal(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
const GLuint GLenum const void * binary
GLsizei const GLchar *const * path
const VOP_TypeInfo & getTypeInfo() const
virtual void moveInput(int srcidx, int dstidx, bool forcesubnet=false)
virtual bool preUpdateParmsFlags()
vop_Connector(int groups_above, const UT_StringHolder &group_name, int index, bool expanded)
virtual void finishedLoadingNetwork(bool is_child_call=false)
virtual bool isOutputVopNode() const
Parameters for OP_Node::getInfoText()/OP_Node::getNodeSpecificInfoText()
UT_SymbolMap< VOP_ParmGeneratorList * > VOP_LocalChannelMap
UT_SymbolMap< VOP_ParmGenerator * > VOP_ParmGeneratorMap
**But if you need a result
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
void addFatal(VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
static int & getLODPref()
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
virtual void clearInterrupted()
virtual int getLatestVopVersion() const
virtual void saveDialogScriptExtraInfo(std::ostream &os)
const VOP_Language * myLanguage
void(*)(VOP_Node *, UT_String &, fpreal, OP_Node *, UT_Map< int, bool > *) VexBuildFn1
virtual void findSimpleInputCandidatesFromOutput(int output_index, UT_IntArray &input_indices)
virtual VOP_Node * getPreResolveVariableSrc() const
bool isInitialized() const
const VOP_TypeInfo & getAnyTypeInfo() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
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.
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 void preOpChanged(OP_EventType, void *)
virtual OP_ERROR saveIntrinsic(std::ostream &os, const OP_SaveFlags &flags)
virtual bool addOrMoveVisualizerToOutput(int outputidx)
const UT_StringHolder & getInitCodeStr() const
virtual int getOutputFromName(const UT_String &out) const
virtual void userDataChanged(const UT_StringHolder &key)
UT_StringHolder myDescription
UT_ValArray< VOP_ParmGenerator * > VOP_ParmGeneratorList
virtual bool isSubnetInput() const
Returns true if the node is considered a subnet's input node.
SYS_VISIBILITY_EXPORT void newVopOperator(OP_OperatorTable *table)
virtual bool getParameterOrPropertyByChannel(const UT_StringRef &chname, fpreal now, OP_Node *&op, PRM_Parm *&parm, int &vector_index, PRM_ParmList *obsolete=0)
int getInputIndex() const
GLuint const GLchar * name
bool evalVariableValue(fpreal &v, int i, int thr) override
For expanding compiler string used in auto code generator.
virtual OP_DataType getCookedDataType() const =0
OSL_ContextType
RenderMan shader context types.
GLenum GLenum GLsizei void * table
virtual OP_OpTypeId getOpTypeID() const
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate active
virtual void ensureErrorsAreUpdatedSubclass()
UT_Array< vop_Connector > vop_ConnectorArray
virtual VOP_Node * findSimpleInputFromOutput(int output_index)
virtual bool getIsInputVisibleDefault(int idx)
virtual bool isAutoConvertNode() const
Retruns true if the node is an internal auto-convert node.
virtual OP_ERROR setNamedInputReference(const OP_ConnectorId &input_name, const char *label, int, const OP_ConnectorId *output_name=nullptr)
virtual const char * getChildType() const
void addError(VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
**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 VOP_OutputNameEditorSource * getOutputNameEditorSource()
Returns a pointer used by OPUI_OutputNameEditor to get and set data.
virtual const char * getFileExtension(int binary) const =0
virtual int findParametersOrProperties(fpreal now, OP_PropertyLookupList &list)
virtual void getExtraNodesForCopyOrDelete(OP_NodeList &extras) const
void addWarning(VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
Parameters for OP_Node::fillInfoTree()/OP_Node::fillInfoTreeNodeSpecific()
virtual void fillInfoTreeNodeSpecific(UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms)
UT_ValArray< VOP_GlobalVarData * > VOP_GlobalVarList
GLenum GLsizei GLsizei GLint * values
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour.
void getInputName(UT_StringHolder &in, int idx) const
OP_ERROR getErrorSeverity() override
virtual void referencedParmChanged(int pi)
void addMessage(VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
vop_Connector(int groups_above, int index=-1)
virtual const char * getOpType() const
UT_API UT_ErrorSeverity UTaddWarning(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
virtual bool loadPacket(UT_IStream &is, short class_id, short sig, const char *path=0)
virtual int getInputFromName(const UT_String &in) const
VOP_Type
Enumeration of the built-in (basic) VOP data types.
UT_SharedPtr< const VOP_VariableTags > VOP_VariableTagsHandle
virtual OP_OpTypeId getChildTypeID() const =0
const OP_DataMicroNode & dataMicroNodeConst() const override
virtual bool runCreateScript()
virtual bool evalVariableValue(UT_String &val, int index, int thread)
bool load(UT_IStream &is, const char *ext="", const char *path=0) override
virtual OP_ERROR save(std::ostream &os, const OP_SaveFlags &flags, const char *path_prefix="", const UT_String &name_override=UT_String())
VOP_ShaderNameStyle
The allowed name formats when asking for shader name.
RSL_ContextType
RenderMan shader context types.
virtual void getOutputName(UT_String &out, int idx) const
virtual bool shouldPreResolveOutput(int output_index) const
UT_SymbolMap< VOP_GlobalVarData * > VOP_GlobalVarMap
UT_ValArray< VOP_Node * > VOP_NodeList
virtual bool getDebug() const
GLsizei GLenum GLenum * types
virtual bool willAutoconvertInputType(int input_idx)
virtual VOP_CodeGenerator * getVopCodeGenerator()
virtual void getAdditionalUndoNodes(const OP_NodeList &orig_list, OP_NodeList &nodes_for_input_undo)
void clear()
Resets list to an empty list.
virtual VOP_Node * getRealDefinition()
void getOutputName(UT_StringHolder &out, int idx) const
static const char * theChildTableName
virtual void onInputAllocated(OP_Input *new_input, int index)
Overriden in VOPs.
const UT_StringHolder & getName() const
UT_Array< VOP_AutoNodeInfo > VOP_AutoNodeInfoList
virtual OP_ERROR bypassMe(OP_Context &context, int &copied_input)=0
const VOP_Language * getLanguage() const
Returns the shader language used by this node.
virtual const PRM_Template * getShaderParmTemplates()
void stealGlobalErrorsForHelper()
UT_StringHolder myGroupName
virtual VOP_CodeGenerator * getVopAutoCodeGenerator()
UT_API UT_ErrorSeverity UTaddError(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
ImageBuf OIIO_API channels(const ImageBuf &src, int nchannels, cspan< int > channelorder, cspan< float > channelvalues={}, cspan< std::string > newchannelnames={}, bool shuffle_channel_names=false, int nthreads=0)
virtual void onCreated()
Overriden in VOPs.
virtual bool setDebug(bool on_off)
void(*)(VOP_Node *, UT_String &, fpreal, DEP_MicroNode *, UT_Map< int, bool > *) VexBuildFn2
VOP_AutoNode * myAutoVopNode
virtual void deleteCookedData()=0
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.
virtual void postOpChanged(OP_EventType, void *)