HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VOP_Node Class Reference

#include <VOP_Node.h>

+ Inheritance diagram for VOP_Node:

Public Types

enum  InputParmGenType { INPUT_TYPE_CONST, INPUT_TYPE_PARM, INPUT_TYPE_SUBNET_INPUT }
 
using InputVariableOverride = std::pair< VOP_Node *, int >
 
- Public Types inherited from OP_Node
enum  OTLSyncMode { OTLSYNC_DELAY = 0, OTLSYNC_DOSYNC = 1 }
 
enum  TransformMode {
  TRANSFORM_WORLD, TRANSFORM_IWORLD, TRANSFORM_PRE, TRANSFORM_PARENT,
  TRANSFORM_PARM, TRANSFORM_PRECONSTRAINT, TRANSFORM_PARENTBONE, TRANSFORM_RAWPARM,
  TRANSFORM_PREPARM, TRANSFORM_PRERAWPARM
}
 
enum  RampError { RAMP_ERR_SUCCESS, RAMP_ERR_NOT_FOUND, RAMP_ERR_ONLY_KEY }
 
using OP_LockTypes = OP_NodeFlags::OP_LockTypes
 
enum  TraverseOptions {
  TRAVERSE_DEFAULT = 0x0000, TRAVERSE_INTO_SUBNETS = 0x0001, TRAVERSE_REF_INPUTS = 0x0002, TRAVERSE_ONLY_USED_INPUTS = 0x0004,
  TRAVERSE_PASSTHROUGH_INPUTS = 0x0008, TRAVERSE_EXTRA_INPUTS = 0x0010, TRAVERSE_SIMULATION_INPUTS = 0x0020, TRAVERSE_COOKED_INPUT_INDEX_INPUTS = 0x0040
}
 

Public Member Functions

const char * getChildType () const override
 
const char * getOpType () const override
 
OP_OpTypeId getChildTypeID () const override
 
OP_OpTypeId getOpTypeID () const override
 
OP_DataType getCookedDataType () const override
 Nobody should have to override this, but it's public for other people. More...
 
void opChanged (OP_EventType reason, void *data=0) override
 
void referencedParmChanged (int pi) override
 
virtual void getParameterBlock (UT_String &parmstr, const char *shader_contexts)
 
virtual void getParameterDeclaration (UT_String &parmdecl, const VOP_Language *language, const VOP_CodeGenContext &context)
 The parameter variable declaration using the syntax of a given language. More...
 
virtual void getParameterComment (UT_String &parm_comment, const VOP_Language *language, const VOP_CodeGenContext &context)
 
virtual bool definesShaderExtraParameters () const
 
virtual int getShaderExtraParameters (UT_Array< VOP_Type > &types, UT_IntArray &doexport, UT_StringArray &names, UT_StringArray &def, VOP_Type shader_type=VOP_TYPE_UNDEF) const
 
virtual void getPragmas (UT_String &pragmastr, const VOP_CodeGenContext &context)
 Get compiler pragmas for thi snode. More...
 
virtual void getModulesToImport (UT_StringArray &modules, const VOP_CodeGenContext &context)
 If the node generates a shader call, get the modules names to import. More...
 
virtual void getOuterCode (UT_String &codestr, const VOP_CodeGenContext &context)
 
virtual void getCode (UT_String &codestr, const VOP_CodeGenContext &context)
 Get the code fragment to be included in the shader code. More...
 
virtual bool getParmConstantString (const char *parmname, const VOP_TypeInfo &type_info, UT_String &str, bool expand_string, const VOP_Language *l=0)
 Get the constant code that encodes the value of the node parameter. More...
 
bool getParmPrintableString (const char *parmname, VOP_Type type, UT_String &str, bool expand_string) const
 
virtual bool getIsParmGenerator () const
 Returns true if this VOP is a VOP_ParmGenerator or subclass. More...
 
bool addOrMoveVisualizerToOutput (int outputidx) override
 Moves a visualizer into our output list. More...
 
void createAutoCodeGenerator ()
 
void createAutoShaderChildren ()
 
virtual void initializeNode ()
 
bool isInitialized () const
 
virtual void ensureParametersAreValid ()
 
void getOutputName (UT_String &out, int idx) const override
 
void getOutputName (UT_StringHolder &out, int idx) const
 
int getOutputFromName (const UT_String &out) const override
 
VOP_Type getOutputType (int idx)
 
void getOutputTypeInfo (VOP_TypeInfo &type_info, int idx) const
 
VOP_Type getNamedOutputType (const OP_ConnectorId &output_name)
 
void getNamedOutputTypeInfo (VOP_TypeInfo &type_info, const OP_ConnectorId &output_name)
 
VOP_VariableTagsHandle getOutputVariableTags (int idx, VOP_Type shader_type) const
 
VOP_VariableTagsHandle getNamedOutputVariableTags (const OP_ConnectorId &output_name, VOP_Type shader_type) const
 
VOP_VariableTagsHandle getVariableTagsFromInputNode (int idx, VOP_Type shader_type) const
 Returns variable tags provided by an input node on the given input idx. More...
 
void getInputName (UT_String &in, int idx) const override
 
void getInputName (UT_StringHolder &in, int idx) const
 
int getInputFromName (const UT_String &in) const override
 
VOP_Type getInputType (int idx) const
 
void getInputTypeInfo (VOP_TypeInfo &type_info, int idx) const
 
VOP_Type getNamedInputType (const OP_ConnectorId &input_name)
 
void getNamedInputTypeInfo (VOP_TypeInfo &type_info, const OP_ConnectorId &input_name)
 
bool getIsInputVisibleDefault (int idx) override
 
virtual void getAllowedInputTypeInfos (unsigned idx, VOP_VopTypeInfoArray &typeinfos)
 
virtual void getAllowedInputTypes (unsigned idx, VOP_VopTypeArray &voptypes)
 
void getAllAllowedInputTypeInfos (unsigned idx, VOP_VopTypeInfoArray &typeinfos)
 
virtual int getSignatureCount () const
 
virtual void getSignatureName (UT_String &name, int index) const
 
virtual void setCurrentSignature (const char *name)
 
virtual bool getCurrentSignatureName (UT_String &name)
 Obtains the current signature name. More...
 
void setInputVariableOverride (int input_index, const InputVariableOverride &var_override)
 
InputVariableOverride getInputVariableOverride (int input_index) const
 
virtual bool areOutputVariablesFixed (const VOP_CodeGenContext &ctx)
 
virtual bool areOutputVariablesFixed (VOP_ContextType context_type)
 
virtual void getFixedOutputVariable (UT_String &var, int idx)
 
virtual void getOutputVariableName (UT_String &var, int idx) const
 
virtual void getExtraTypesToDefine (UT_Array< VOP_TypeInfo > &types)
 
virtual bool shouldCheckInputContextForMergeInputNodeList () const
 
void mergeInputNodeList (VOP_NodeList &nodes, const VOP_CodeGenContext *context=nullptr)
 
void mergeInputNodeListInternal (VOP_NodeList &nodes, VOP_NodeList &extraterminals, const VOP_CodeGenContext *context=nullptr)
 
virtual bool forceCodeGenerationOfInputs (const VOP_CodeGenContext &context, bool check_shader_context) const
 
bool forceCodeGenerationInContext (const VOP_CodeGenContext &context) const
 
bool isInputForShaderType (int input_idx, const VOP_CodeGenContext &context) const
 
bool isOutputForShaderType (int output_idx, const VOP_CodeGenContext &context) const
 
virtual VOP_NodefindShader (VOP_Type shader_type, fpreal now)
 
virtual void findAllShaders (VOP_NodeList &shader_nodes, VOP_ShaderTypeList &shader_types, UT_StringArray &output_names)
 
virtual bool canDefineShader () const
 
virtual bool isShader () const
 
virtual bool isShader (VOP_Type shader_type) const
 
virtual bool translatesDirectlyToUSD () const
 
virtual bool isUSDNodeGraph () const
 
virtual bool isCachedShader () const
 
bool isExternalShader () const
 
virtual bool isEncapsulatedShader () const
 
virtual VOP_NodegetProcedural (VOP_Type type)
 Material VOP may be able to return a procedural node. More...
 
virtual bool getCachedShaderCode (std::ostream &os, VOP_ContextType context_type) const
 
void getShaderArgInfos (UT_Array< VOP_FunctionArgInfo > &arg_infos, VOP_Type shader_type)
 Obtains shader parameters information. More...
 
bool isParmForShaderType (const PRM_Parm &parm, VOP_Type shader_type, bool check_context_tag)
 Checks whether the given parm belongs to the shader of a given type. More...
 
void getVopFunctionArgInfosFromInputsAndOutputs (UT_Array< VOP_FunctionArgInfo > &arg_infos, int first_input, int last_input, int first_output, int last_output, bool prefix_input_arg_and_var_names, bool prefix_input_var_names=false, const VOP_CodeGenContext *context=nullptr)
 
void getVopFunctionArgInfosFromNodeParameters (UT_Array< VOP_FunctionArgInfo > &arg_infos, const VOP_CodeGenContext *context=nullptr)
 
void getVopFunctionArgInfosFromNodeParameters (UT_Array< VOP_FunctionArgInfo > &arg_infos, VOP_Type shader_type)
 
void getVopFunctionArgInfosFromInputsOutputsAndParms (UT_Array< VOP_FunctionArgInfo > &arg_infos, int first_input, int last_input, int first_output, int last_output, bool prefix_input_arg_and_var_names, bool prefix_input_var_names=false, const VOP_CodeGenContext *context=nullptr)
 
void getVopFunctionArgInfosFromGlobals (UT_Array< VOP_FunctionArgInfo > &arg_infos, VOP_Type shader_type)
 
virtual void getVopFunctionArgInfosFromExports (UT_Array< VOP_FunctionArgInfo > &arg_infos, VOP_Type shader_type)
 Helper method to obtain all known export parameters from a shader node. More...
 
virtual void registerExtraVarRequests (VOP_ExtraVarRequests &extra_var_requests, const VOP_CodeGenContext &context)
 
void pruneVopFunctionArgInfos (UT_Array< VOP_FunctionArgInfo > &arg_infos, bool keep_all_export_args=false)
 
bool isParmAtDefaultValue (const char *parm, const PRM_Template *tplate=nullptr) const
 
void outputVopFunctionVariableDeclarations (UT_WorkBuffer &buffer, const UT_Array< VOP_FunctionArgInfo > &arg_infos, bool use_defined_input_defaults)
 
virtual bool shouldOutputNodeVariableDeclarations () const
 
const VOP_GlobalVarMapgetGlobalVariables () const
 
const VOP_ParmGeneratorMapgetLocalVariables () const
 
const VOP_LocalChannelMapgetLocalChannels () const
 
void setTables (const VOP_GlobalVarMap *globals, VOP_ParmGeneratorMap *locals, VOP_LocalChannelMap *channels)
 
void setTablesFromVop (VOP_Node *vop)
 
void addLocalVariable (const UT_StringRef &varname, VOP_ParmGenerator *definer)
 
void deleteLocalVariable (const UT_StringRef &varname)
 
void deleteLocalChannelDefiner (VOP_ParmGenerator *definer)
 
void getSortedGlobalVariableList (VOP_GlobalVarList &vars, VOP_ContextType type, bool mustBeReadable, bool mustBeWritable)
 
virtual VOP_ParmGeneratorMapgetSubnetVariables ()
 
VOP_ParmGeneratorMapgetParentSubnetVariables () const
 
void addParentSubnetVariable (const char *varname, VOP_ParmGenerator *definer)
 
void deleteParentSubnetVariable (const char *varname)
 
virtual bool shouldPrefixInputVariablesInsideSubnet () const
 Returns true if input variables should be prefixed inside the subnet. More...
 
virtual bool usesSubnetConnectorsAsShaderParms () const
 
virtual bool showsShaderParmsAsSubnetConnectors () const
 
virtual void shaderParmGrandChildAdded (VOP_Node *grand_child)
 
virtual void shaderParmGrandChildChanged (VOP_Node *grand_child)
 
virtual void shaderParmGrandChildDeleted (VOP_Node *grand_child)
 
void setFlag (char flag, int8 val) override
 
bool setInOutLOD (int level, bool inoff)
 
bool getInOutLOD (int level) const
 
OP_ERROR setInput (unsigned idx, OP_Node *op, unsigned outputIdx=0) override
 
OP_ERROR setInputReference (unsigned idx, const char *label, int keeppos, unsigned outputIdx=0) override
 Connects an input to particular node by name in the network. More...
 
OP_ERROR setNamedInput (const OP_ConnectorId &input_name, OP_Node *op, const OP_ConnectorId *output_name=nullptr) override
 New input functions that use names instead of indices. More...
 
OP_ERROR setNamedInputReference (const OP_ConnectorId &input_name, const char *label, int, const OP_ConnectorId *output_name=nullptr) override
 
void moveInput (int srcidx, int dstidx, bool forcesubnet=false) override
 
virtual bool isConnected (int inputidx, bool recursive)
 
virtual
VOP_OutputNameEditorSource
getOutputNameEditorSource ()
 Returns a pointer used by OPUI_OutputNameEditor to get and set data. More...
 
virtual void dirtyShaderList ()
 Some material vops cache a list of shader that needs to be dirtied. More...
 
virtual VOP_NodegetSubnetOutputNode () const
 
bool isInNonShaderSubNetwork () const
 Returns true if this node is immediatly inside a non-shader subnet. More...
 
virtual bool isSubnetInput () const
 Returns true if the node is considered a subnet's input node. More...
 
virtual VOP_NodegetPreResolveVariableSrc () const
 
virtual bool shouldPreResolveOutput (int output_index) const
 
virtual bool isOutputVopNode () const
 
virtual bool isAutoVopNode () const
 
virtual bool isAutoConvertNode () const
 Retruns true if the node is an internal auto-convert node. More...
 
VOP_NodeinsertParmGenerator (int inputidx, InputParmGenType type)
 
VOP_NodeinsertNode (int inputidx, const char *nodetype, bool connect_to_input, const char *undo_string=NULL)
 
int inputParmTypeIndex (int inputidx, const PRM_Parm *parm) const
 
const char * inputParmTypeString (int inputidx, const PRM_Parm *parm) const
 
virtual VOP_ParmGeneratorgetInsertParmGeneratorSource (int inputidx)
 
void insertParmGeneratorsForAllInputs (InputParmGenType type, UT_SymbolMap< VOP_Node * > *created_vops=NULL)
 
void insertBindExportsForAllOutputs (bool subnet)
 
VOP_NodeinsertBindExport (int outputidx, bool subnet)
 
void rewireOutputConnections (const UT_StringArray &old_names, const UT_StringArray &new_names)
 
virtual void getParmNameFromInput (UT_String &parmname, int inputidx) const
 
virtual void getParmNameFromOutput (UT_String &parmname, int outputidx) const
 
const PRM_ParmgetParmFromInput (int inputidx) const
 Find the parameter associated with an input, if any. More...
 
const PRM_ParmgetParmFromOutput (int outputidx) const
 
bool outputDefaultParmDefinition (std::ostream &os, int idx)
 
void saveNodeInputAndOutputDefinitions (std::ostream &os)
 Writes out the input and output connector definitions. More...
 
void saveDialogScriptExtraInfo (std::ostream &os) override
 
bool saveParmValues (std::ostream &os)
 Saves the parameter values to the output stream. More...
 
bool loadParmValues (UT_IStream &is)
 Loads the parameter values to the output stream. More...
 
virtual VOP_NodegetRealDefinition ()
 
const VOP_LanguagegetLanguage () const
 Returns the shader language used by this node. More...
 
void setDefaultLanguage ()
 
fpreal getW () const override
 Absolute width. More...
 
fpreal getH () const override
 Absolute height. More...
 
void clearInterrupted () override
 
bool willAutoconvertInputType (int input_idx) override
 Returns true if the input will be auto-converetd, false otherwise. More...
 
VOP_TypeInfo getAutoConvertTargetTypeInfo (int input_idx)
 
VOP_Type getAutoConvertTargetType (int input_idx)
 
VOP_TypeInfo getAutoConvertTypeInfoFromType (int input_idx, const VOP_TypeInfo &source_type)
 
VOP_Type getAutoConvertTypeFromType (int input_idx, VOP_Type source_type)
 
void addAutoVopNodePointer (VOP_AutoNode *auto_node, int input_index)
 Do not call this method directly. More...
 
void clearAutoVopNodeInfos ()
 
VOP_AutoNodegetAutoVopNode (int input_idx)
 
const VOP_AutoNodegetAutoVopNode (int input_idx) const
 
int getAutoVopNodeCount ()
 
VOP_OutputInfoManagergetOutputInfoManager ()
 
void appendOutputOverrideCode (UT_String &str_code)
 
bool needToExecute ()
 
void onNodeChange (OP_EventType type)
 Do not call this method directly. More...
 
OP_ERROR save (std::ostream &os, const OP_SaveFlags &flags, const char *path_prefix="", const UT_String &name_override=UT_String()) override
 
bool load (UT_IStream &is, const char *ext="", const char *path=0) override
 
bool getDebug () const override
 Gets/sets the value of the debug flag on this node. More...
 
bool setDebug (bool on_off) override
 
bool getMaterialFlag () const
 Gets/sets the value of the material flag on this node. More...
 
bool setMaterialFlag (bool on_off)
 
virtual void initMaterialFlag ()
 
void getSubOutputAndSubInputs (OP_Node *&outputnode, OP_NodeList &inputnodes) const
 
void hideInput (int input_index, bool hide)
 
void setReferenceTargetDefaults (int input_index, bool do_set)
 
bool getAllowEditingParmDefaults (int input_index)
 
VEX_ContextType getVexContextType () const
 
RSL_ContextType getRslContextType () const
 
OSL_ContextType getOslContextType () const
 
virtual bool isSingleContextType () const
 
VOP_ContextType getShaderContextType () const
 
virtual void getFixedParameterMap (UT_StringArray &parmmap)
 
virtual void getShaderInputMap (UT_StringArray &inputmap)
 
bool isCVEXPathParm (const char *parm_name) const
 Utility function to check if a parm by a given name is a cvex shader. More...
 
const PRM_TemplategetShaderParmTemplates () override
 Obtains the template array for shader parameters. More...
 
UT_ValArray< PRM_Parm * > getUSDShaderParms (bool force_parms_at_default=false)
 
UT_ValArray< PRM_Parm * > getUSDPreviewShaderParms ()
 Returns node parameters used to author a standard USD preview shader. More...
 
virtual bool allowUSDShaderParm (PRM_Parm &parm)
 
bool deleteIndependentInputNodes (int input_index)
 
void getInputsRecursive (OP_NodeList &nodes_out)
 
bool doesDependOnlyOn (const VOP_Node *other_node, int max_connections, bool recurse)
 
void getParmInputs (VOP_ParmGeneratorList &parm_vops)
 
VOP_NodefindSimpleInput (int index)
 
virtual VOP_NodefindSimpleInputFromOutput (int output_index)
 
virtual void findSimpleInputCandidatesFromOutput (int output_index, UT_IntArray &input_indices)
 
virtual void getInputDefaultValue (UT_String &def, int idx) const
 Gets a default value of an explicitly defined input (applies to subnets) More...
 
virtual int getNumNodeDefinedOutputs () const
 
void getExtraNodesForCopyOrDelete (OP_NodeList &extras) const override
 
bool runCreateScript () override
 
void updateInputFlagsFromOperator (VOP_OperatorInfo *type_info, bool keep_visible)
 
void onCreated () override
 Overriden in VOPs. More...
 
void hideNamedInput (const OP_ConnectorId &connector_name, bool hide)
 
virtual void getAllowedNamedInputTypeInfos (const OP_ConnectorId &input_name, VOP_VopTypeInfoArray &typeinfos)
 
virtual void getAllowedNamedInputTypes (const OP_ConnectorId &input_name, VOP_VopTypeArray &voptypes)
 
VOP_TypeInfo getNamedAutoConvertTargetTypeInfo (const OP_ConnectorId &input_name)
 
VOP_Type getNamedAutoConvertTargetType (const OP_ConnectorId &input_name)
 
VOP_TypeInfo getNamedAutoConvertTypeInfoFromType (const OP_ConnectorId &input_name, const VOP_TypeInfo &source_type)
 
VOP_Type getNamedAutoConvertTypeFromType (const OP_ConnectorId &input_name, VOP_Type source_type)
 
bool willAutoconvertNamedInputType (const OP_ConnectorId &input_name) override
 
VOP_NodeinsertNamedNode (const OP_ConnectorId &input_name, const char *nodetype, bool connect_to_input, const char *undo_string=NULL)
 
const OP_DataMicroNodedataMicroNodeConst () const override
 
void stealGlobalErrorsForHelper ()
 
bool getInputTypeInfoFromInputNode (VOP_TypeInfo &type_info, int idx, bool grow_inputs_to_idx=false) const
 
void getInputNameFromInputNode (UT_String &in, int idx, bool check_output_names) const
 
int getInputVisibleIndex (int idx)
 
const vop_ConnectorArraygetVisibleInputConnectors ()
 
int getOutputVisibleIndex (int idx)
 
const vop_ConnectorArraygetVisibleOutputConnectors ()
 
void setInputGroupExpanded (const UT_StringHolder &group, bool expanded)
 
void setAllInputGroupsExpanded (bool expanded)
 
bool getInputGroupExpanded (const UT_StringHolder &group)
 
void getAllInputsGrouped (UT_StringArray &groups, UT_StringMap< UT_IntArray > &mapping)
 
void setThumbnail (TIL_Thumbnail *thumbnail)
 
TIL_ThumbnailgetThumbnail () const
 Returns a pointer to our thumbnail if we have one. More...
 
void userDataChanged (const UT_StringHolder &key) override
 Handle changes to our user data. This may require a redraw. More...
 
VOP_CodeGeneratorgetVopCodeGenerator () override
 
VOP_CodeGeneratorgetVopAutoCodeGenerator () override
 
const VOP_CodeGeneratorgetVopAutoCodeGenerator () const override
 
virtual UT_IntArray getShaderLayerExportsInputsToCopy (int out_idx, VOP_Type shader_type)
 
virtual UT_StringHolder getShaderLayerExportsToAdd (int out_idx, VOP_Type shader_type)
 
virtual UT_StringHolder getShaderName (VOP_ShaderNameStyle style, VOP_Type shader_type) const
 Returns the name, type, and render mask of the VOP shader. More...
 
UT_StringHolder getShaderName (bool forvex, VOP_Type shader_type) const
 Returns the name, type, and render mask of the VOP shader. More...
 
virtual UT_StringHolder getShaderNameForSignature (const UT_StringRef &signature) const
 Returns the name, type, and render mask of the VOP shader. More...
 
virtual VOP_Type getShaderType () const
 Returns the name, type, and render mask of the VOP shader. More...
 
const char * getRenderMask () const
 Returns the name, type, and render mask of the VOP shader. More...
 
bool evalVariableValue (UT_String &v, int index, int thread) override
 For expanding compiler string used in auto code generator. More...
 
bool evalVariableValue (fpreal &v, int i, int thr) override
 For expanding compiler string used in auto code generator. More...
 
void getCoShaderNodes (UT_ValArray< VOP_Node * > &coshaders, const char *parm_name)
 
void getCoShaderNodesOutputNames (UT_StringArray &outputs, const char *parm_name)
 
virtual bool isVopMethod () const
 Returns true if the VOP represents a method inside a class. More...
 
virtual bool isVopMethodPublic () const
 Returns true if the VOP represents a method inside a class. More...
 
virtual void getVopFunctionName (UT_String &function_name) const
 
virtual void getVopFunctionReturnInfo (VOP_FunctionArgInfo &i) const
 
virtual void getVopFunctionArgInfos (UT_Array< VOP_FunctionArgInfo > &arg_infos)
 
UT_StringHolder getVopFunctionCallName (const VOP_CodeGenContext &ctx)
 Constructs a shader call, assuming this node represents a shader. More...
 
void getVopFunctionCallCode (UT_String &codestr, const VOP_CodeGenContext &ctx)
 Constructs a shader call, assuming this node represents a shader. More...
 
void getVopFunctionCallModules (UT_StringArray &modules, const VOP_CodeGenContext &ctx)
 Constructs a shader call, assuming this node represents a shader. More...
 
void appendVopFunctionArgument (UT_StringArray &arg_names, UT_StringArray &arg_vals, const VOP_FunctionArgInfo &arg_info)
 Constructs a shader call, assuming this node represents a shader. More...
 
void setLanguage (const VOP_Language *language)
 Sets the specific language for this node. More...
 
bool setLanguage (const UT_StringRef &language_name)
 Sets the specific language for this node. More...
 
virtual int getNumSubnetInputsForChildren () const
 
virtual int getSubnetInputIndexForChildren (int child_input) const
 
int getChildConnectorIndexFromParent (int parent_input) const
 
virtual void getSubnetOutputTerminalChild (VOP_Node *&output_vop, int &input_idx, int subnet_output_idx) const
 
void setErrorsDirty ()
 Manipulate cook error dirty state. More...
 
void setErrorsClean (const OP_Context &context)
 Manipulate cook error dirty state. More...
 
bool areErrorsDirty (const OP_Context &context)
 Manipulate cook error dirty state. More...
 
bool getParameterOrProperty (const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, bool create_missing_multiparms, PRM_ParmList *obsolete=0) override
 
bool getParameterOrPropertyByChannel (const UT_StringRef &chname, fpreal now, OP_Node *&op, PRM_Parm *&parm, int &vector_index, PRM_ParmList *obsolete=0) override
 
int findParametersOrProperties (fpreal now, OP_PropertyLookupList &list) override
 
- Public Member Functions inherited from OP_Network
int getNchildren () const override
 
OP_NodegetChild (const char *name=0, int *hint=0) const override
 
OP_NodegetChild (int index) const override
 
virtual int getChildIndex (const OP_Node *) const
 
int isNetwork () const override
 
int getDandROpsEqual () override
 
int updateDandROpsEqual (int check_inputs=1) override
 
virtual void moveChildIndex (int srcindex, int dstindex)
 
int getTemplateOps (UT_ValArray< OP_Node * > &list)
 
int getOpsByName (const char *op_name, UT_Array< OP_Node * > &list) const
 
OP_NodepeekCurrentNodePtr ()
 
void stashCurrentNodePtr (const OP_Node *child)
 
OP_NodegetStashedCurrentNodePtr () const
 
virtual OP_NodegetCurrentNodePtr ()
 
virtual OP_NodegetDisplayNodePtr ()
 
virtual OP_NodegetRenderNodePtr ()
 
virtual CHOP_NodegetAudioNodePtr ()
 
virtual const UT_ValArray
< OP_Node * > & 
getOutputNodePtrs () const
 
virtual void childDeleted (OP_Node *)
 
virtual void childFlagChange (OP_Node *)
 
fpreal getChildrenScale () const
 
void setChildrenScale (fpreal scale)
 
virtual OP_OperatorFiltergetOperatorFilter ()
 
void getNetworkScopeStack (UT_StringArray &scope_stack)
 
bool isOperatorAllowedAsChild (OP_Operator *op)
 Returns true if the given op can be created as a child of this network. More...
 
virtual bool isOperatorAllowedInTabMenu (OP_Operator *op)
 Returns ture if the given op can show up in the Tab menu. More...
 
bool isToolAllowed (const UT_StringHolder &tool_name, const UT_StringArray &submenus)
 Returns true if the given tool can appear in the Tab menu for this net. More...
 
OP_NodecreateNode (const char *type, const char *name=0, int notify=1, int explicitly=1, int loadcontents=1, int *aliasedScriptedOp=0, char *matIconFilename=0, bool exact_type=false)
 
OP_NodecreateNodeOfExactType (const char *type, const char *name=0)
 Convenience method for requesting en exact type. More...
 
OP_NetworkcreateProxyRefNode (const char *path) override
 
void getPotentialChildErrorNodes (OP_NodeList &nodes) const override
 
OP_NodecopyNode (const OP_Node *srcnode, const char *toname=NULL, bool reference_parameters=false)
 
bool copyItems (const OP_NetworkBoxItemList &srcitems, OP_NetworkBoxItemList &destitems, bool reference_parameters, bool relative_references, bool connect_outputs_to_multi_inputs)
 
void copyPickedItems (const OP_Network *srcnet, OP_ItemTypeMask item_type_mask, OP_Group *newnodes=nullptr, const OP_FixNameParms *fix_name_parms=nullptr)
 
OP_NetworkBoxcopyNetworkBox (OP_NetworkBox *srcnetbox, OP_NetworkBoxSaveType save_type, OP_NodeList *nodes=NULL, const char *toname=NULL, bool reference_parameters=false)
 
OP_PostItcopyPostItNote (OP_PostIt *src_note, const char *toname=0)
 
void copyPickedNodes (const OP_Network *srcnet, OP_Group *newnodes=0, const OP_FixNameParms *fix_name_parms=0)
 
virtual bool movePickedNodes (OP_Network *src_net, OP_NodeList *src_nodes_ptr=NULL, OP_NodeList *dest_nodes_ptr=NULL)
 
int destroyNode (OP_Node *node)
 
int destroyNodes (const OP_NodeList &nodes)
 
virtual int renameNode (OP_Node *node, const char *name, OP_RenameAction action=OP_RENAME_NORMAL)
 
OP_NetworkfindOrCreateMotionEffectsNetwork (bool create=true)
 
OP_NodedeleteImplicitAncestors (OP_Node &node, const char *state=0, OP_Node *keep_node=0, bool included=true)
 
OP_NodegetImplicitAncestors (OP_NodeList &implicit_nodes, OP_NodeList &border_nodes, OP_Node &node, const char *state=0, OP_Node *keep_node=0, bool included=true)
 
int getAllCollections (UT_ValArray< CH_Collection * > &list, int hide=0)
 
void uniqueNodeName (UT_String &name, UT_StringSet *fakeChildren=0)
 
virtual int isInvalidName (const char *name)
 
OP_ERROR savePickedItems (std::ostream &os, const OP_SaveFlags &flags, OP_ItemTypeMask item_type, OP_NetworkBoxSaveType save_type=OP_NETWORKBOX_SAVE_ALL_CONTENTS)
 
OP_ERROR saveAllItems (std::ostream &os, const OP_SaveFlags &flags, OP_ItemTypeMask item_type)
 
OP_ERROR saveSingle (std::ostream &os, OP_Node *op, const OP_SaveFlags &flags, const UT_String &name_override=UT_String())
 
OP_ERROR saveSingle (std::ostream &os, OP_Node *op, const OP_SaveFlags &flags, const OP_SaveFlags &childflags, std::set< int > *renaming_exclude_ids=NULL, const UT_String &name_override=UT_String())
 
OP_ERROR saveSingleNetworkBox (std::ostream &os, OP_NetworkBox &netbox, const OP_SaveFlags &flags, OP_NetworkBoxSaveType save_type, OP_NodeList *nodes=NULL)
 
OP_ERROR saveSinglePostIt (std::ostream &os, OP_PostIt &pnote, const OP_SaveFlags &flags)
 Save a single post it note. More...
 
OP_ERROR saveSingleDot (std::ostream &os, OP_Dot &dot, const OP_SaveFlags &flags)
 Save a single dot. More...
 
OP_ERROR saveOpList (std::ostream &os, const UT_Array< OP_Node * > &op_list, const OP_SaveFlags &save_flags, int *nsaved=NULL)
 
OP_ERROR saveItemList (std::ostream &os, const OP_NetworkBoxItemList &items, const OP_SaveFlags &save_flags)
 
const char * getClipboardFile (const char *file_prefix=0)
 
int saveToClipboard (int all, OP_TileType type=OP_TILE_NODE, int grouplist=0, OP_ItemTypeMask item_type=OP_ITEMTYPE_NODE, const char *file_prefix=0)
 
int loadFromClipboard (fpreal x=0, fpreal y=0, bool turn_off_display=false, const char *file_prefix=0)
 
bool loadNetwork (UT_IStream &is, int merge=0, const char *pattern=NULL, int overwrite=0, const OP_FixNameParms *fix_name_parms=NULL, UT_StringArray *src_names=NULL, UT_StringArray *dest_names=NULL)
 
bool loadIntoNetwork (UT_IStream &is, OP_OverwriteAction overwrite=OP_NO_OVERWRITE, bool merge=false, const char *pattern=NULL, const OP_FixNameParms *fix_name_parms=NULL, UT_StringArray *src_names=NULL, UT_StringArray *dest_names=NULL)
 
bool pasteNetworkForMove (UT_IStream &is, UT_StringArray &src_names, UT_StringArray &dest_names)
 
bool opShouldHandleChange (OP_EventType reason) override
 
void clearUnreferencedInputs () override
 
int getLoadCollisions (UT_IStream &is, OP_NodeList &node_list, UT_ValArray< OP_NetworkBox * > &netbox_list, UT_ValArray< OP_PostIt * > &pnote_list, const char *pattern="*")
 
void simulateNameCollisions (UT_StringArray &names)
 
const UT_ValArray< OP_Node * > * getSortedList ()
 
OP_NodegetAnyOutputOf (OP_Node *op) const
 
OP_NodegetAnyOP () const
 
char * findUniqueGroupName (const char *basename=0)
 
OP_GroupfindGroup (const char *name) const
 
OP_GroupcreateGroup (const char *name=0)
 
int destroyGroup (const char *name)
 
int destroyGroup (OP_Group *group)
 
int getNgroups () const
 
OP_GroupgetGroup (int index) const
 
int getGroups (UT_ValArray< OP_Group * > &list, int internal=0)
 
int getMemberships (const OP_Node *node, UT_ValArray< OP_Group * > &list, int internal=0)
 
char * findUniqueNetworkBoxName (const char *base=NULL)
 
char * findUniquePostItNoteName (const char *base=NULL)
 
char * findUniqueDotName (const char *base=NULL)
 
OP_NetworkBoxcreateNetworkBox (const char *name, OP_NetworkBoxItemList *items=NULL)
 
int getNnetworkBoxes () const
 
OP_NetworkBoxfindNetworkBox (const char *const_path) override
 
OP_NetworkBoxgetNetworkBox (int index) const
 
OP_NetworkBoxgetNetworkBox (const char *name) const
 
OP_PostItcreatePostItNote (const char *name)
 Pass in NULL as the name if you'd like a default name. More...
 
int getNpostItNotes () const
 
OP_PostItfindPostItNote (const char *const_path) override
 
OP_PostItgetPostItNote (int index) const
 
OP_PostItgetPostItNote (const char *name) const
 
OP_DotListgetDotList ()
 
int getNdots () const
 
OP_DotfindDot (const char *const_path) override
 
OP_DotgetDot (int index) const
 
OP_DotgetDot (const char *name) const
 
unsigned int nPicked (OP_ItemTypeMask item_type_mask, bool include_hidden_nodes) const
 
void getPickedItems (OP_ItemTypeMask item_type_mask, OP_NetworkBoxItemList &picked, bool include_hidden=false, bool recurse_picked_netboxes=false) const
 
void getAllItems (OP_ItemTypeMask item_type_mask, OP_NetworkBoxItemList &items) const
 Return all items that match the type mask. More...
 
bool destroyItem (OP_NetworkBoxItem *item)
 Returns true if the item was successfully deleted. More...
 
int destroyItems (const OP_NetworkBoxItemList &items)
 Returns the number of successfully deleted items. More...
 
OP_NetworkBoxItemfindItem (const char *const_path, OP_ItemTypeMask item_type=OP_ITEMTYPE_ALL) override
 
OP_NetworkBoxItemgetItem (const char *name, OP_ItemTypeMask item_type=OP_ITEMTYPE_ALL)
 
bool isSubNode (const OP_Node *node) const
 
void clearSelection (OP_TileType t, int grouplist)
 
void setAllPickFlags (OP_ItemTypeMask item_type, int value)
 
void pickRequest (OP_NetworkBoxItem *item, int shift)
 
void pickRequest (int shift)
 
void addPicked (const OP_Group *group)
 
void subPicked (const OP_Group *group)
 
OP_OperatorTablegetOperatorTable () const
 
virtual const char * getScriptDirectory ()
 
void clearUndoFlags () override
 
bool wantsParentInputs () const
 
int getNparentInputs () const
 
OP_SubnetIndirectInputfindParentInput (const char *const_path) override
 
OP_SubnetIndirectInputgetParentInput (int index) const
 
OP_SubnetIndirectInputgetParentInput (const char *name) const
 
int getIndirectString (OP_IndirectInput *, UT_String &)
 
OP_IndirectInputresolveIndirectString (const char *)
 
void inputConnectChanged (int which) override
 
void getAllConnectedChildren (int input_index, UT_Array< OP_Node * > &nodes, bool expandSubnets=true) const
 
void getAllConnectedChildrenNamed (const OP_ConnectorId &input_name, UT_Array< OP_Node * > &nodes, bool expandSubnets=true) const
 
virtual void setViewSetting (const char *)
 
virtual const char * getViewSetting () const
 
void dumpDependencies (std::ostream &os) override
 
void changeParmTemplate (PRM_Template *new_template) override
 
int getNumChildManagers (OP_OpTypeId type) const
 
void addChildManager (OP_OpTypeId type)
 
void removeChildManager (OP_OpTypeId type)
 
bool getSaveWithVopnets () override
 
void runDelScript () override
 
void clearDelScripts (int pickedOnly)
 
void unscopeChannels (bool recurse) override
 
void undisplayChannels (bool recurse) override
 
void unpinChannels (bool recurse) override
 
void globNetworkBoxes (const char *pat, UT_String *expand, UT_ValArray< OP_NetworkBox * > *list=0, OP_GlobContext *context=0, const char *prefix=" ") override
 
void globPostIts (const char *pat, UT_String *expand, UT_ValArray< OP_PostIt * > *list=0, OP_GlobContext *context=0, const char *prefix=" ") override
 
int getRepresentativeNodeId (OP_Node *changed_child, int current_rep_id)
 
bool changeChildNodeType (OP_Node *child, const char *newtype, bool keepname, bool keepparms, bool keepcontents, bool quiet, int *newChildId=NULL)
 
bool getIsSubNodeEditable (const OP_Node *subnode) const
 
bool hasAnyEditableSubNodes () const
 
const UT_SortedSet< int > & getEditableSubNodes () const
 
bool getMessageSubNodes (OP_NodeList &list) const
 
void getActiveOperatorsDefinedByOTL (UT_Set< OP_Operator * > &active_operators) const override
 
OP_SubnetIndirectInputgetNamedParentInput (const OP_ConnectorId &name) const
 
bool getIsClearingContentsOfEditableSubnodes ()
 
int64 getMemoryUsage (bool inclusive) const override
 
void setCachedMimeFile (const char *filename)
 
const char * getCachedMimeFile () const
 
void clearCachedMimeFile ()
 
bool hasCachedMimeFile () const
 
void getRawErrors (UT_Array< UT_Error > &errors, bool update) override
 
- Public Member Functions inherited from OP_Node
OP_NetworkgetParent () const
 
OP_NetworkgetRootCompiledParent () const
 
OP_NetworkgetParentNetwork () const override
 Returns the network that is our parent. More...
 
bool getIsContainedBy (const OP_Node *testparent) const
 
const UT_StringgetNetName () const
 Return the name of this node's parent. More...
 
OP_ItemType getItemType () const override
 Our children should implement this and return what type of item they are. More...
 
const UT_StringgetDelScript () const
 Obtain the node's script which is called when it is being deleted. More...
 
bool setDelScript (const char *str)
 
void pickRequest (int shift)
 
bool notifyVarChange (const char *varname, OP_NodeList *changed_nodes=nullptr)
 
void getPickedChildren (OP_NodeList &picked, bool include_hidden=false) const
 
void getAllChildren (OP_NodeList &children) const
 
virtual OP_NodematchChild (const char *pattern, OP_Node *prevmatch=0, const char *optype=0, int casesensitive=0) const
 
virtual OP_NodematchChildBackwards (const char *pattern, OP_Node *prevmatch=0, const char *optype=0, int casesensitive=0) const
 
OP_ERROR getChildErrorSeverity ()
 
int getUniqueId () const
 
int64 getItemUniqueId () const override
 Functions to get hip-file-unique ids for any item type. More...
 
bool expandGroupPattern (const char *pattern, UT_String &result, bool expandToFullPaths=false)
 
bool patternContainsBundle (const char *pattern, const OP_Bundle *bundle) const
 
bool patternContainsGroup (const char *pattern, const OP_Group *group) const
 
virtual int isManager () const
 
virtual int isManagementNode () const
 
bool isEffectivelyAManagementNode () const
 
virtual bool isMaterialManager () const
 
virtual int isSubNetwork (bool includemanagementops) const
 
virtual int isInSubNetwork () const
 
bool isProxyRefNode () const
 
void setProxyRefNode (bool f)
 
virtual bool isOutputNode () const
 
virtual int whichOutputNode () const
 
int isNetworkWithKids () const
 
virtual int isVex () const
 
OP_BundlegetParmBundle (const char *parm_name, int vector_index, UT_String &pattern, OP_Network *creator, const char *filter)
 
void markBundleRefsAsUnused ()
 
void cleanUnusedBundleRefs ()
 
void cleanAllBundleRefs ()
 
virtual bool bundleChanged (const OP_Bundle *bundle)
 
void touchBundleParm (const char *name)
 
void touchBundleParm (int parm_index)
 
bool isInputAncestor (const OP_Node *parent, bool check_extra=true) const
 
bool isParentAncestor (const OP_Node *parent) const
 
const char * getInfoText (OP_Context &context, OP_NodeInfoParms &parms)
 
OP_NodefindNode (const char *path, OTLSyncMode syncmode=OTLSYNC_DOSYNC) const
 Uses the path (eg. "/obj/geo1") to find a node in our hierarchy. More...
 
OP_NodefindSubNode (const char *path) const
 
SOP_NodegetSOPNode (const char *path, int addextra=0, bool *got_by_flag=nullptr) const
 
COP2_NodegetCOP2Node (const char *path, int addextra=0) const
 
DOP_NodegetDOPNode (const char *path, int addextra=0) const
 
ROP_NodegetROPNode (const char *path, int addextra=0) const
 
CHOP_NodegetCHOPNode (const char *path, int addextra=0, bool *got_by_flag=nullptr) const
 
TOP_Node * getTOPNode (const char *path, int addextra=0) const
 
LOP_NodegetLOPNode (const char *path, int addextra=0) const
 
OBJ_NodegetOBJNode (const char *path, int addextra=0) const
 
OP_NodecastToOPNode () override
 
const OP_NodecastToOPNode () const override
 
virtual void getPathWithSubnet (UT_String &str) const
 Returns the path of this node relative to its getCreator() More...
 
void getPathWithSubnet (UT_StringHolder &str) const
 
void completePath (const char *prefixpath, UT_String &completepath) const
 
virtual CH_ChannelgetTrackChannel (const char *name)
 
virtual bool findParmFromTrack (const OP_FollowChanRefsOptions &opt, const char *trackname, OP_NodeParmRefCycle &cycle, OP_Node *&node, PRM_Parm *&parm, int &vecidx)
 
virtual void evaluateBatchParms (PRM_BatchList &list, fpreal now)
 
void globNodes (const char *pat, UT_String *expand, UT_Array< OP_Node * > *list=0, OP_GlobContext *context=0, const char *prefix=" ")
 
CH_ChannelfindChannel (const char *path)
 
void globChannels (const char *, UT_String &expand, OP_GlobContext *context=0, const char *prefix=" ") const
 
void globChannels (const char *pattern, CH_ChannelList &clist, OP_GlobContext *context=0, OP_Node *dependent=0)
 
void globChanRefs (const char *pattern, CH_ChannelRefList &list, OP_GlobContext *context=0, OP_Node *dependent=0, bool use_multi_match=true)
 
int globParms (const char *pattern, fpreal t, UT_Array< opParmData > &list, OP_GlobContext *context=0, OP_Node *dependent=0, int calc_value=1)
 
void globNodeParms (const char *pattern, fpreal t, UT_Array< opParmData > &list, OP_GlobContext *context, OP_Node *dependent, int calc_value, bool animated_only)
 
void globNodeChannels (const char *pattern, CH_ChannelList &list, OP_GlobContext *context, int *parm_start=nullptr, UT_IntArray *parm_indices=nullptr, UT_IntArray *parm_sub_indices=nullptr) const
 
void globNodeChanRefs (const char *pattern, CH_ChannelRefList &list, OP_GlobContext *context, int *parm_start=nullptr, UT_IntArray *parm_indices=nullptr, UT_IntArray *parm_sub_indices=nullptr, bool use_multi_match=true) const
 
int getAllChannels (CH_ChannelList &list, int scoped=0)
 
virtual void forceRecook (bool evensmartcache=true)
 
virtual void reloadExternalFiles ()
 
virtual unsigned needToCook (OP_Context &context, bool queryonly=false)
 
virtual bool cook (OP_Context &context)
 
bool parallelCook (OP_Context &context)
 
template<typename F >
void cookLockedExecute (const F &functor)
 
OP_CookLockgetCookLock ()
 
UT_TaskStatetaskState ()
 
const UT_TaskStatetaskState () const
 
virtual OP_ERROR pubCookInputGroups (OP_Context &context, int alone=0)
 
void bumpVersionParm ()
 
int cookParmsModified () const
 
virtual int getDataClass () const
 
virtual void getXformOrder (UT_XformOrder &xord, const CH_Channel *chp) const
 
virtual voidgetCookedData (OP_Context &)
 
virtual bool loadCookedData (UT_IStream &is, const char *path=0)
 
virtual int getRelativeTransform (OP_Node &to, UT_Matrix4 &xform, OP_Context &context)
 
virtual int getRelativeTransform (OP_Node &to, UT_DMatrix4 &xform, OP_Context &context)
 
virtual int getRelativeCaptureTransform (OP_Node &to, UT_Matrix4 &xform, OP_Context &context)
 
virtual int getRelativeCaptureTransform (OP_Node &to, UT_DMatrix4 &xform, OP_Context &context)
 
virtual bool getWorldTransform (UT_Matrix4D &xform, OP_Context &)
 
virtual bool getIWorldTransform (UT_Matrix4D &xform, OP_Context &)
 
virtual bool getTransform (TransformMode mode, UT_Matrix4D &xform, OP_Context &)
 
bool getWorldTransform (UT_Matrix4F &xform, OP_Context &ctx)
 
bool getIWorldTransform (UT_Matrix4F &xform, OP_Context &ctx)
 
bool getTransform (TransformMode mode, UT_Matrix4F &xform, OP_Context &ctx)
 
void addTransformError (const OP_Node &node, const char *label=0) const
 
virtual bool getBoundingBox (UT_BoundingBox &box, OP_Context &)
 
virtual const char * getInternalOpTable () const
 
virtual OP_OperatorgetInternalOperator () const
 
virtual const char * inputLabel (unsigned idx) const
 
virtual const char * outputLabel (unsigned idx) const
 
const char * inputLabelNum (unsigned idx) const
 
const char * outputLabelNum (unsigned idx) const
 
virtual const char * inputConnectorLabel (unsigned idx)
 
virtual int isRefInput (unsigned idx) const
 
virtual int getAuxInput () const
 
virtual void getAuxInputName (OP_ConnectorId &name_out)
 
OP_LockTypes setLockState (OP_LockTypes state, bool saveundo=true)
 
OP_LockTypes getLockState () const
 
bool getLock () const
 
bool getSoftLock () const
 
void setSoftLock (bool on_off)
 
bool getHardLock () const
 
void setHardLock (bool on_off)
 
virtual OP_LockTypes setModelLock (OP_LockTypes state, void *modeler=nullptr, bool allow_softlock_promotion=false, UT_Undo *undo=nullptr)
 
int getNetworkLock (bool relaxedlockcheck=false, const OP_Node *inputNode=nullptr) const
 
bool setUnload (bool on_off)
 
bool getUnload () const
 
virtual bool isLoaded () const
 
virtual bool unloadData ()
 
void takeActivateFlag (uchar flag, bool enable=true, bool send_flag_event=true)
 
void takeDeactivateFlag (uchar flag)
 
bool takeIsActiveFlag (uchar flag) const
 
void setHasTakeData (bool onoff)
 
bool canAccessFlag (unsigned mask, uchar flag) const
 
bool setPicked (bool on_off, bool propagate_parent_event=true) override
 
bool setEditPicked (bool on_off, bool propagate_parent_event=true)
 
void setAutoscope (bool on_off)
 
bool isAutoscope ()
 
bool setCurrent (bool on_off)
 
bool setExpose (bool on_off)
 
bool setBypass (bool on_off)
 
bool setTemplate (bool on_off)
 
bool setFootprint (bool on_off)
 
bool setXray (bool on_off)
 
bool setDisplay (bool on_off)
 
bool setRender (bool on_off)
 
bool setHighlight (bool on_off)
 
bool setModified (bool on_off)
 
bool setSaveBypass (bool on_off)
 
bool setSaveData (bool on_off)
 
virtual bool setPickable (bool on_off)
 
virtual bool setAudio (bool on_off)
 
virtual bool setExport (bool on_off)
 
virtual bool setDisplayOrigin (bool on_off_unchanged)
 
void userSetTemplate (bool onoff)
 
void userSetSelectableTemplate (bool onoff)
 
virtual int8 getFlag (char tag) const
 
bool getPicked () const override
 
virtual bool getEditPicked () const
 
bool getCurrent () const
 
bool getDisplay () const
 
bool getRender () const
 
bool getHighlight () const
 
bool getBypass () const
 
bool getTemplate () const
 
bool getFootprint () const
 
bool getXray () const
 
bool getExpose () const
 
bool getModified () const
 
bool getSaveBypass () const
 
bool getSaveData () const
 
bool getHasTakeData () const override
 
virtual bool getPickable ()
 
virtual bool getAudio () const
 
virtual bool getExport () const
 
virtual bool getDisplayOrigin () const
 
bool getItemExpose () const override
 
void setItemExpose (bool expose) override
 
virtual bool getUseBypassLook (const OP_EditorContext &ctx) const
 
bool getDisplayDescriptiveName () const
 
bool setDisplayDescriptiveName (bool state)
 
bool getDisplayComment () const
 
bool setDisplayComment (bool state)
 
int8 getOutputForView () const
 
int8 setOutputForView (int8 output)
 
OP_NodegetPickableSelfOrParent ()
 
bool setCompress (bool on_off)
 
bool getCompress () const
 
void setCurrentAndPicked ()
 
virtual bool setVisible (bool onoff)
 
virtual bool getVisible () const
 
const OP_NodeFlagsflags () const
 
OP_NodeFlagsflags ()
 
virtual void getSaveFlagsString (UT_String &cmd, const char *flags, bool save_to_hip) const
 
virtual void getPreParmSaveFlagsString (UT_String &cmd) const
 
virtual void getPostParmSaveFlagsString (UT_String &cmd) const
 
int hasOpInterest (void *data, OP_EventMethod m) const
 
void addOpInterest (void *data, OP_EventMethod m)
 
void removeOpInterest (void *data, OP_EventMethod m)
 Remove notification callback added via addOpInterest() More...
 
int isBeingDeleted () const
 
void setNodeBeingDeleted (int beingdeleted)
 
bool setInhibitInputConsolidation (bool value)
 
virtual unsigned minInputs () const
 Minimum inputs that must be connected to a node for it to cook. More...
 
virtual unsigned maxInputs () const
 Maximum inputs that can be connected to a node. More...
 
virtual unsigned getNumVisibleInputs () const
 
virtual unsigned orderedInputs () const
 
virtual unsigned maxOutputs () const
 
virtual unsigned getNumVisibleOutputs () const
 
bool hasUnorderedInputs () const
 Returns true if the operator type says we have unordered inputs. More...
 
virtual unsigned nInputs () const
 
unsigned nConnectedInputs (bool check_subnet_inside=true) const
 
unsigned getActiveInputIndex () const
 
void setActiveInputIndex (unsigned idx)
 
OP_NodegetInput (unsigned idx, bool mark_used=false) const
 Returns the node connected to a particular input (may be null). More...
 
OP_NodegetInputFollowingOutputs (int input, DEP_MicroNode *depnode=0) const
 
int getConnectedInputIndex (int startAt=-1) const
 
int getNthConnectedInput (int n) const
 Gets the index of the Nth non-null connection to this node. More...
 
virtual void getParallelInputs (OP_Context &context, OP_NodeList &nodes) const
 
void forceClearInput (int idx)
 Forcibly clear an input. Used when deleting the input. More...
 
virtual OP_ERROR setIndirectInput (unsigned idx, OP_IndirectInput *input)
 Connects an input to an indirect input of our parent subnet. More...
 
int whichInputIs (const OP_Node *who) const
 
int whichInputIs (const OP_IndirectInput *who) const
 Returns the index of the first connection of an indirect input. More...
 
int whichInputIs (const OP_IndirectInput *whoi, int cnt) const
 
int whichOutputIs (const OP_Node *target_node, int input_on_target_node) const
 
int whichOutputIsFollowingIndirect (const OP_Node *target_node, int input_on_target_node) const
 
int whichInputIs (const OP_Node *source_node, int counter) const
 
void consolidateInputs ()
 
virtual bool allowConsolidatingInput (int idx)
 
virtual OP_InputgetInputReference (unsigned idx, bool grow)
 
virtual OP_InputgetInputReferenceConst (unsigned idx) const
 
virtual int doDeleteRewire () const
 
OP_ERROR insertInput (unsigned idx, OP_Node *op, unsigned outputIdx)
 
OP_ERROR insertIndirectInput (unsigned idx, OP_IndirectInput *input)
 
virtual UT_Options getInputDataDefault (int idx) const
 
virtual int getInputEditorInputs ()
 
virtual bool allowInputEditorInputParm ()
 Returns true if editor should display parameter option menu button. More...
 
virtual bool allowInputEditorInputDelete ()
 Returns true if editor should display delete input button. More...
 
virtual bool getInputEditorInputLabel (UT_String &label, int idx)
 
OP_DataMicroNodedataMicroNode ()
 
virtual const OP_DataMicroNodeparmListMicroNodeConst () const
 
OP_DataMicroNodeparmListMicroNode ()
 
bool hasIndepParmListMicroNode () const
 
DEP_MicroNodeflagMicroNode ()
 
DEP_MicroNodeparmMicroNode (int parm_idx, int vi)
 
const DEP_MicroNodeeventMicroNodeConst (OP_EventType e) const
 Accessors to event micro nodes. More...
 
DEP_MicroNodeeventMicroNode (OP_EventType e)
 
bool hasEventMicroNode (OP_EventType e) const
 
virtual void getOwnedMicroNodes (DEP_MicroNodeList &micronodes)
 
void propagateDirtyMicroNode (DEP_MicroNode &micronode, OP_EventType reason, void *data, bool send_root_event)
 
virtual void addExtraInput (OP_Node *op, OP_InterestType type)
 
void addExtraInput (OP_Node &op, int parm_i, int vec_i)
 
void addExtraInput (const OP_InterestRef &source_ref)
 
void addExtraInput (DEP_MicroNode &source_micronode)
 
void addMultiparmInterests (OP_Node *srcnode, PRM_Parm &parm)
 
void getExtraInputNodes (OP_NodeList &extras, bool remove_duplicates=true, bool data_interest=true, bool parm_interest=true, bool flag_interest=true, bool include_parmlist=true, bool follow_simulation_inputs=false) const
 
void getExtraOutputNodes (OP_NodeList &extras, bool remove_duplicates=true, bool data_interest=true, bool parm_interest=true, bool flag_interest=true) const
 
int getNumExtraInputs () const
 
void dumpExtraInputs (std::ostream &os, bool as_DOT, int indent_level=0) const
 
void addGenericOpNameReference (const UT_String &oppath)
 
void addGenericOpNameReference (const PRM_RefId &ref_id, OP_Node *node)
 
void addGenericOpInputReference (const PRM_RefId &ref_id, OP_Node *node)
 
bool getParmBaseNodePath (UT_String &path, int parm_index, int thread) const
 
void rebuildParmDependency (int parm_index) override
 
void clearParmDependency (int parm_index) override
 
void decrementOpReference (int node_id)
 
void dumpOpDependents (OP_Node *ref, int brief, std::ostream &os)
 
const OP_DependencyListgetOpDependents () const
 
int countReferences (int op_id)
 
void getExistingOpReferences (OP_NodeList &refs, bool recurse) const
 
void getFullOpReferences (OP_NodeList &refs, bool include_descendants) const
 
void getExistingOpDependents (OP_NodeList &deps, bool include_descendants) const
 
void getFullOpDependents (OP_NodeList &deps, bool include_descendants) const
 
void getParmsThatReference (const char *channame, UT_ValArray< PRM_Parm * > &parms, UT_IntArray &parmsubidxs)
 
unsigned nOutputEntries () const
 
int nOutputItems (int output_idx=-1) const
 
OP_NetworkBoxItemgetOutputItem (int idx, int output_idx=-1) const
 
bool hasAnyOutputNodes (bool through_dots=true, int output_idx=-1) const
 
void getOutputNodes (UT_Array< OP_Node * > &outputs, bool into_subnets=false, bool through_dots=true, int output_idx=-1) const
 
OP_NodegetFirstOutputNode (bool through_dots=true, int output_idx=-1) const
 
OP_NodegetOutputTowardsNode (const OP_Node *target)
 
void fillInfoTree (UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms)
 
virtual bool fillInfoTreeChildSpecific (UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms, OP_Node *child)
 
virtual OP_ERROR lockInput (unsigned idx, OP_Context &context)
 
virtual void unlockInput (unsigned idx)
 
virtual OP_ERROR lockInputs (OP_Context &context)
 
virtual void unlockInputs ()
 
int getCookCount () const
 
void triggerOutputChanged ()
 
void triggerUIChanged (OP_UIChangeType type=OP_UICHANGE_ANY)
 
virtual int cookedInputIndex () const
 
virtual OP_NodegetPassThroughNode (fpreal t, bool mark_used=false)
 
bool setMinimumCacheSize (int min_size)
 
OP_VERSION getVersionParms () const
 
virtual bool handleTimeChange (fpreal)
 
bool isTimeDependent (const OP_Context &context)
 
virtual bool isDiveable () const
 
void updateParmsToMatchCurrentUnits ()
 
bool getDelaySyncOTL () const
 
void setDelaySyncOTL (bool isdelayed)
 Shallowly sets the delayed sync flag,. More...
 
bool shouldDelaySyncOTL () const
 Determines if this node should do delayed syncing or not. More...
 
void syncDelayedOTL ()
 Verifies this node has been synchronized in case it was delayed. More...
 
virtual void matchOTLDefinition ()
 
virtual void unmatchOTLDefinition ()
 Unmatches (unlocks) the node from the current HDA definition. More...
 
virtual void handleOTLIndexFileCleared ()
 
const UT_StringgetSyncErrors () const
 
OP_ERROR getSyncErrorLevel () const
 Returns the error level generated in our last synchronization attempt. More...
 
bool isAnyAncestorBeingSynced () const
 
int getMatchesOTLDefinition () const
 Interface to flag that specifies whether or not we match our definition. More...
 
int getCanDeviateFromOTLDefinition () const
 
void setAllChildAssetPermissions (int permission)
 
void computeAllChildAssetPermissions ()
 
bool getIsEditableAssetSubNode () const
 
void turnOffAllChildExports ()
 
bool haveLicenseToAccessContents (OP_Node *opt_specific_child=nullptr) const
 
bool haveLicenseToAccessParentContents () const
 
bool haveAncestorWithoutFullLicense (bool ignore_self) const
 
OP_OTLLicenseType getLicense () const
 
OP_NodegetFirstExecLicenseOnlyAncestor (bool ignore_self=true) const
 
OP_NodegetLastExecLicenseOnlyAncestor (bool ignore_self=true) const
 
bool isCompiled () const
 
void saveWires (std::ostream &os, const char *name, int dogeneral=0)
 
void saveOutputWires (std::ostream &os, const char *name, int dogeneral=0)
 
virtual void saveIntrinsicCommand (std::ostream &os, const char *name)
 
virtual OP_ERROR saveCommand (std::ostream &os, const char *name, fpreal x, fpreal y, const char *netboxname, const OP_SaveCommandOptions &options)
 Writes to 'os' a string of hscript commands to recreate this node. More...
 
void saveParameterFlags (std::ostream &os, const char *name, const char *command, bool(PRM_Parm::*flag_method)(int) const, bool defaultstoo, bool reverse, UT_Array< opParmData > *parm_array)
 
void saveUserDataCommand (std::ostream &os, const char *node_name, bool omit_version=false)
 
virtual RampError rampCommand (bool remove, fpreal pos, float rgba[4])
 
RampError rampCommand (bool remove, fpreal pos, float rgba[4], UT_Ramp &ramp)
 
virtual bool loadRamp (UT_IStream &is, const char *path=0)
 
bool loadRamp (UT_IStream &is, UT_Ramp &ramp, const char *path=0)
 
OP_ERROR saveRamp (std::ostream &os, UT_Ramp &ramp, const char *name=0, int command=0)
 
bool getUserData (const UT_StringRef &key, UT_StringHolder &result) const
 
void setUserData (const UT_StringRef &key, const UT_StringHolder &data, bool save_undo)
 
bool hasUserData (const UT_StringRef &key) const
 
bool deleteUserData (const UT_StringRef &key, bool save_undo)
 
const UT_OptionsuserData () const
 
bool loadUserData (UT_IStream &is, const char *path=nullptr)
 
OP_ERROR saveUserData (std::ostream &os, const char *path)
 
void clearUserData (bool save_undo)
 
UT_SharedPtr< voidgetBlindData (const char *key) const
 
template<typename T >
UT_SharedPtr< TgetBlindData (const char *key) const
 
void setBlindData (const char *key, UT_SharedPtr< void > ptr)
 
bool hasBlindData (const char *key) const
 Returns true if this object stores a blind data with the given key. More...
 
bool deleteBlindData (const char *key)
 
void getDataBlockKeys (UT_StringArray &keys, const UT_StringHolder &type=UT_StringHolder()) const
 
OP_DataBlockPtr getDataBlock (const char *key) const
 
bool setDataBlock (const char *key, OP_DataBlockPtr ptr)
 
OP_ERROR saveDataBlocksPacket (std::ostream &os, const char *path_prefix, const UT_String &node_name)
 
bool loadDataBlocks (UT_IStream &is, const char *path)
 
bool clearDataBlocks ()
 
virtual void dataBlockChanged (const UT_StringHolder &key)
 
virtual int deleteNodeData (void *)
 
void propagateNodeDataDeleted ()
 
PY_OpaqueObjectgetCachedPythonObject (const UT_StringRef &key) const
 
void setCachedPythonObject (const UT_StringHolder &key, void *opaque_py_object)
 
bool deleteCachedPythonObject (const UT_StringRef &key)
 
void clearCachedPythonObjects ()
 
const OP_PythonObjectCachecachedPythonObjects () const
 
bool loadExtraInputs (UT_IStream &is, const char *path=0)
 
void saveOverrides (std::ostream &os)
 
void saveOverrides (std::ostream &os, OP_Node *root, const UT_String &rootpath, bool &added)
 
void saveChildOverrides (std::ostream &os, OP_Node *root, const UT_String &rootpath, bool &added)
 
bool loadOverride (UT_IStream &is)
 
UT_ErrorSeverity prmCookOverrides (fpreal t, int thread, const char *parm_name, int vec_idx) override
 
bool isParmPendingOverride (const char *parm_name, int vec_idx) const override
 
OP_ERROR cookOverrides (OP_Context &c)
 
virtual void removeOverrideDestination (OP_Node *)
 
virtual void removeOverrideDestination (OP_Node *, int)
 
void executeCommand (const char *command, std::ostream *out, std::ostream *err) const override
 
SYS_NO_DISCARD_RESULT
UT_UniquePtr
< PRM_ParmOwnerContext
pushAsPwd () const override
 
OP_ERROR executeHscriptScript (UT_String &script, const OP_Context &context)
 
OP_ERROR executePythonScript (UT_String &script, const OP_Context &context)
 
void addPythonNodeError (const PY_Result &py_result)
 
void saveInputs (std::ostream &os, bool compile_basic)
 
bool loadInputs (UT_IStream &is, const char *path=0, bool named=false)
 
void saveNamedInputs (std::ostream &os, bool compile_basic)
 
void saveNamedOutputs (std::ostream &os)
 
bool loadNamedOutputs (UT_IStream &is, const char *path=0)
 
void getEditableInputDataKeys (int idx, UT_StringArray &keys) const
 
const UT_OptionEntrygetEditableInputData (int idx, const UT_StringRef &key) const
 
bool setEditableInputData (int idx, const UT_StringHolder &key, const UT_OptionEntry &value)
 
void saveEditableInputData (std::ostream &os) const
 
bool loadEditableInputData (UT_IStream &is, const char *path)
 
UT_StringHolder getEditableInputString (int idx, const UT_StringRef &key) const
 
bool setEditableInputString (int idx, const UT_StringRef &key, const UT_StringHolder &str)
 
void checkInputs ()
 
virtual void createGalleryEntry (OP_GalleryEntry &entry)
 
void evalOpPathString (UT_String &val, int pi, int vi, fpreal t, int &op_id, fpreal &op_time, int expanded=1)
 
void evalOpPathString (UT_String &val, const char *pn, int &pi, int vi, fpreal t, int &op_id, fpreal &op_time, int expanded=1)
 
virtual int getTranslateParmIndex ()
 
void resolveInputReferences ()
 
void clearUndoFlags () override
 
void setAnyUndoFlag () override
 
void saveForUndoInput ()
 
void blockModify (int on_off, int propagate=1)
 
int isBlockModify () const
 
bool isModifyWaiting () const
 
virtual void propagateEndBlockModify ()
 
virtual const CL_ClipgetClip (OP_Context *context=0)
 
void getMotionEffectsNetworkPath (UT_String &path)
 
void getCookInfo (UT_String &info) const
 Return the cook information as a formatted string. More...
 
void getCookInfoTree (UT_InfoTree &tree) const
 Return the cook information in a UT_InfoTree. More...
 
virtual int getNetOverviewColor (UT_Color &color)
 
virtual UT_RampgetRamp ()
 
virtual int isCookingRender () const
 
virtual void setCookingRender (int val)
 
bool wasInterrupted () const
 
void setRenameConflict ()
 
void setRunningCreateScript (int onoff)
 
virtual int outputCode (OP_OutputCodeParms &, OP_Context &)
 
virtual fpreal getTimeTransform (int input, fpreal t)
 
virtual void getInputRes (int input, fpreal t, const OP_Context &context, OP_Context &input_context)
 
UT_TokenStringgetHashCode (OP_Context &context, int group_mask=1)
 
virtual UT_TokenStringgetParmHashCode (OP_Context &context, int group_mask=1)
 
virtual int getNumInputsToHash ()
 
virtual OP_NodegetInputToHash (int i)
 
void clearHashCodeFlags ()
 
bool isHashCodeBuilt () const
 
void builtHashCode (bool b=true)
 
void buildInputHashCode (UT_TokenString &string, OP_Context &context, int group_mask, int level)
 
void setCreatorState (const char *s)
 
const UT_StringgetCreatorState () const
 
void builtExplicitly (int yn)
 
int wasBuiltExplicitly () const
 
bool matchesState (const char *state) const
 
virtual void ensureInputsAndOutputsAreValid ()
 
void connectToInputNode (OP_Node &inputnode, int input_idx, int branch_off=0)
 
virtual int editCallback (CL_Track *track, fpreal t, fpreal newValue)
 
virtual const CH_LocalVariableresolveVariable (const char *name)
 
virtual const CH_LocalVariableresolveExtraVariableForSyntaxHighlight (const char *name)
 
virtual void setMapping (int idx, int type, const char *label=0)
 
virtual int getMapping (int idx, const char *&label) const
 
virtual int acceptDragDrop (DD_Source &src, const char *label)
 
virtual int testDragDrop (DD_Source &src)
 
virtual void getDragDropChoice (DD_Source &src, DD_ChoiceList &c)
 
bool hasComment () const
 
bool hasParmsNotAtFactoryDefault () const
 
bool hasAnimatedParms () const
 
bool hasChopOverriddenParms () const
 
void getCookPathNodes (OP_NodeList &nodes)
 
bool traverseChildren (bool(*callback)(OP_Node &, void *), void *data, bool recurse_into_subnets)
 
bool isCooking (bool include_ancestors) const
 
virtual bool usesFootprint () const
 
void getExternalReferences (UT_StringArray &reflist, UT_StringArray *nodelist=0, bool from_children_too=true, bool collapse=false, bool check_missing=false, bool show_missing_only=false)
 
virtual void preDelete ()
 
virtual DOP_ParentcastToDOPParent ()
 
virtual const DOP_ParentcastToDOPParent () const
 
OP_DopParentcastToOpDopParent ()
 
const OP_DopParentcastToOpDopParent () const
 
virtual void buildVopCodeGenerator ()
 
virtual VOP_ExportedParmsManagergetVopExportedParmsManager (bool create_if_needed=false)
 
int buildVexCommand (UT_String &result, const PRM_Template *templatelist, fpreal now, int start_parm=0, int end_parm=INT_MAX, bool use_parmvop_tag=true)
 
int buildVexCommandWithDependencies (OP_Node *owner, DEP_MicroNode *depnode, UT_String &result, const PRM_Template *templatelist, fpreal now, int start_parm=0, int end_parm=INT_MAX, bool use_parmvop_tag=true)
 
virtual bool hasVexShaderParameter (const char *parm_name)
 
virtual bool getScriptMaterialInfo (UT_String &mat_info, VOP_ScriptMaterialCodeMapper *mapper)
 
virtual const char * getHDASubType ()
 
bool setChannelAlias (PRM_Parm &parm, int subindex, const char *alias_name)
 
void disconnectAllInputsOutputs (bool keepSelected, bool forceDisconnectOutputs=false)
 
void disconnectAllInputs ()
 
void disconnectAllOutputs ()
 
virtual void notifyParmRenameDependents (const UT_String &chan_name, const UT_String &old_chan_name)
 
void writeChannel (CH_Channel *channel, std::ostream &os, const char *name, bool frames)
 
void writeAllChannels (std::ostream &os, const char *name, bool frames, bool dochblock, bool dospareparms)
 
bool triggerParmCallback (PRM_Parm *parmptr, fpreal now, int value, void *data, const UT_Options *options=nullptr) override
 
int64 getMemoryUsage (bool inclusive) const override
 
int64 getExtraInputMemoryUsage () const
 
virtual void setChannelScope (const char *pattern, OP_ScopeOp scope_op, const OP_ScopeOptions &scope_opts)
 
const UT_StringgetItemName () const override
 
bool setItemName (const UT_String &name) override
 
const UT_StringHoldergetCachedDescriptiveName ()
 
bool changeSpareParms (UT_IStream &istream, UT_String &errors) override
 
void spareParmRemoved (const char *parmname) override
 
PRM_ParmListcreateObsoleteParmList () override
 
void resolveAndDeleteObsoleteParmList (PRM_ParmList *&obsolete_parms) override
 
unsigned referenceAllParameters (OP_Parameters *from, bool relative_references=true) override
 
void clearVersionUserData ()
 
void updateVersionUserData ()
 
void syncNodeVersionIfNeeded (bool *node_deleted, const char *from_version=nullptr, bool update_node_version=false)
 
void syncNodeVersion (const char *old_version, const char *current_version, bool *node_deleted) override
 
bool setGlobalFloatParam (const char *param, fpreal value, bool *warned)
 
bool setGlobalStringParam (const char *param, const char *strvalue, bool *warned)
 
void beginPropagateModification ()
 
void endPropagateModification ()
 
virtual bool hasDifferentMultiInputs () const
 
virtual bool canCreateNewOpType () const
 
virtual UT_StringgetMaterialIconFilename ()
 
virtual void setMaterialIconFilename (const char *)
 
virtual IMG_RastergetMaterialIconImage ()
 
virtual bool getMaterialIconAllowRegenerateFlag ()
 
virtual void setMaterialIconAllowRegenerateFlag (bool)
 
bool isDependentOn (OP_Node *other_node, PRM_Parm *parm)
 
bool verifyTemplatesWithParameters () const
 
OP_InputgetNamedInputReference (const OP_ConnectorId &input_name, bool grow)
 
OP_InputgetNamedInputReferenceConst (const OP_ConnectorId &input_name) const
 
OP_NodegetNamedInput (const OP_ConnectorId &input_name, bool mark_used=false) const
 
int getInputFromUniqueName (const OP_ConnectorId &id) const
 
int getOutputFromUniqueName (const OP_ConnectorId &id) const
 
void getUniqueInputName (OP_ConnectorId &id_out, int idx, bool grow)
 
bool getUniqueInputNameConst (OP_ConnectorId &id_out, int idx) const
 
void getUniqueOutputName (OP_ConnectorId &id_out, int idx)
 
bool getUniqueOutputNameConst (OP_ConnectorId &id_out, int idx) const
 
virtual OP_ERROR setNamedIndirectInput (const OP_ConnectorId &input_name, OP_IndirectInput *input)
 
OP_ERROR insertNamedInput (const OP_ConnectorId &input_name, OP_Node *op, const OP_ConnectorId *output_name)
 
OP_ERROR insertNamedIndirectInput (const OP_ConnectorId &input_name, OP_IndirectInput *input)
 
virtual bool isOrderedInput (const OP_ConnectorId &input_name) const
 
OP_ConnectorId whichNamedInputIs (const OP_Node *who) const
 
OP_ConnectorId whichNamedInputIs (const OP_IndirectInput *who) const
 Returns the index of the first connection of an indirect input. More...
 
OP_ConnectorInputIter traverseInputs (OP_ConnectorInputIter *prev_iter)
 
OP_ConnectorInputIter traverseConnectedInputs (OP_ConnectorInputIter *prev_iter)
 
OP_ConnectorInputIter getTraverseEndIterator ()
 
unsigned getInputsArraySize ()
 
unsigned isInput (unsigned idx)
 Deprecated in favour of getInputsArraySize() More...
 
void getLocalVarNames (UT_StringArray &out_vars)
 Retrieve a sorted list of local variables visible to this OP_Node. More...
 
bool setLocalVarActive (bool f)
 
bool isLocalVarActive () const
 Get the myLocalVarActive flag. More...
 
virtual UT_AttributeEvaluatorcreateAttributeEvaluator (const char *name)
 
virtual void getAttributeEvaluatorNames (UT_StringArray &names)
 
void recomputeCompiledHash ()
 
void clearCompiledHash ()
 
void directSendEvent (OP_EventType type, void *data=0)
 
virtual bool scopedChannelsDirty ()
 
virtual bool getActiveLayerContribution (const UT_String &track_name, fpreal t, fpreal &value, fpreal &weight)
 
virtual bool resolveExport (const PRM_Parm *p, int subindex, CH_ChannelRef &out_export)
 
const PRM_ParmtraverseRef (int *sub_idx, fpreal time, int parm_idx, int vec_idx) const override
 
OP_BundlegetParmBundle (const char *parm_name, int vector_index, UT_String &pattern, OP_Network *creator, const char *filter, bool subnet_inclusion)
 
virtual void getDefaultState (UT_String &default_state_name)
 
void clearInputContextOptionDepIfSafe (const UT_StringHolder &opt, const OP_Context &context)
 
virtual bool hasTransformTracks () const
 
virtual bool evaluateTransformTracks (OP_Context &context, OP_EvaluateTransformTracksArgs &args)
 
virtual bool evaluateTransformTracksTargets (OP_Context &context, OP_NodeList &nodes, OP_Node *caller)
 
virtual bool isSelectionOwnerType () const
 
void addExtraInputs (const UT_Array< OP_InterestRef > &source_refs)
 Add many extra inputs in one call. See addExtraInput. More...
 
void addExtraInputs (const DEP_MicroNodeList &deps)
 
void addExtraInput (OP_Node *op, OP_InterestType type, DEP_MicroNodeList &sources_cache)
 
void addExtraInputs (const UT_Array< OP_Node * > &nodes, OP_InterestType type, DEP_MicroNodeList &sources_cache)
 
virtual bool isUsingCurrentFrameForVexTransformContext () const
 
OBJ_NodefindOBJNode (const char *path) const
 
SOP_NodefindSOPNode (const char *path) const
 
CHOPNET_Node * findCHOPNETNode (const char *path) const
 
CHOP_NodefindCHOPNode (const char *path) const
 
ROP_NodefindROPNode (const char *path) const
 
SHOP_NodefindSHOPNode (const char *path) const
 
COP2_NodefindCOP2Node (const char *path) const
 
COP2NET_Node * findCOP2NETNode (const char *path) const
 
VOP_NodefindVOPNode (const char *path) const
 
VOPNET_NodefindVOPNETNode (const char *path) const
 
DOP_NodefindDOPNode (const char *path) const
 
TOP_Node * findTOPNode (const char *path) const
 
TOPNET_Node * findTOPNETNode (const char *path) const
 
LOP_NodefindLOPNode (const char *path) const
 
OBJ_NodecastToOBJNode () const
 
SOP_NodecastToSOPNode () const
 
CHOPNET_Node * castToCHOPNETNode () const
 
CHOP_NodecastToCHOPNode () const
 
ROP_NodecastToROPNode () const
 
SHOP_NodecastToSHOPNode () const
 
COP2_NodecastToCOP2Node () const
 
COP2NET_Node * castToCOP2NETNode () const
 
VOP_NodecastToVOPNode () const
 
VOPNET_NodecastToVOPNETNode () const
 
DOP_NodecastToDOPNode () const
 
TOP_Node * castToTOPNode () const
 
TOPNET_Node * castToTOPNETNode () const
 
LOP_NodecastToLOPNode () const
 
const UT_StringgetComment () const
 Accessors for this node's comment string. More...
 
bool setComment (const char *str)
 Accessors for this node's comment string. More...
 
UT_Color getColor () const override
 
bool setColor (const UT_Color &col) override
 
bool getColorDefault () const
 
bool setColorDefault (bool usedefault)
 
const UT_StringHoldergetNodeShape () const
 Accessors for this node's shape. More...
 
void setNodeShape (const UT_StringHolder &shape)
 
void setXY (fpreal x, fpreal y) override
 Node position/scale is used by the UI. More...
 
fpreal getX () const override
 Node position/scale is used by the UI. More...
 
fpreal getY () const override
 Node position/scale is used by the UI. More...
 
int findString (const char *str, bool fullword, bool usewildcards) const override
 
int changeString (const char *from, const char *to, bool fullword) override
 
virtual UT_StringArraygetArrayForLoadedInputNames ()
 
virtual UT_StringArraygetArrayForLoadedOutputNames ()
 
virtual int beginVopCodeGeneratorUpdate ()
 
virtual void endVopCodeGeneratorUpdate (int update_level)
 
bool traverseInputs (bool(*callback)(OP_Node &, void *), void *data, TraverseOptions opts, OP_InterestType extra_interest_mask=OP_INTEREST_ALL)
 
bool traverseInputs (bool(*callback)(const OP_Node &, void *), void *data, TraverseOptions opts, OP_InterestType extra_interest_mask=OP_INTEREST_ALL) const
 
- Public Member Functions inherited from OP_Parameters
SYS_FORCE_INLINE const UT_StringgetName () const
 
SYS_FORCE_INLINE OP_OperatorgetOperator () const
 
bool updateParmsAndSpareParmsFlags ()
 
virtual bool referenceSingleParameter (OP_Parameters *from, int parm_idx, const char *relative_path=NULL)
 
void animate (unsigned idx)
 
void animate (const char *name)
 
void deAnimate (unsigned idx)
 
void deAnimate (const char *name)
 
CH_ChanneladdChannel (const char *name)
 
CH_ChannelgetChannel (const char *name)
 
const CH_ChannelgetChannel (const char *name) const
 
int destroyChannel (const char *name)
 
bool isObsoleteChannel (const char *name) const
 
void takeActivateParm (uint idx, bool enable=true)
 
void takeActivateParm (const char *name, bool enable=true)
 
void takeActivateParm (PRM_Parm *parm, bool enable=true)
 
void takeDeactivateParm (uint idx)
 
void takeDeactivateParm (const char *name)
 
void takeDeactivateParm (PRM_Parm *parm)
 
bool takeIsActiveParm (uint idx)
 
bool takeIsActiveParm (const char *name)
 
bool takeIsActiveParm (const PRM_Parm *parm)
 
void takeAutoActivateParm (PRM_Parm *) override
 
fpreal findKey (fpreal t, int direction) const
 
PRM_ChanState getChanState (fpreal t, bool scoped_only) const
 
PRM_ChanState isAtKey (fpreal t) const
 
void updatePending (fpreal t)
 
bool isPending (fpreal t)
 
OP_ChannelsgetChannels () const
 
virtual void getVariableString (int index, UT_String &value, int thread)
 
virtual float getVariableValue (int index, int thread)
 
int getNumParms () const
 
int getParmIndex (const UT_StringRef &name) const
 
PRM_ParmgetParm (int i)
 
const PRM_ParmgetParm (int i) const
 
PRM_ParmgetParm (const UT_StringRef &name)
 
const PRM_ParmgetParm (const UT_StringRef &name) const
 
bool hasParm (const UT_StringRef &name) const
 
PRM_ParmgetParmPtr (const UT_StringRef &name)
 
const PRM_ParmgetParmPtr (const UT_StringRef &name) const
 
PRM_ParmgetParmPtrInst (const char *name, const int *inst, int nestlevel=1)
 
const PRM_ParmgetParmPtrInst (const char *name, const int *inst, int nestlevel=1) const
 
bool getIsChangingSpareParms () const
 
void deleteAllSpareParms ()
 
PRM_ParmListcreateObsoleteParmList () override
 
void resolveAndDeleteObsoleteParmList (PRM_ParmList *&obsolete_parms) override
 
virtual void resolveObsoleteParms (PRM_ParmList *)
 
bool getParameterOrPropertyConst (const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, PRM_ParmList *obsolete) const
 
const OP_StatgetStat () const
 
OP_StatgetStat ()
 
bool enableParm (int pi, int state, int v=-1)
 
bool enableParm (const char *pn, int state, int v=-1)
 
bool enableParmInst (const char *name, const int *inst, int state, int nestlevel=1, int v=-1)
 
unsigned getEnableState (int pi, int v=-1)
 
unsigned getEnableState (const char *pn, int v=-1)
 
unsigned getEnableStateInst (const char *name, const int *inst, int nestlevel=1, int v=-1)
 
bool setVisibleState (int pi, bool state, int v=-1)
 
bool setVisibleState (const char *pn, bool state, int v=-1)
 
bool setVisibleStateInst (const char *name, const int *inst, int state, int nestlevel=1, int v=-1)
 
bool getVisibleState (int pi, int v=-1)
 
bool getVisibleState (const char *pn, int v=-1)
 
void evalString (UT_String &val, int pi, int vi, fpreal t) const
 
void evalString (UT_StringHolder &val, int pi, int vi, fpreal t) const
 
void evalStringT (UT_String &val, int pi, int vi, fpreal t, int thread) const
 
void evalStringT (UT_StringHolder &val, int pi, int vi, fpreal t, int thread) const
 
void evalString (UT_String &val, const UT_StringRef &pn, int vi, fpreal t) const
 
void evalString (UT_StringHolder &val, const UT_StringRef &pn, int vi, fpreal t) const
 
void evalStringT (UT_String &val, const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
void evalStringT (UT_StringHolder &val, const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
void evalString (UT_String &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
void evalString (UT_StringHolder &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
void evalStringT (UT_String &val, const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
void evalStringT (UT_StringHolder &val, const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
void evalString (UT_String &val, const PRM_Parm *parm, int vi, fpreal t) const
 
void evalString (UT_StringHolder &val, const PRM_Parm *parm, int vi, fpreal t) const
 
void evalStringT (UT_String &val, const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
void evalStringT (UT_StringHolder &val, const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
void evalStringRaw (UT_String &val, int pi, int vi, fpreal t) const
 
void evalStringRawT (UT_String &val, int pi, int vi, fpreal t, int thread) const
 
void evalStringRaw (UT_String &val, const UT_StringRef &pn, int vi, fpreal t) const
 
void evalStringRawT (UT_String &val, const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
void evalStringRaw (UT_String &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
void evalStringRawT (UT_String &val, const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
void evalStringRaw (UT_String &val, const PRM_Parm *parm, int vi, fpreal t) const
 
void evalStringRawT (UT_String &val, const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
PRM_DataItemHandle evalData (int pi, int vi, fpreal t) const
 
PRM_DataItemHandle evalDataT (int pi, int vi, fpreal t, int thread) const
 
PRM_DataItemHandle evalData (const UT_StringRef &pn, int vi, fpreal t) const
 
PRM_DataItemHandle evalDataT (const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
PRM_DataItemHandle evalData (const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
PRM_DataItemHandle evalDataT (const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
PRM_DataItemHandle evalData (const PRM_Parm *parm, int vi, fpreal t) const
 
PRM_DataItemHandle evalDataT (const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
void evalJSONMap (UT_JSONValueMap &val, int pi, int vi, fpreal t) const
 
void evalJSONMapT (UT_JSONValueMap &val, int pi, int vi, fpreal t, int thread) const
 
void evalJSONMap (UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t) const
 
void evalJSONMapT (UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
void evalJSONMap (UT_JSONValueMap &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
void evalJSONMapT (UT_JSONValueMap &val, const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
void evalJSONMap (UT_JSONValueMap &val, const PRM_Parm *parm, int vi, fpreal t) const
 
void evalJSONMapT (UT_JSONValueMap &val, const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
void evalJSONMapRaw (UT_JSONValueMap &val, int pi, int vi, fpreal t) const
 
void evalJSONMapRawT (UT_JSONValueMap &val, int pi, int vi, fpreal t, int thread) const
 
void evalJSONMapRaw (UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t) const
 
void evalJSONMapRawT (UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
void evalJSONMapRaw (UT_JSONValueMap &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
void evalJSONMapRawT (UT_JSONValueMap &val, const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
void evalJSONMapRaw (UT_JSONValueMap &val, const PRM_Parm *parm, int vi, fpreal t) const
 
void evalJSONMapRawT (UT_JSONValueMap &val, const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
CH_StringMeaning getStringMeaning (int pi, int vi, fpreal t) const
 
CH_StringMeaning getStringMeaning (const char *pn, int vi, fpreal t) const
 
CH_StringMeaning getStringMeaningInst (const char *name, const int *inst, int vi, fpreal t, int nest_level=1) const
 
CH_ExprLanguage getExprLanguage () const override
 
void setExprLanguage (CH_ExprLanguage language)
 
void insertMultiParmItem (const char *pn, int i)
 
void removeMultiParmItem (const char *pn, int i)
 
void updateMultiParmFromRamp (fpreal t, const UT_Ramp &ramp, PRM_Parm &m, bool add_wrap, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void updateRampFromMultiParm (fpreal t, const PRM_Parm &m, UT_Ramp &ramp, bool *time_dep=NULL, DEP_MicroNode *depnode=NULL) const
 
bool convertObsAnimatedToStringExpression (PRM_ParmList *obsolete_parms, const char *pn, int vi, fpreal t, UT_String &result, bool reset_obs)
 
bool expandString (UT_String &val, fpreal t, int thread, const char *channel_name=0)
 
bool isParmDirty (int idx, fpreal t)
 
bool isParmDirty (const char *n, fpreal t)
 
bool isParmDirtyInst (const char *name, const int *inst, fpreal t, int nestlevel=1)
 
void cacheParmValues (const OP_Context &context)
 
void clearParmCache ()
 
bool isParmTimeDependent (int idx, int comp=-1) const
 
bool isParmTimeDependent (const char *name, int comp=-1) const
 
int getErrorMessages (UT_String &messages, UT_ErrorSeverity severity=UT_ERROR_NONE)
 
int findError (const char *type, int code) const
 
int removeError (int idx)
 
void clearDuplicateErrors ()
 
void opMessage (int code, const char *m=0) const
 
void opWarning (int code, const char *m=0) const
 
void opError (int code, const char *m=0) const
 
void opFatal (int code, const char *m=0) const
 
void opLocalError (int code, const char *m=0)
 
void opLocalWarning (int code, const char *m=0)
 
void opLocalDeadlockError ()
 
void appendError (const char *type, int code, const char *m, UT_ErrorSeverity sev)
 
void clearErrors ()
 
void clearErrors (OP_Context &context)
 
exint getErrorVersion ()
 
bool hasDeadlockError () const
 
virtual OP_ERROR error (OP_Context &context)
 
bool hasError (OP_Context &context)
 
virtual OP_ERROR error ()
 
bool hasError ()
 
void stealErrors (UT_ErrorManager &src, bool borrow_only=false)
 
OP_ERROR getSaveError ()
 
bool isGettingSaveError () const
 
void addChannelError (const char *type, int code, const char *msg=0)
 
void chChanged (CH_Channel *ch, CH_CHANGE_TYPE reason)
 
virtual void saveParmsForUndo (bool scopedOnly=false, CH_Collection *collection=NULL)
 
void saveSingleParmForUndo (PRM_Parm *parm)
 
void saveParmForUndo (PRM_Parm *)
 
virtual void saveKeyFrameForUndo (CH_Channel *chp, fpreal gtime)
 
int getAnyUndoPending () const
 
int canAccess (unsigned mask) const
 
bool canAccess (unsigned mask, const PRM_Parm *parm) const
 
bool canAccessChannel (uint mask, const CH_Channel *chp) const
 
void updateUserMask ()
 
bool canModifyFromUI (const PRM_Parm *parm, int vi) const
 
virtual int reloadNewFiles (fpreal time_now)
 
void triggerOPChanged (OP_EventType reason, int index)
 
void parmChanged (int parm_index)
 
void parmExprChanged (int parm_index)
 
void operatorDeleted ()
 
void saveParmCommand (std::ostream &os, int values=0, int defaultstoo=1, bool spareparms=true) const
 
int loadParmCommand (int argc, const char *const argv[], int docallbacks, void *data, fpreal now, bool followchrefs, CMD_Args *args)
 
void commandParmCallback (void *data, fpreal now, int argc, char *argv[], CMD_Args *args)
 
void saveMultiParmInstanceCommand (std::ostream &os, const char *opname, bool spareparms) const
 
int64 getMemoryUsage (bool inclusive) const override
 
void bumpTakeReference (int dir)
 
int getTakeReferences () const
 
void createChannelGroupsFromFolders (CH_Group &parent_group, bool only_channels, bool leaf_channels_only=false, bool only_unlocked=true)
 
bool getAutoScopedChannel (PRM_Parm *parm, int vector_index, OP_GetAutoScopedOptions &opts, CH_ChannelRef &chref)
 Returns the scoped channel ref corresponding to a parameter. More...
 
void getAutoScopedChannels (CH_ChannelRefList &chlist, bool follow_layer_overrides=true, bool include_animated=false, bool follow_channel_refs=true, bool include_autoscope=true)
 
void getAutoScopedChannels (CH_ChannelRefList &chlist, OP_GetAutoScopedOptions &opts)
 
void getChopScopeChannels (UT_WorkBuffer &chopscope_cmd)
 
bool getParmIsVisible (const char *parmname)
 
const PRM_TemplategetInterfaceParmTemplates () const
 
const PRM_TemplategetSpareParmTemplates () const
 
const PRM_ScriptImportsgetSpareParmTemplateImports () const
 
const PRM_TemplategetSpareParmLayoutTemplates () const
 
const PRM_ScriptImportsgetSpareParmLayoutTemplateImports () const
 
int getSpareParmTemplatesId () const
 
int numSpareInputs () const
 
bool hasMultiparmInfo () const
 
OP_MultiparmInfogetMultiparmInfo ()
 
void initMultiparmInstance (UT_ValArray< PRM_Parm * > &parms) override
 
void addOrRemoveMultiparmInstance () override
 
bool savePresetContents (std::ostream &os) override
 
bool loadPresetContents (const char *tok, UT_IStream &is) override
 
void createParmMicroNode (const UT_StringRef &pn, int *pi)
 
exint evalInt (int pi, int vi, fpreal t) const
 
exint evalIntT (int pi, int vi, fpreal t, int thread) const
 
exint evalInt (const UT_StringRef &pn, int vi, fpreal t) const
 
exint evalIntT (const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
exint evalInt (const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
exint evalIntT (const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
exint evalInt (const PRM_Parm *parm, int vi, fpreal t) const
 
exint evalIntT (const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
fpreal evalFloat (int pi, int vi, fpreal t) const
 
fpreal evalFloatT (int pi, int vi, fpreal t, int thread) const
 
fpreal evalFloat (const UT_StringRef &pn, int vi, fpreal t) const
 
fpreal evalFloatT (const UT_StringRef &pn, int vi, fpreal t, int thread) const
 
fpreal evalFloat (const UT_StringRef &pn, int *pi, int vi, fpreal t) const
 
fpreal evalFloatT (const UT_StringRef &pn, int *pi, int vi, fpreal t, int thread) const
 
fpreal evalFloat (const PRM_Parm *parm, int vi, fpreal t) const
 
fpreal evalFloatT (const PRM_Parm *parm, int vi, fpreal t, int thread) const
 
void evalFloats (int pi, fpreal64 *v, fpreal t) const
 
void evalFloatsT (int pi, fpreal64 *v, fpreal t, int thread) const
 
void evalFloats (const UT_StringRef &pn, fpreal64 *v, fpreal t) const
 
void evalFloatsT (const UT_StringRef &pn, fpreal64 *v, fpreal t, int thread) const
 
void evalFloats (const UT_StringRef &pn, int *pi, fpreal64 *v, fpreal t) const
 
void evalFloatsT (const UT_StringRef &pn, int *pi, fpreal64 *v, fpreal t, int thread) const
 
void evalFloats (const PRM_Parm *parm, fpreal64 *v, fpreal t) const
 
void evalFloatsT (const PRM_Parm *parm, fpreal64 *v, fpreal t, int thread) const
 
void evalFloatsT (int pi, fpreal32 *v, fpreal t, int thread) const
 
void evalFloats (int pi, fpreal32 *v, fpreal t) const
 
void evalFloatsT (const UT_StringRef &pn, fpreal32 *v, fpreal t, int thread) const
 
void evalFloats (const UT_StringRef &pn, fpreal32 *v, fpreal t) const
 
void evalFloatsT (const UT_StringRef &pn, int *pi, fpreal32 *v, fpreal t, int thread) const
 
void evalFloats (const UT_StringRef &pn, int *pi, fpreal32 *v, fpreal t) const
 
void evalFloatsT (const PRM_Parm *parm, fpreal32 *v, fpreal t, int thread) const
 
void evalFloats (const PRM_Parm *parm, fpreal32 *v, fpreal t) const
 
void evalFloatsInst (const UT_StringRef &name, const int *inst, fpreal32 *v, fpreal t, int nestlevel=1) const
 
exint evalIntInst (const UT_StringRef &name, const int *inst, int vi, fpreal t, int nestlevel=1) const
 
exint evalIntInstT (const UT_StringRef &name, const int *inst, int vi, fpreal t, int thread, int nestlevel=1) const
 
fpreal evalFloatInst (const UT_StringRef &name, const int *inst, int vi, fpreal t, int nestlevel=1) const
 
fpreal evalFloatInstT (const UT_StringRef &name, const int *inst, int vi, fpreal t, int thread, int nestlevel=1) const
 
void evalFloatsInst (const UT_StringRef &name, const int *inst, fpreal64 *v, fpreal t, int nestlevel=1) const
 
void evalFloatsInstT (const UT_StringRef &name, const int *inst, fpreal64 *v, fpreal t, int thread, int nestlevel=1) const
 
void evalStringInst (const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int nestlevel=1) const
 
void evalStringInst (const UT_StringRef &name, const int *inst, UT_StringHolder &val, int vi, fpreal t, int nestlevel=1) const
 
void evalStringInstT (const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int thread, int nestlevel=1) const
 
void evalStringInstT (const UT_StringRef &name, const int *inst, UT_StringHolder &val, int vi, fpreal t, int thread, int nestlevel=1) const
 
void evalStringInstRaw (const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int nestlevel=1) const
 
void evalStringInstRawT (const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int thread, int nestlevel=1) const
 
PRM_DataItemHandle evalDataInst (const UT_StringRef &name, const int *inst, int vi, fpreal t, int nestlevel=1) const
 
PRM_DataItemHandle evalDataInstT (const UT_StringRef &name, const int *inst, int vi, fpreal t, int thread, int nestlevel=1) const
 
void setIntInst (exint value, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setFloatInst (fpreal value, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setStringInst (const UT_StringRef &value, CH_StringMeaning meaning, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setDataInst (const PRM_DataItemHandle &value, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
bool evalParameterOrProperty (const UT_StringRef &parm_name, int vec_index, fpreal now, int &value, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyT (const UT_StringRef &parm_name, int vec_index, fpreal now, int &value, int thread, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrProperty (const UT_StringRef &parm_name, int vec_index, fpreal now, fpreal &values, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyT (const UT_StringRef &parm_name, int vec_index, fpreal now, fpreal &values, int thread, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrProperty (const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyT (const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, int thread, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyRaw (const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyRawT (const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, int thread, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyExpr (const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=NULL) const
 
bool evalParameterOrPropertyExprT (const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, int thread, PRM_Parm **parmptr=NULL) const
 
bool evalVectorProperty (const UT_StringRef &parm_name, fpreal now, int *values, int vec_size, PRM_Parm **parmptr=NULL) const
 
bool evalVectorPropertyT (const UT_StringRef &parm_name, fpreal now, int *values, int vec_size, int thread, PRM_Parm **parmptr=NULL) const
 
bool evalVectorProperty (const UT_StringRef &parm_name, fpreal now, fpreal *values, int vec_size, PRM_Parm **parmptr=NULL) const
 
bool evalVectorPropertyT (const UT_StringRef &parm_name, fpreal now, fpreal *values, int vec_size, int thread, PRM_Parm **parmptr=NULL) const
 
void setInt (int parmi, int vectori, fpreal t, exint value)
 
void setInt (const char *parmname, int vectori, fpreal t, exint value)
 
void setInt (const char *parmname, int &parmi, int vectori, fpreal t, exint value)
 
void setFloat (int parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void setFloat (const char *parmname, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void setFloat (const char *parmname, int &parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void setString (const UT_StringRef &val, CH_StringMeaning meaning, int parmi, int vectori, fpreal t)
 
void setString (const UT_StringRef &val, CH_StringMeaning meaning, const char *parmname, int vectori, fpreal t)
 
void setString (const UT_StringRef &val, CH_StringMeaning meaning, const char *parmname, int &parmi, int vectori, fpreal t)
 
void setData (int parmi, int vectori, fpreal t, const PRM_DataItemHandle &val)
 
void setData (const char *parmname, int vectori, fpreal t, const PRM_DataItemHandle &val)
 
void setData (const char *parmname, int &parmi, int vectori, fpreal t, const PRM_DataItemHandle &val)
 
void setChRefInt (int pi, int vi, fpreal t, exint val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefInt (const char *pn, int vi, fpreal t, exint val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefFloat (int pi, int vi, fpreal t, fpreal val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefFloat (const char *pn, int vi, fpreal t, fpreal val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefString (const UT_StringRef &val, CH_StringMeaning meaning, int pi, int vi, fpreal t, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefString (int pi, int vi, fpreal t, const UT_StringRef &val, CH_StringMeaning meaning, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefString (const UT_StringRef &val, CH_StringMeaning meaning, const char *pn, int vi, fpreal t, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefString (const char *pn, int vi, fpreal t, const UT_StringRef &val, CH_StringMeaning meaning, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefData (int pi, int vi, fpreal t, const PRM_DataItemHandle &val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefData (const char *pn, int vi, fpreal t, const PRM_DataItemHandle &val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
bool setParameterOrProperty (const char *parm_name, int vec_index, fpreal now, int32 value, bool set_key=false, bool propagate=true)
 
bool setParameterOrProperty (const char *parm_name, int vec_index, fpreal now, int64 value, bool set_key=false, bool propagate=true)
 
bool setParameterOrProperty (const char *parm_name, int vec_index, fpreal now, fpreal value, bool set_key=false, bool propagate=true)
 
bool setParameterOrProperty (const char *parm_name, int vec_index, fpreal now, const char *value, CH_StringMeaning meaning, bool set_key=false, bool propagate=true)
 
void setSilentInt (int parmi, int vectori, fpreal t, exint value)
 
void setSilentInt (const char *parmname, int vectori, fpreal t, exint value)
 
void setSilentInt (const char *parmname, int &parmi, int vectori, fpreal t, exint value)
 
void setSilentFloat (int parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void setSilentFloat (const char *parmname, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void setSilentFloat (const char *parmname, int &parmi, int vectori, fpreal t, fpreal value, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING)
 
void setSilentString (const UT_StringRef &value, CH_StringMeaning meaning, int parmi, int vectori, fpreal t)
 
void setSilentString (const UT_StringRef &value, CH_StringMeaning meaning, const char *parmname, int vectori, fpreal t)
 
void setSilentString (const UT_StringRef &value, CH_StringMeaning meaning, const char *parmname, int &parmi, int vectori, fpreal t)
 
void setSilentData (int parmi, int vectori, fpreal t, const PRM_DataItemHandle &value)
 
void setSilentData (const char *parmname, int vectori, fpreal t, const PRM_DataItemHandle &value)
 
void setSilentData (const char *parmname, int &parmi, int vectori, fpreal t, const PRM_DataItemHandle &value)
 
void setSilentIntInst (exint value, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setSilentFloatInst (fpreal value, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setSilentStringInst (const UT_StringRef &value, CH_StringMeaning meaning, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setSilentDataInst (const PRM_DataItemHandle &value, const char *parmname, const int *inst, int vectori, fpreal t, int nestlevel=1)
 
void setChRefInt (const char *parmname, int &pi, int vi, fpreal t, exint val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefFloat (const char *parmname, int &pi, int vi, fpreal t, fpreal val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefString (const UT_StringRef &val, CH_StringMeaning meaning, const char *parmname, int &pi, int vi, fpreal t, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
void setChRefData (const char *parmname, int &pi, int vi, fpreal t, const PRM_DataItemHandle &val, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
PRM_ParmgetParmActivationControl (const UT_StringRef &parm_name)
 
- Public Member Functions inherited from PRM_ParmOwner
const char * getFullPath (UT_String &str) const
 
const char * getFullPath (UT_WorkBuffer &str) const
 
UT_StringHolder getFullPath () const
 
SYS_FORCE_INLINE PRM_ParmListgetParmList ()
 
SYS_FORCE_INLINE const
PRM_ParmList
getParmList () const
 
virtual bool createSpareParametersForLoad (UT_StringArray &, PRM_ParmNameMap &, UT_String &)
 
bool isPendingOverride () const
 
const char * getPendingOverrideString () const
 
void setPendingOverrideString (const char *s)
 
- Public Member Functions inherited from OP_NetworkBoxItem
 OP_NetworkBoxItem ()
 
virtual ~OP_NetworkBoxItem ()
 
bool setXYWithBoundsChecks (fpreal x, fpreal y)
 
void validateSafeBounds (fpreal &x, fpreal &y)
 
void validateSafeBounds (fpreal &x, fpreal &y, fpreal &w, fpreal &h)
 
void moveToGoodPosition (bool relativetoinputs=true, bool moveinputs=true, bool moveoutputs=true, bool moveunconnected=true)
 
void setOwnerBox (OP_NetworkBox *box)
 
OP_NetworkBoxgetOwnerBox () const
 
bool hasOwnerBox (const OP_NetworkBoxItem *item) const
 
OP_NetworkBoxgetMinimizedOwnerBox () const
 
void getPathFromParent (UT_String &str, const OP_Node *parent) const
 
void getPathFromParent (UT_WorkBuffer &str, const OP_Node *parent) const
 
void getRelativePathTo (const OP_NetworkBoxItem *base_item, UT_String &result) const
 Returns the path of this item relative to 'base_item'. More...
 
OP_NetworkgetCreator () const
 
OP_NetworkgetCodeCreator () const
 
void getConnectedItems (OP_NetworkBoxItemList &connected, bool inputs, bool recursive, bool include_this_item) const
 Fills an array with all network box items connected to this item. More...
 
int64 getMemoryUsage (bool inclusive) const
 

Static Public Member Functions

static void buildOperatorTable (OP_OperatorTable &table)
 
static const char * getTypeNameFromType (const VOP_TypeInfo &type_info, const VOP_Language *lang)
 
static void incrementVariableName (UT_String &varname)
 
static void deleteAutoNodesIn (VOP_NodeList &nodes)
 
static intgetLODPref ()
 
static void setLODPref (int value)
 
static void cacheAllParmNames (OP_Node *root)
 Calls cacheParmName on all VOP_ParmGenerator nodes under root. More...
 
static void recalculateAllParmDefiners (OP_Node *root, bool dive_into_subnets=true, const UT_StringRef &target_parm_name=UT_StringRef())
 Calls recalculateParmDefiner on all VOP_ParmGenerator nodes under root. More...
 
static void refreshShaderParmTemplatesIfNeeded (OP_Node *n)
 
static const UT_Set
< UT_StringHolder > & 
getUSDPreviewShaderTags ()
 Returns a set of parm tags relevant to authoring the USD preview shader. More...
 
static void setRunCreateScriptCB (void(*)(const char *node_path, const char *render_mask, VOP_Type shader_type))
 
static bool getShowPreviewPref ()
 
static void setShowPreviewPref (bool show)
 
static UT_StringHolder ensureValidVarName (const UT_StringHolder &var)
 
static UT_StringHolder decodeVarName (const UT_StringHolder &var)
 
- Static Public Member Functions inherited from OP_Network
static const char * getScriptFromTable (const char *table)
 
static const char * getOpTypeFromTable (const char *table)
 
static bool canDestroyNode (OP_Node *node)
 Returns true if it is safe at this time to destroy this node. More...
 
static void fixName (const char *name, const OP_FixNameParms &fix_name_parms, UT_String &fixed_name)
 
static bool isOpWritten (UT_IStream &is)
 
static OP_OperatorTablegetOperatorTable (const UT_StringRef &op_type, const char *script_path=0)
 
static void saveOTLBackupInformation (std::ostream &os, const OP_OperatorList &fallbackops, const OP_OperatorList &dummyops)
 
static bool warnDeprecatedOpsOnLoad ()
 
static void setWarnDeprecatedOpsOnLoad (bool enable)
 
static int syncContentsLevel ()
 
- Static Public Member Functions inherited from OP_Node
static const OP_TypeInfogetOpInfoFromOpTypeID (OP_OpTypeId opid)
 
static const OP_TypeInfogetOpInfoFromOpTypeName (const char *name)
 
static const OP_TypeInfogetOpInfoFromTableName (const char *name)
 
static const OP_TypeInfogetOpInfoFromScriptDir (const char *dir)
 
static bool isValidOpName (const UT_StringView &s, bool allow_rel_paths=false, bool ignore_node_names_env_var=false)
 Set allow_rel_paths to true to accept "." or ".." as valid paths. More...
 
static bool isValidOpName (const char *s, bool allow_rel_paths=false, bool ignore_node_names_env_var=false)
 
static bool isValidOpName (const UT_String &str, bool allow_rel_paths=false, bool ignore_node_names_env_var=false)
 
static bool isValidOpPath (const UT_StringRef &s)
 
static bool forceValidOpName (UT_String &name)
 
static OP_NodelookupNode (int unique_id, bool include_proxy=false)
 
static int getNumUniqueIds ()
 
static void getAllNodes (OP_NodeList &nodes)
 
static void getValueAsBundlePaths (fpreal t, UT_WorkBuffer &resultbuf, PRM_Parm *parm, int index, OP_Node *srcnode)
 
static void getValueAsBundlePaths (fpreal t, OP_NodeList &resultnodes, PRM_Parm *parm, int index, OP_Node *srcnode)
 
static bool parallelCook (OP_Context &context, const OP_NodeList &nodes)
 Cook the given node list in parallel. More...
 
static void repositionOpsMaxY (OP_NetworkBoxItemList &items, fpreal x, fpreal y)
 
static DEP_MicroNodegetEvalChannelMicroNode (int thread)
 
static void addMultiparmInterests (const OP_InterestRef &target_ref, OP_Node *srcnode, PRM_Parm &parm)
 
static void addMultiparmInterests (DEP_MicroNode &target, OP_Node *srcnode, PRM_Parm &parm)
 
static void addExprOpDependency (const char *arg_str, const PRM_RefId &ref_id, OP_InterestType interest_type)
 
static void addExprOpDependency1From2 (const char *arg_str1, const char *arg_str2, const PRM_RefId &ref_id, OP_InterestType interest_type)
 
static void addExprOpParmDependency (const char *arg_str, const PRM_RefId &ref_id, OP_InterestType interest_type)
 
static void changeExprOpRef (const char *arg_str, char *&new_arg, const char *new_fullpath, const char *old_fullpath, const char *old_cwd)
 
static void changeExprOpRef1From2 (const char *arg_str1, const char *arg_str2, char *&new_arg1, char *&new_arg2, const char *new_fullpath, const char *old_fullpath, const char *old_cwd)
 
static void changeExprOpParmRef (const char *arg_str, char *&new_arg, const char *new_fullpath, const char *old_fullpath, const char *old_cwd, const char *chan_name, const char *old_chan_name)
 
static void moveAndUpdateDependencies (const OP_NodeList &src_nodes, const OP_NodeList &dest_nodes)
 
static void updateChannelPtrs (CH_CollectionList &parents)
 
static int getGlobbedNodes (OP_Node *cwd, UT_String &holder, const char *pattern, UT_WorkArgs &argv, OP_GlobContext *context)
 
static int getGlobbedNetworkBoxes (OP_Node *cwd, UT_String &holder, const char *pattern, UT_WorkArgs &argv, OP_GlobContext *context)
 
static int getGlobbedPostIts (OP_Node *cwd, UT_String &holder, const char *pattern, UT_WorkArgs &argv, OP_GlobContext *context)
 
static void propagateMatchOTLDefinitionToAncestors (OP_Node *node, bool sync_flag)
 Utility function for syncing/unsyncing all uncestor nodes. More...
 
static const char * internalUserDataPrefix ()
 Prefix to use for internally used user data. More...
 
static int findOpFramePair (const char *path, int &op_id, fpreal &frame)
 
static void buildXformOrder (int trs, int xyz, UT_XformOrder &order)
 Build a UT_XformOrder out of TRS and XYZ parameter values. More...
 
static const UT_XformOrderbuildXformOrder (int trs, int xyz)
 
static UT_XformOrder::rstOrder getMainOrder (int trs)
 Translate a TRS parameter menu index into the UT_XformOrder type. More...
 
static int getMainOrderMenuIndex (UT_XformOrder::rstOrder order)
 
static UT_XformOrder::xyzOrder getRotOrder (int xyz)
 Translate a XYZ parameter menu index into the UT_XformOrder type. More...
 
static int getRotOrderMenuIndex (UT_XformOrder::xyzOrder order)
 
static UT_Vector3R getXformPivot (int trs, fpreal tx, fpreal ty, fpreal tz, fpreal px, fpreal py, fpreal pz)
 
static UT_Vector3R getXformPivot (int trs, fpreal tx, fpreal ty, fpreal tz, fpreal px, fpreal py, fpreal pz, fpreal pivot_rx, fpreal pivot_ry, fpreal pivot_rz, bool inverse=false)
 
static UT_Vector3R getPivotParmValue (int trs, fpreal tx, fpreal ty, fpreal tz, fpreal px, fpreal py, fpreal pz)
 
static UT_Vector3R getPivotParmValue (int trs, fpreal tx, fpreal ty, fpreal tz, fpreal px, fpreal py, fpreal pz, fpreal pivot_rx, fpreal pivot_ry, fpreal pivot_rz, bool inverse=false)
 
static void buildXform (int trs, int xyz, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float px, float py, float pz, UT_Matrix4 &mat)
 
static void buildXform (int trs, int xyz, double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, double px, double py, double pz, UT_DMatrix4 &mat)
 
static void buildXform (int trs, int xyz, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, const UT_Matrix4F::PivotSpace &pivot, UT_Matrix4 &mat)
 
static void buildXform (int trs, int xyz, double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, const UT_DMatrix4::PivotSpace &pivot, UT_DMatrix4 &mat)
 
static void buildXform (int trs, int xyz, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, UT_Matrix4 &mat)
 
static void buildXform (int trs, int xyz, double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, double s_xy, double s_xz, double s_yz, double px, double py, double pz, UT_DMatrix4 &mat)
 
static void buildXform (int trs, int xyz, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, const UT_Matrix4F::PivotSpace &pivot, UT_Matrix4 &mat)
 
static void buildXform (int trs, int xyz, double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, double s_xy, double s_xz, double s_yz, const UT_DMatrix4::PivotSpace &pivot, UT_DMatrix4 &mat)
 
static void buildXform (const UT_Matrix4F::FullTransformModel &parms, UT_Matrix4F &mat)
 
static void buildXform (const UT_Matrix4D::FullTransformModel &parms, UT_Matrix4D &mat)
 
static void buildXform (int trs, float tx, float ty, float rz, float sx, float sy, float px, float py, UT_Matrix3 &mat)
 
static void buildXform (int trs, double tx, double ty, double rz, double sx, double sy, double px, double py, UT_DMatrix3 &mat)
 
static void buildXform (int trs, float tx, float ty, float rz, float sx, float sy, float s_xy, float px, float py, UT_Matrix3 &mat)
 
static void buildXform (int trs, double tx, double ty, double rz, double sx, double sy, double s_xy, double px, double py, UT_DMatrix3 &mat)
 
static void clearAllPendingUndoFlags ()
 
static OP_EditCallback getEditCallback (void *&data)
 
static void buildQuadricXform (UT_Matrix4 &mat, float tx, float ty, float tz, float sx, float sy, float sz, char axis= 'y', float rx=0.0f, float ry=0.0f, float rz=0.0f)
 
static void buildQuadricXform (UT_DMatrix4 &mat, double tx, double ty, double tz, double sx, double sy, double sz, char axis= 'y', double rx=0.0, double ry=0.0, double rz=0.0)
 
static int buildOpMenu (OP_Network *net, PRM_Name *theMenu, int theMenuSize, int(*doAdd)(OP_Node *)=0, int startItem=0, const PRM_Parm *parm=0, int showSubnets=1, int expandSubnets=1, bool recurse=false)
 
static void buildPreDefRulesMenu (PRM_Name *menu, OP_PreDefRules &pdr)
 
static int getNameSerialIndex ()
 
static void printOpMemoryUsageStats (std::ostream &os)
 
static bool getDoingBulkNotification ()
 
static bool isDirectorDoingBulkNotification ()
 
static bool createNewOpType (OP_Node *node, UT_String &errors, const char *typeName=nullptr, const char *typeLabel=nullptr, const char *otlFile=nullptr, const char *metaSource=nullptr, const char *comment=nullptr, const char *version=nullptr, const char *newName=nullptr, int minimumInputs=-1, int maximumInputs=-1, bool ignore_external_references=false, bool compress_contents=false, bool force=false, int *newNodeId=nullptr, bool compile_contents=false, bool change_node_type=true, bool create_backup=true)
 
static void startBulkNotifications (const OP_NodeList &changed, OP_Node *caller=nullptr)
 
static void endBulkNotifications (const OP_NodeList &changed)
 
static UT_StringHolder defaultInputName (int idx)
 
static UT_StringHolder defaultOutputName (int idx)
 
static const UT_ColorgetGlobalDefaultColor ()
 
static fpreal getFlagWidth ()
 Get the width of flags. More...
 
static fpreal getNodeHeight ()
 Get the default node height. More...
 
static fpreal getNodeButtonWidth ()
 
static fpreal getConnectorHeight ()
 Get the default connector height. More...
 
static bool canDestroyNodes (OP_Network *src_net, const OP_NodeList *nodes)
 
static void addInputNodeErrorToManager (UT_ErrorManager *error, OP_Node *src)
 
static void addExtraInputs (const UT_Array< OP_InterestRef > &target_refs, const UT_Array< OP_InterestRef > &source_refs)
 
static void addExtraInput (OP_Node &source, int source_pi, int source_vi, OP_Node &target, int target_pi, int target_vi)
 Optimized version of addExtraInput that doesn't create OP_InterestRef. More...
 
static bool getMicroNodesFromRef (OP_Node *op, OP_InterestType type, DEP_MicroNodeList &micronodes, bool data_target)
 
static bool getMicroNodesFromRef (OP_Node &op, int parm_i, int vec_i, DEP_MicroNodeList &micronodes)
 
static void addExtraInput (OP_Node &source, PRM_Parm &source_parm, int source_vi, OP_Node &target, PRM_Parm &target_parm, int target_vi)
 Optimized version of addExtraInput that doesn't create OP_InterestRef. More...
 
static void addExtraInputToEvalChannel (int thread, OP_Node &op, OP_InterestType type)
 
static void addExtraInputToEvalChannel (int thread, OP_Node &op, int parm_i, int vec_i)
 
static void addExtraInputToEvalChannel (int thread, const OP_InterestRef &source_ref)
 
static void addExtraInputToEvalChannel (int thread, DEP_MicroNode &src_micronode)
 
static void addExtraInput (const OP_InterestRef &target_ref, const OP_InterestRef &source_ref)
 
static void addExtraInput (const OP_InterestRef &target_ref, DEP_MicroNode &source_micronode)
 
static void addExtraInput (DEP_MicroNode &target_micronode, const OP_InterestRef &source_ref)
 
- Static Public Member Functions inherited from OP_Parameters
static bool followChannelReferencesOneStep (const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx)
 
static bool followChannelReferencesOneStepT (const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx, int thread)
 
static void followChannelReferences (const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx)
 
static bool followChannelReferencesWithDeps (const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx, CH_Channel *chp)
 
static void followChannelReferencesT (const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx, int thread)
 
static bool followChannelReferencesWithDepsT (const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx, int thread, CH_Channel *chp)
 
static void followChannelReferences (const OP_FollowChanRefsOptions &opt, CH_ChannelRef &ref)
 
static void followChannelReferencesT (const OP_FollowChanRefsOptions &opt, CH_ChannelRef &ref, int thread)
 
static void getValueAsProcessedNodePaths (fpreal t, UT_WorkBuffer &resultbuf, const PRM_Parm *parm, int index, const OP_Node *srcnode)
 
static void getValueAsProcessedNodePaths (fpreal t, UT_Array< UT_StringHolder > &resultarr, const PRM_Parm *parm, int index, const OP_Node *srcnode)
 
static void setBatchParms (PRM_BatchList &list, fpreal now, bool set_key=false, bool create_channels=false)
 
static bool canSetBatchParms (PRM_BatchList &list, fpreal now)
 
static void buildMParmInst (const PRM_Template *templates, UT_StringArray &mparm_inst, UT_IntArray &mparm_lvl, int level)
 
static bool isMParmInstance (const char *chname, const UT_StringArray &mparm_inst, const UT_IntArray &mparm_lvl)
 
static void getLayersFromScopedChannels (const CH_ChannelRefList &ori_refs, CH_ChannelRefList &layer_refs)
 
static UT_StringHolder getParmActivationControlName (const UT_StringRef &parm_name)
 
- Static Public Member Functions inherited from OP_NetworkBoxItem
static fpreal getMaxSafeX ()
 The following methods return the safe extents of the position of items. More...
 
static fpreal getMinSafeX ()
 
static fpreal getMaxSafeY ()
 
static fpreal getMinSafeY ()
 
static OP_NetworkBoxItemlookupItem (const OP_ItemType &type, int64 id)
 
static OP_NetworkBoxItemlookupItem (const OP_ItemId &id)
 

Static Public Attributes

static const char * theChildTableName
 
- Static Public Attributes inherited from OP_Network
static const char * theChildTableName
 
- Static Public Attributes inherited from OP_Node
static PRM_ChoiceList theVexSrcParmMenu
 
static PRM_Name theVexSrcParmName
 
static PRM_Name theVexScriptParmName
 
static PRM_Name theVexNodePathParmName
 
static PRM_Name theVexClearParmName
 
static PRM_Name theVexCWDName
 

Protected Member Functions

 VOP_Node (OP_Network *parent, const char *name, OP_Operator *entry)
 
 ~VOP_Node () override
 
void getNodeSpecificInfoText (OP_Context &context, OP_NodeInfoParms &iparms) override
 
void fillInfoTreeNodeSpecific (UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms) override
 
void deleteCookedData () override
 
int saveCookedData (std::ostream &, OP_Context &, int binary=0) override
 
int saveCookedData (const char *, OP_Context &) override
 
const char * getFileExtension (int) const override
 
OP_ERROR cookMe (OP_Context &) override
 
OP_ERROR bypassMe (OP_Context &, int &) override
 
virtual void preOpChanged (OP_EventType, void *)
 
virtual void postOpChanged (OP_EventType, void *)
 
virtual VOP_ContextType getSpecificShaderContextType () const
 
virtual void getContextsForCodeGeneration (UT_StringArray &context_names) const
 
virtual void getOutputNameSubclass (UT_String &out, int idx) const
 
virtual VOP_Type getOutputTypeSubclass (int idx)
 
virtual void getOutputTypeInfoSubclass (VOP_TypeInfo &type_info, int idx)
 
virtual VOP_VariableTagsHandle getOutputVariableTagsSubclass (int idx, VOP_Type shader_type)
 
void dirtyCachedOutputData ()
 Clears the cached info (name and type) about output connectors. More...
 
virtual void getInputNameSubclass (UT_String &in, int idx) const
 
virtual int getInputFromNameSubclass (const UT_String &in) const
 
int findInputFromInputName (const UT_String &in) const
 
virtual void getInputTypeInfoSubclass (VOP_TypeInfo &type_info, int idx)
 
virtual VOP_Type getInputTypeSubclass (int idx)
 
virtual bool getIsInputVisibleDefaultSubclass (int idx)
 
virtual bool getRequiresInputParameters () const
 
bool disableConnectedParameters ()
 Disables parameters whose corresponding inputs are connected. More...
 
bool updateParmsFlags () override
 
bool preUpdateParmsFlags () override
 
bool updateParmsActiveState (bool active)
 
void addError (VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
 
void addMessage (VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
 
void addWarning (VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
 
void addFatal (VOP_ErrorCodes code, const char *msg=0, const UT_SourceLocation *loc=0)
 
virtual void addDiagnosticInfo (const VCC_DiagnosticInfo &diag)
 
void getAdditionalUndoNodes (const OP_NodeList &orig_list, OP_NodeList &nodes_for_input_undo) override
 
OP_ERROR saveIntrinsic (std::ostream &os, const OP_SaveFlags &flags) override
 Save and load VOP version numbers. More...
 
bool loadPacket (UT_IStream &is, short class_id, short sig, const char *path=0) override
 
bool loadPacket (UT_IStream &is, const char *token, const char *path=0) override
 
virtual int getLatestVopVersion () const
 
void getInputsRecursiveHelper (OP_NodeList &nodes_out, UT_Array< int > &array)
 
bool doesDependOnlyOnHelper (const VOP_Node *other_node, int max_connections, bool recurse, UT_Array< int > &array)
 
void onInputAllocated (OP_Input *new_input, int index) override
 Overriden in VOPs. More...
 
void finishedLoadingNetwork (bool is_child_call=false) override
 
OP_ERROR getErrorSeverity () override
 
void ensureErrorsAreUpdatedSubclass () override
 
virtual bool generateErrorsSubclass ()
 
virtual bool shouldCheckTimeDependence () const
 
bool allowedToChangeParms ()
 
void findSafeConnectorNameBase (UT_String &in, bool check_outputs) const
 
virtual void getTentativeInputName (UT_String &in, int idx) const
 
virtual void getTentativeOutputName (UT_String &out, int idx) const
 
void setVisibleConnectorsDirty ()
 
bool getPropertyFromNode (const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, bool add_missing_mparms, PRM_ParmList *obsolet)
 
bool getPropertyFromNode (const UT_StringRef &chname, fpreal now, OP_Node *&op, PRM_Parm *&parm, int &vec_index, PRM_ParmList *obsolete)
 
bool getPropertyFromCodeGen (const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, bool add_missing_mparms, PRM_ParmList *obsolet)
 
bool getPropertyFromCodeGen (const UT_StringRef &chname, fpreal now, OP_Node *&op, PRM_Parm *&parm, int &vec_index, PRM_ParmList *obsolete)
 
bool getPropertyFromInputs (const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, bool add_missing_mparms, PRM_ParmList *obsolet)
 
bool getPropertyFromInputs (const UT_StringRef &chname, fpreal now, OP_Node *&op, PRM_Parm *&parm, int &vec_index, PRM_ParmList *obsolete)
 
virtual void getAllowedInputTypeInfosSubclass (unsigned idx, VOP_VopTypeInfoArray &infos)
 
virtual void getAllowedInputTypesSubclass (unsigned idx, VOP_VopTypeArray &voptypes)
 
virtual void representAsCoShader (UT_ValArray< VOP_Node * > &coshader)
 
virtual void representAsCoShaderOutputName (UT_StringArray &name, int output_index)
 
- Protected Member Functions inherited from OP_Network
 OP_Network (OP_Network *parent, const char *name, OP_Operator *op)
 
 ~OP_Network () override
 
void clearAndDestroy () override
 
void clearAndDestroyNodes ()
 
int propagateModification (OP_Node *by_whom, OP_EventType reason, int parm_index, OP_PropagateData &prop_data) override
 
void buildOpDependencies () override
 
void notifyRenameDependents (const UT_String &full_from, OP_NodeList &cook_nodes) override
 
void notifyRenameReferences (const UT_String &full_from, OP_NodeList &cook_nodes) override
 
void rebuildOpDependents (bool proxy_only) override
 
void cloneFromProxyRefNode (OP_Network *proxy) override
 
OP_NetworkcloneToProxyRefNode () override
 
int hasProxyRefNodes () const override
 
void removeProxyRefNode (OP_Network *proxy)
 
void moveProxyRefNodes (OP_Network *dest) override
 
void moveDependencies (OP_Node *from_node) override
 
virtual void beginLoadingInNetwork ()
 Called upon entering and exiting loadNetwork() method. More...
 
virtual void endLoadingInNetwork ()
 
virtual void finishedLoadingChildOrder ()
 
bool syncContents (UT_IStream &is) override
 
virtual void addNode (OP_Node *node, int notify=1, int explicitly=1)
 
OP_NodefindConnectedNode (OP_Node *op) const
 
OP_NodegetPreferredDisplayNodePtr (OP_Node *skipthisnode) const
 
void resetDisplayNodePtr (OP_Node *skipthisnode=0)
 
OP_NodegetPreferredRenderNodePtr (OP_Node *skipthisnode) const
 
void resetRenderNodePtr (OP_Node *skipthisnode=0)
 
OP_NodegetPreferredAudioNodePtr (OP_Node *skipthisnode) const
 
void resetAudioNodePtr (OP_Node *skipthisnode=0)
 
virtual CHOP_Node ** getAudioNodeRef ()
 
void validateStatusNodePtrs (const OP_NodeList &skipnodes)
 
virtual void updateExtraFlagPtrs ()
 
void nodeUnlocked () override
 
bool canDestroyNode () override
 Return true if it is safe at this time to destroy this node. More...
 
virtual void destroySingleNode (OP_Node *node)
 
void modifyAllChildNodeNames (bool renamepickableobjects, const char *prefix, int &id, std::set< int > *renaming_exclude_ids=NULL)
 
void traverseScope (const char *pattern, OP_ScopeOp scope_op, const OP_ScopeOptions &scope_opts) override
 
virtual bool getAllowSavingChild (OP_Node *node, const OP_SaveFlags &flags)
 Returns true if the child at node can should be saved, false otherwise. More...
 
- Protected Member Functions inherited from OP_Node
 OP_Node (OP_Network *parent, const char *name, OP_Operator *entry)
 
 ~OP_Node () override
 
void doGetFullPath (UT_WorkBuffer &str) const override
 Implement the method from PRM_ParmOwner. More...
 
virtual void buildLocalVarNames (UT_StringArray &out_vars)
 
UT_StringHolder evaluateDisableExpression (const PRM_Parm &prm, const UT_StringRef &function) const override
 
void resolveUnresolvedLoadedInputs ()
 
void finishedLoadingParentNetwork ()
 
void setNewParent (OP_Network *new_parent)
 
void setLegacyConnectingInputIndex (int index)
 
virtual void clearCache ()
 
void clearInterruptedImpl (bool allow_recook)
 
virtual void doOverridePreCook ()
 
virtual void doOverridePostCook ()
 
int getSourceCount () const
 
virtual int bumpSourceCount (int d)
 
virtual OP_ERROR cookInputGroups (OP_Context &context, int alone=0)
 
OP_ERROR saveUserDataPacket (std::ostream &os, const char *path_prefix, const UT_String &node_name)
 
bool loadIntrinsicParentUneditable (UT_IStream &is, const char *path=0)
 
bool loadIntrinsic (UT_IStream &is, const char *path=0)
 
bool loadParentUneditable (UT_IStream &is, const char *ext="", const char *path=0)
 
virtual void loadStart ()
 
virtual void loadFinished ()
 
void loadContentsSection ()
 
void setMatchesOTLDefinition (int matches)
 Sets the flag idicating if the node is synced (matched) to the HDA. More...
 
virtual const char * getDataFileExtension (int binary) const
 
virtual void checkTimeDependencies (int do_parms=1, int do_inputs=1, int do_extras=1)
 
virtual void checkContextOptionDependencies (int do_parms)
 
void sendEvent (OP_EventType type, void *data=0)
 
int haveSeenDataModification (exint modification_id)
 
OP_CachegetCookCache ()
 
virtual void saveFlagsForUndo ()
 
void saveForUndoLayout ()
 
void clearDependency ()
 Clears all cook dependencies (i.e., items that may cause it to cook) More...
 
bool dirtyForTimeChange (fpreal t)
 
void stealDependents (OP_Node *other)
 
bool hasOpDependents ()
 
void clearOpReferences ()
 
virtual int removeOpDependent (int op_id, const PRM_RefId &ref_id, OP_InterestType mask=OP_INTEREST_ALL)
 removeOpDependent() returns the number of dependents removed More...
 
virtual int removeOpDependent (int op_id, OP_InterestType mask=OP_INTEREST_ALL)
 
void buildOpDependencies () override
 
void checkChannelDependencies (CH_Channel *ch, CH_CHANGE_TYPE reason) override
 
void notifyOpDependents (OP_InterestType interest, bool recurse)
 
void notifyRenameDependents (const UT_String &full_from)
 
void notifyRenameReferences (const UT_String &full_from)
 
virtual void handleOpDependency (int referenced_op_id, const OP_Dependency &op_dep, OP_InterestType interest_type, bool &need_cook, const char *old_fullpath, const char *old_cwd, const char *old_chan_name)
 
virtual void buildParmDependency (int parm_index)
 
void addOpNameReference (const PRM_RefId &ref_id, const UT_String &op_path, OP_InterestType type)
 
void addChannelNameReference (const PRM_RefId &ref_id, const UT_StringRef &op_path, const UT_StringRef &chan_name, OP_InterestType type)
 
OP_NodegetNodeOrCreateProxy (const UT_StringRef &op_path)
 
void addOpReference (const PRM_RefId &ref_id, OP_Node *node, const PRM_RefId &source_ref_id, OP_InterestType type)
 
void removeOpReference (const PRM_RefId &ref_id, OP_InterestType mask=OP_INTEREST_ALL)
 
void removeOpReference (const PRM_RefId &ref_id, int op_id, OP_InterestType mask=OP_INTEREST_ALL)
 
bool changeOpPathRef (UT_String &value_str, const char *new_fullpath, const char *old_fullpath, const char *old_cwd, const char *new_cwd)
 
void handleStringParmOpPathDependency (int parm_index, int vi, const char *new_fullpath, const char *old_fullpath, const char *old_cwd)
 
void notifyNodeDeletion ()
 
virtual void nodeDeleted (OP_Node *op, int propagate=1)
 
void startCookTimer (const OP_Context &context)
 
void stopCookTimer (const OP_Context &context)
 
virtual const char * getCookTimerLabel (const OP_Context &context) const
 
void permissionError (const char *chname=0) override
 
void addInputError (unsigned input_idx)
 
void addInputNodeError (OP_Node *src)
 
virtual bool isInputConnectedInsideSubnet (int input_idx) const
 
virtual bool isNamedInputConnectedInsideSubnet (const OP_ConnectorId &input_name) const
 
virtual void setUniqueId (int id)
 
void changeOpDependentUniqueId (int old_id, int new_id)
 
void changeOpReferenceUniqueId (int old_id, int new_id)
 
virtual void clearUniqueId ()
 
void setAllowBuildDependencies (int yesno)
 
int allowBuildDependencies () const
 
void evaluateAllParms (fpreal t)
 
virtual void getMyExternalReferences (UT_StringArray &reflist, UT_StringArray *nodelist=0, bool collapse=false, bool check_missing=false, bool show_missing_only=false)
 
void getExternalFiles (UT_StringArray &files, const char *stringparm, int framestart, int frameend, bool collapse, bool check_missing, bool show_only_missing, UT_KnownPath path)
 
virtual void getDescriptiveParmName (UT_String &str) const
 
virtual void getDescriptiveName (UT_String &str) const
 
void dirtyDescriptiveNameCache ()
 Marks our cached descriptive name as dirty. More...
 
virtual bool cookedDataUsesAllParameters () const
 
virtual bool cookedDataNeedsErrors () const
 
virtual bool cookDataForAnyOutput () const
 
bool getIsRunningInCreateScript () const
 
virtual void refreshRepresentativeNode (OP_Node &changed_child)
 
virtual void setupConnectorsAfterLoad ()
 
void convertOpdefToAbsolutePath (UT_String &str) const override
 
bool isCookedTime (fpreal t) const
 
virtual void dumpMicroNodes (std::ostream &os, bool as_DOT, int indent_level) const
 
void deleteInput (int idx)
 
void deleteInput (const OP_ConnectorId &input_name)
 
virtual void doDeleteInput (int idx)
 Performs actual removal from the member input array. More...
 
void updateErrorSeverity ()
 Update the error severity of this node. More...
 
void checkConnectorsConsistency ()
 Debug method for checking connector consistency. More...
 
void gatherInputs (UT_Array< OP_InputPair > &input_pairs)
 
void gatherOutputs (UT_Array< OP_OutputPair > &output_pairs)
 
void renameInput (OP_Input *input, int new_id)
 
void notifyChannelOpDependents (PRM_Parm *in_parm, int vecid)
 
void beginScriptBlockingDel ()
 
void endScriptBlockingDel ()
 
- Protected Member Functions inherited from OP_Parameters
void doGetFullPath (UT_WorkBuffer &str) const override
 Compute the full path of the node. More...
 
bool updateParmDisableConditional (PRM_Parm &parm, bool force, const UT_StringArray *skip=0)
 
bool updateParmHideConditional (PRM_Parm &parm, const UT_StringArray *skip=0)
 
bool updateParmDisableIfInactive (PRM_Parm &parm, bool disable=true)
 
virtual unsigned disableParms ()
 
void saveMultiParmForUndo (int index)
 
void stealGlobalErrors ()
 
void stealErrors (OP_Parameters &src)
 
UT_LockedRawPtr
< UT_ErrorManager, OP_Lock
getLockedErrorManager ()
 
SYS_FORCE_INLINE bool checkExpressionError (const PRM_Parm *parm, int thread) const
 
void resetParmEventHandler ()
 
intallocIndirect (int size=64)
 
 OP_Parameters (const char *name, OP_Operator *entry)
 
 OP_Parameters (const OP_Parameters &source, const char *name)
 
 ~OP_Parameters () override
 
void initializeParms (OP_Channels *channels)
 
virtual int rename (const char *newname)
 
virtual bool createSpareParameterFromChannel (const char *chname)
 
virtual bool createSpareParametersFromChannels (UT_BitArray &selection, const CH_ChannelList &channels)
 
CH_LocalVariablegetVariable (int i) const
 
CH_LocalVariablegetVariable (const char *name) const
 
OP_ERROR saveChannels (std::ostream &os, int binary, bool compiled, bool selected, bool pending_state)
 
OP_ERROR saveParmChannels (int parm_index, std::ostream &os, int binary, bool compiled)
 
OP_ERROR saveParameters (std::ostream &os, int binary, bool compiled)
 
OP_ERROR saveChannelAliases (std::ostream &os, int binary)
 
bool loadChannels (UT_IStream &is, const char *path, CH_Collection *obsolete_channels)
 
bool loadParameters (UT_IStream &is, const char *path, PRM_ParmList *obsolete_parms)
 
bool loadChannelAliases (UT_IStream &is, const char *path=0)
 
bool loadOldSpareParms (UT_IStream &is)
 
virtual void ensureSpareParmsAreUpdatedSubclass ()
 
- Protected Member Functions inherited from PRM_ParmOwner
 PRM_ParmOwner ()
 
virtual ~PRM_ParmOwner ()
 
- Protected Member Functions inherited from UT_NonCopyableNS::UT_NonCopyable
 UT_NonCopyable ()=default
 
 ~UT_NonCopyable ()=default
 
 UT_NonCopyable (const UT_NonCopyable &)=delete
 
UT_NonCopyableoperator= (const UT_NonCopyable &)=delete
 

Static Protected Member Functions

static void rewireInputs (OP_Network *parent, OP_NodeList &inputs, int srcidx, int dstidx)
 This function is used to rewire nodes when we do a moveInput. More...
 
- Static Protected Member Functions inherited from OP_Node
static void bumpNameSerialIndex ()
 
static void cmd_locate (CMD_Args &)
 
static void saveForUndoDelete (OP_NodeList &nodes)
 
static bool getStringParmOpPath (PRM_Parm &parm, int vi, UT_String &oppath, int thread)
 
- Static Protected Member Functions inherited from OP_Parameters
static bool isReservedOpName (const char *name)
 

Protected Attributes

const VOP_LanguagemyLanguage
 
int myVopVersion
 
- Protected Attributes inherited from OP_Network
OP_NodemyRenderNodePtr
 
OP_NodemyDisplayNodePtr
 
UT_ValArray< OP_Node * > myOutputNodes
 
- Protected Attributes inherited from OP_Node
UT_TokenString myHashCode
 
UT_TokenString myParmHashCode
 
int myLastGroupMask
 
OP_VERSION myHashVersion
 
fpreal myHashTime
 
int myParmLastGroupMask
 
OP_VERSION myParmHashVersion
 
fpreal myParmHashTime
 
UT_String mySyncErrors
 
OP_ERROR mySyncErrorLevel
 
int mySyncDepth
 
uint32 myCompHash
 
- Protected Attributes inherited from OP_Parameters
OP_ChannelsmyChannels
 
OP_Stat myStats
 
- Protected Attributes inherited from PRM_ParmOwner
PRM_ParmListmyParmList
 
- Protected Attributes inherited from OP_NetworkBoxItem
UT_Color myColor
 
using VexBuildFn1 = void(*)(VOP_Node *, UT_String &, fpreal, OP_Node *, UT_Map< int, bool > *)
 
using VexBuildFn2 = void(*)(VOP_Node *, UT_String &, fpreal, DEP_MicroNode *, UT_Map< int, bool > *)
 
void buildVexScript (UT_String &result, fpreal t, OP_Node *parent, UT_Map< int, bool > *visited) override
 
void buildVexScript (UT_String &result, fpreal t, DEP_MicroNode *depnode, UT_Map< int, bool > *v) override
 
static void setBuildVexScriptCB (VexBuildFn1 fn1, VexBuildFn2 fn2)
 

Detailed Description

Member Typedef Documentation

Some variables associated with vop inputs can be overriden or set without an explicit wire to that input. The override comes from an output connector of another node, encoded as <node, output index> pair.

Definition at line 521 of file VOP_Node.h.

To be able to use Cvex VOP in Attribute SOP, etc.

Definition at line 714 of file VOP_Node.h.

To be able to use Cvex VOP in Attribute SOP, etc.

Definition at line 716 of file VOP_Node.h.

Member Enumeration Documentation

Defines the different nodes that can be created and automatically connected to a VOP node's input.

Enumerator
INPUT_TYPE_CONST 
INPUT_TYPE_PARM 
INPUT_TYPE_SUBNET_INPUT 

Definition at line 992 of file VOP_Node.h.

Constructor & Destructor Documentation

VOP_Node::VOP_Node ( OP_Network parent,
const char *  name,
OP_Operator entry 
)
protected
VOP_Node::~VOP_Node ( )
overrideprotected

Member Function Documentation

void VOP_Node::addAutoVopNodePointer ( VOP_AutoNode auto_node,
int  input_index 
)

Do not call this method directly.

virtual void VOP_Node::addDiagnosticInfo ( const VCC_DiagnosticInfo &  diag)
protectedvirtual

Reimplemented in VOP_Snippet.

void VOP_Node::addError ( VOP_ErrorCodes  code,
const char *  msg = 0,
const UT_SourceLocation loc = 0 
)
inlineprotected

Definition at line 1557 of file VOP_Node.h.

void VOP_Node::addFatal ( VOP_ErrorCodes  code,
const char *  msg = 0,
const UT_SourceLocation loc = 0 
)
inlineprotected

Definition at line 1566 of file VOP_Node.h.

void VOP_Node::addLocalVariable ( const UT_StringRef varname,
VOP_ParmGenerator definer 
)
void VOP_Node::addMessage ( VOP_ErrorCodes  code,
const char *  msg = 0,
const UT_SourceLocation loc = 0 
)
inlineprotected

Definition at line 1560 of file VOP_Node.h.

bool VOP_Node::addOrMoveVisualizerToOutput ( int  outputidx)
overridevirtual

Moves a visualizer into our output list.

Reimplemented from OP_Node.

void VOP_Node::addParentSubnetVariable ( const char *  varname,
VOP_ParmGenerator definer 
)
void VOP_Node::addWarning ( VOP_ErrorCodes  code,
const char *  msg = 0,
const UT_SourceLocation loc = 0 
)
inlineprotected

Definition at line 1563 of file VOP_Node.h.

bool VOP_Node::allowedToChangeParms ( )
protected

This returns true if it is okay to modify parms based on input changing and false otherwise. The decision is based on things like whether or not we are being loaded or running in a creation script.

virtual bool VOP_Node::allowUSDShaderParm ( PRM_Parm parm)
virtual

Returns true if the given parameter should currently be included in the USD shader parameters. Note, this is a dynamic test, and some nodes will consider a given parameter to be a USD shader parm under certain conditions but not under the others (eg, depending on signature).

Reimplemented in VOP_ScriptNode.

void VOP_Node::appendOutputOverrideCode ( UT_String str_code)
void VOP_Node::appendVopFunctionArgument ( UT_StringArray arg_names,
UT_StringArray arg_vals,
const VOP_FunctionArgInfo arg_info 
)

Constructs a shader call, assuming this node represents a shader.

bool VOP_Node::areErrorsDirty ( const OP_Context context)

Manipulate cook error dirty state.

virtual bool VOP_Node::areOutputVariablesFixed ( const VOP_CodeGenContext ctx)
virtual

Returns true if the output variables of this node should not be renamed in the code (in an attempt to avoid name collisions); it usually applies to the shader output parameters in a given context. If so, the second function returns the name of this output variable. The version with VOP_CodeGenContext argument should be used.

Reimplemented in VOP_ParmGenerator.

virtual bool VOP_Node::areOutputVariablesFixed ( VOP_ContextType  context_type)
virtual
static void VOP_Node::buildOperatorTable ( OP_OperatorTable table)
static
void VOP_Node::buildVexScript ( UT_String result,
fpreal  t,
OP_Node parent,
UT_Map< int, bool > *  visited 
)
overridevirtual

To be able to use Cvex VOP in Attribute SOP, etc.

Reimplemented from OP_Node.

void VOP_Node::buildVexScript ( UT_String result,
fpreal  t,
DEP_MicroNode depnode,
UT_Map< int, bool > *  v 
)
overridevirtual

To be able to use Cvex VOP in Attribute SOP, etc.

Reimplemented from OP_Node.

OP_ERROR VOP_Node::bypassMe ( OP_Context ,
int  
)
overrideprotectedvirtual

Implements OP_Node.

static void VOP_Node::cacheAllParmNames ( OP_Node root)
static

Calls cacheParmName on all VOP_ParmGenerator nodes under root.

virtual bool VOP_Node::canDefineShader ( ) const
virtual

Returns true if the VOP can represent a shader. Ie, whether it can be converted into a shader.

Reimplemented in VOP_SubnetScript.

void VOP_Node::clearAutoVopNodeInfos ( )
void VOP_Node::clearInterrupted ( )
overridevirtual

Override clearInterrupted so that we don't recook the whole DOP Network when the user interrupts a cook. The clearInterrupted on the containing VOP Network willb be enough.

Reimplemented from OP_Node.

OP_ERROR VOP_Node::cookMe ( OP_Context )
overrideprotectedvirtual

Implements OP_Node.

void VOP_Node::createAutoCodeGenerator ( )

Creates a code generator for the VOP, if it needs one. When a VOP is placed in a non-shaer container node that does not have an overarching code generator, this method may be called to create one for a VOP to act as a stand-alone shader.

void VOP_Node::createAutoShaderChildren ( )

Utility method to create explicit children inside that node. The children correspond to the epilogue in auto-generated shader.

const OP_DataMicroNode& VOP_Node::dataMicroNodeConst ( ) const
inlineoverridevirtual

Reimplemented from OP_Node.

Definition at line 1346 of file VOP_Node.h.

static UT_StringHolder VOP_Node::decodeVarName ( const UT_StringHolder var)
static

Some variable names may contain characters that are illegal in C-style variable names. Eg, Snippet VOP may allow colons to indicate namespaced attributes which get bound to VEX parameters/variables. To ensure the variable name is valid, such characters are encoded using only alphanumeric (and underscore) characters. The decode function reverses such encoding.

virtual bool VOP_Node::definesShaderExtraParameters ( ) const
virtual

If false, getShaderExtraParameters is not invoked as it is assumed to return an empty list

Reimplemented in VOP_ScriptNode, and VOP_Snippet.

static void VOP_Node::deleteAutoNodesIn ( VOP_NodeList nodes)
static

Scans the node list and deletes the auto convert nodes (and replaces them with NULLs in the list). Also, clears any auto-convert information for all other nodes in the list. Note, thet the node list is usually constructed with mergeInputNodeList() method.

void VOP_Node::deleteCookedData ( )
overrideprotectedvirtual

Implements OP_Node.

bool VOP_Node::deleteIndependentInputNodes ( int  input_index)

Deletes the input nodes for a given input (recursively), but only if none of them depend on anything other than this node. Returns true if any nodes were deleted, false otherwise.

void VOP_Node::deleteLocalChannelDefiner ( VOP_ParmGenerator definer)
void VOP_Node::deleteLocalVariable ( const UT_StringRef varname)
void VOP_Node::deleteParentSubnetVariable ( const char *  varname)
void VOP_Node::dirtyCachedOutputData ( )
protected

Clears the cached info (name and type) about output connectors.

virtual void VOP_Node::dirtyShaderList ( )
virtual

Some material vops cache a list of shader that needs to be dirtied.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

bool VOP_Node::disableConnectedParameters ( )
protected

Disables parameters whose corresponding inputs are connected.

bool VOP_Node::doesDependOnlyOn ( const VOP_Node other_node,
int  max_connections,
bool  recurse 
)
bool VOP_Node::doesDependOnlyOnHelper ( const VOP_Node other_node,
int  max_connections,
bool  recurse,
UT_Array< int > &  array 
)
protected
void VOP_Node::ensureErrorsAreUpdatedSubclass ( )
overrideprotectedvirtual

Ensure that the node errors are up-to-date. This method gives our subclass a chance to insert any errors on-demand.

Reimplemented from OP_Parameters.

virtual void VOP_Node::ensureParametersAreValid ( )
virtual

Make sure that our parmname parameter (if we have one) doesn't conflict with any other parmname parameter values.

Reimplemented in VOP_ScriptNode, VOP_OutputVar, and VOP_VariableInput.

static UT_StringHolder VOP_Node::ensureValidVarName ( const UT_StringHolder var)
static

Some variable names may contain characters that are illegal in C-style variable names. Eg, Snippet VOP may allow colons to indicate namespaced attributes which get bound to VEX parameters/variables. To ensure the variable name is valid, such characters are encoded using only alphanumeric (and underscore) characters. The decode function reverses such encoding.

bool VOP_Node::evalVariableValue ( UT_String v,
int  index,
int  thread 
)
overridevirtual

For expanding compiler string used in auto code generator.

Reimplemented from OP_Parameters.

bool VOP_Node::evalVariableValue ( fpreal v,
int  i,
int  thr 
)
inlineoverridevirtual

For expanding compiler string used in auto code generator.

Reimplemented from OP_Parameters.

Definition at line 689 of file VOP_Node.h.

void VOP_Node::fillInfoTreeNodeSpecific ( UT_InfoTree tree,
const OP_NodeInfoTreeParms parms 
)
overrideprotectedvirtual

Triggered by 'fillInfoTree()', this virtual function adds all node- specific info to 'tree'. All child classes must create their own branches under 'tree' to place their info

Reimplemented from OP_Node.

Reimplemented in VOP_ParmGenerator.

virtual void VOP_Node::findAllShaders ( VOP_NodeList shader_nodes,
VOP_ShaderTypeList shader_types,
UT_StringArray output_names 
)
virtual

Returns all applicable shader nodes and their corresponding shader types, and if applicable output names. Output names become important when a VOP node is a subnetwork containing a few surface shaders, one for different renderer. Note, some returned output names may correspond to a AOV data (eg, the output type may be float or a vector rather than a shader type), in which case the shader type will be reflect that.

Reimplemented in VOP_SubnetBase, VOP_SubnetScript, and VOP_Collect.

int VOP_Node::findInputFromInputName ( const UT_String in) const
protected
int VOP_Node::findParametersOrProperties ( fpreal  now,
OP_PropertyLookupList list 
)
overridevirtual

Virtual overrides for evaluating parameters as render properties, in case the VOP node is a shader or a material.

Reimplemented from OP_Parameters.

void VOP_Node::findSafeConnectorNameBase ( UT_String in,
bool  check_outputs 
) const
protected

Ensures the given connector name does not have any conflicts with other connectors and is safe to use. If check_outputs' is true, the output names are checked for conflicts too, otherwise only inputs are tested.

virtual VOP_Node* VOP_Node::findShader ( VOP_Type  shader_type,
fpreal  now 
)
virtual

@ Returns a node that implements or represents the given shader type. The returned node may be a stand-alone (self-contained) shader node, or a building-block node from which a shader of a given type can be generated.

Reimplemented in VOP_Collect.

VOP_Node* VOP_Node::findSimpleInput ( int  index)

Returns the node wired to this VOP's 'index' input tracing past simple VOPs like the Switch or Null VOP.

virtual void VOP_Node::findSimpleInputCandidatesFromOutput ( int  output_index,
UT_IntArray input_indices 
)
inlinevirtual

A method that reports which immediate input connectors are considered by findSimpleInputFromOutput() method. This is useful when analyzing the simple input decision tree.

Reimplemented in VOP_Snippet, VOP_Null, and VOP_OutputVar.

Definition at line 1269 of file VOP_Node.h.

virtual VOP_Node* VOP_Node::findSimpleInputFromOutput ( int  output_index)
inlinevirtual

Virtual helper to findSimpleInput() which returns the simple input node (ie the final node we look for) based on the request coming from the node connected to on the output of a given index.

Reimplemented in VOP_Snippet, VOP_Null, and VOP_OutputVar.

Definition at line 1264 of file VOP_Node.h.

void VOP_Node::finishedLoadingNetwork ( bool  is_child_call = false)
overrideprotectedvirtual

Reimplemented from OP_Network.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

bool VOP_Node::forceCodeGenerationInContext ( const VOP_CodeGenContext context) const

Returns true if the node can and should initiate generation of code in the given context. If, if the node is a terminal node.

virtual bool VOP_Node::forceCodeGenerationOfInputs ( const VOP_CodeGenContext context,
bool  check_shader_context 
) const
virtual

Determines if this is a terminal node. Ie, whether this node is a code sink that culminates (one of) the shader calculations. The culmination may be in the form of setting the global variable, setting an export parameter, or a general reqest by a user to ensure the node is part of the shader (eg, print vop). The code code generator determines all the nodes that participate in the shader definition by by recursively traversing the inputs starting from this node.

Parameters
check_shader_contextIs true when the node should consider the shader context name/type contained in the code gen context parameter; the node should return true only if it really is a terminal node for the given shader type. Otherwise, if false, the node can disregard the shader type most likely because it lives in a single-context vopnet.

Reimplemented in VOP_Snippet, VOP_SubnetBase, VOP_ScriptNode, VOP_OutputVar, VOP_SubnetConnector, VOP_Null, VOP_SubnetScript, VOP_ParmGenerator, VOP_SubnetOutput, and VOP_Visualize.

virtual bool VOP_Node::generateErrorsSubclass ( )
protectedvirtual

Generate the node errors. Return true if an error was generated and false otherwise. This method can be overridden to generate errors specific to the subclass.

Reimplemented in VOP_SubnetScript, VOP_SubnetBase, VOP_Block, and VOP_ParameterBase.

void VOP_Node::getAdditionalUndoNodes ( const OP_NodeList orig_list,
OP_NodeList nodes_for_input_undo 
)
overrideprotectedvirtual

Reimplemented from OP_Network.

void VOP_Node::getAllAllowedInputTypeInfos ( unsigned  idx,
VOP_VopTypeInfoArray typeinfos 
)

Returns all allowed types for a given input, regardless of what is currently wired to that input and regardless of what subset of all these types is currently legal due to pruning of invalid signatures (input types) on a script node (etc). This is similar to getAllowedInputTypeInfos(), but unlike it, this method returns types belonging to invalid signatures.

void VOP_Node::getAllInputsGrouped ( UT_StringArray groups,
UT_StringMap< UT_IntArray > &  mapping 
)

Fetches grouping information for all inputs whether they are visible or not. All inputs not in a group will be returned in the map with an empty string as the key.

virtual void VOP_Node::getAllowedInputTypeInfos ( unsigned  idx,
VOP_VopTypeInfoArray typeinfos 
)
virtual

Returns currently allowed input types for a given input, regardless of what is connected to that input at the moment. These do not include types to which autoconversion is possible.

Reimplemented in VOP_ScriptNode.

virtual void VOP_Node::getAllowedInputTypeInfosSubclass ( unsigned  idx,
VOP_VopTypeInfoArray infos 
)
protectedvirtual

One of these two methods should be overriden in most VOP nodes. It is preferable to override the one that gets type infos, since they can encode complex types. They should fill in voptypes vector with vop types that are allowed to be connected to this node at the input at index idx. Note that this method should return valid vop types even when nothing is connected to the corresponding input.

Reimplemented in HDK_Sample::VOP_CustomVop, VOP_ScriptNode, VOP_SubnetOutput, and HDK_Sample::VOP_Switch.

virtual void VOP_Node::getAllowedInputTypes ( unsigned  idx,
VOP_VopTypeArray voptypes 
)
virtual
virtual void VOP_Node::getAllowedInputTypesSubclass ( unsigned  idx,
VOP_VopTypeArray voptypes 
)
protectedvirtual

One of these two methods should be overriden in most VOP nodes. It is preferable to override the one that gets type infos, since they can encode complex types. They should fill in voptypes vector with vop types that are allowed to be connected to this node at the input at index idx. Note that this method should return valid vop types even when nothing is connected to the corresponding input.

Reimplemented in VOP_Parameter, VOP_SubnetBase, VOP_Bind, VOP_VariableInput, VOP_OutputVar, VOP_SubnetConnector, and VOP_Collect.

bool VOP_Node::getAllowEditingParmDefaults ( int  input_index)
virtual void VOP_Node::getAllowedNamedInputTypeInfos ( const OP_ConnectorId input_name,
VOP_VopTypeInfoArray typeinfos 
)
virtual

Returns all allowed input types on a given input, regardless of what is currently connected to that input. These do not include types to which autoconversion is possible.

virtual void VOP_Node::getAllowedNamedInputTypes ( const OP_ConnectorId input_name,
VOP_VopTypeArray voptypes 
)
virtual
VOP_Type VOP_Node::getAutoConvertTargetType ( int  input_idx)
VOP_TypeInfo VOP_Node::getAutoConvertTargetTypeInfo ( int  input_idx)

Returns the type to which the input will be auto-convert. This is necessary because some inputs can take in a range of various types, and we need to know which one will be converting to. This function assumes that autoconversion is necessary. If it is not possible, or not needed, it returns VOP_TYPE_UNDEF.

VOP_Type VOP_Node::getAutoConvertTypeFromType ( int  input_idx,
VOP_Type  source_type 
)
VOP_TypeInfo VOP_Node::getAutoConvertTypeInfoFromType ( int  input_idx,
const VOP_TypeInfo source_type 
)
VOP_AutoNode* VOP_Node::getAutoVopNode ( int  input_idx)
const VOP_AutoNode* VOP_Node::getAutoVopNode ( int  input_idx) const
int VOP_Node::getAutoVopNodeCount ( )
virtual bool VOP_Node::getCachedShaderCode ( std::ostream &  os,
VOP_ContextType  context_type 
) const
virtual

Writes out the shader code from the cache to the given output stream. Returns true if successful, otherwise, returns false, if there's no cached shader code for this context.

Reimplemented in VOP_ScriptNode.

int VOP_Node::getChildConnectorIndexFromParent ( int  parent_input) const

VOP subnets may restrict which inputs should show up in the Subnet Input and Subnet Output VOPs. These two methods control that. Gets number of subnet inputs available to subnet input/output children. Gets the subnet input index corresponding to the given index of (limited number of) input available to subnet input/output children.

const char* VOP_Node::getChildType ( ) const
overridevirtual

Reimplemented from OP_Network.

OP_OpTypeId VOP_Node::getChildTypeID ( ) const
overridevirtual

Implements OP_Network.

virtual void VOP_Node::getCode ( UT_String codestr,
const VOP_CodeGenContext context 
)
virtual
virtual void VOP_Node::getContextsForCodeGeneration ( UT_StringArray context_names) const
protectedvirtual

Obtains a list of shading contexts in which this node wants to initiate the generation of code.

Reimplemented in VOP_ParmGenerator, and VOP_OutputVar.

OP_DataType VOP_Node::getCookedDataType ( ) const
overridevirtual

Nobody should have to override this, but it's public for other people.

Implements OP_Node.

void VOP_Node::getCoShaderNodes ( UT_ValArray< VOP_Node * > &  coshaders,
const char *  parm_name 
)

Obtains a coshader node (or array of nodes) associated with the parm. Usually, the co-shader computes the value for the parameter, and is represented as a wired input to the main shader node. If no coshaders are wired in, the output list is empty.

void VOP_Node::getCoShaderNodesOutputNames ( UT_StringArray outputs,
const char *  parm_name 
)

Obtains a coshader node (or array of nodes) associated with the parm. Usually, the co-shader computes the value for the parameter, and is represented as a wired input to the main shader node. If no coshaders are wired in, the output list is empty.

virtual bool VOP_Node::getCurrentSignatureName ( UT_String name)
virtual

Obtains the current signature name.

Reimplemented in VOP_ScriptNode.

bool VOP_Node::getDebug ( ) const
overridevirtual

Gets/sets the value of the debug flag on this node.

Reimplemented from OP_Node.

OP_ERROR VOP_Node::getErrorSeverity ( )
overrideprotectedvirtual

Reimplemented from OP_Network.

void VOP_Node::getExtraNodesForCopyOrDelete ( OP_NodeList extras) const
overridevirtual

Obtains additional nodes that should be copied or deleted when this node is copied or deleted.

Reimplemented from OP_Node.

virtual void VOP_Node::getExtraTypesToDefine ( UT_Array< VOP_TypeInfo > &  types)
virtual

If node explicitly declares variables by itself (eg, subnet), it should report such types with this method, in case it uses some custom data type that needs to be defined in the shader code (eg, struct). Most nodes don't need to override this, since code generator knows what types it used for this node's (output connector) variables.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

const char* VOP_Node::getFileExtension ( int  ) const
overrideprotectedvirtual

Implements OP_Node.

virtual void VOP_Node::getFixedOutputVariable ( UT_String var,
int  idx 
)
virtual

Reimplemented in VOP_ParmGenerator.

virtual void VOP_Node::getFixedParameterMap ( UT_StringArray parmmap)
virtual

Returns a parmmap string array where alternate entries contain key and value, where key is the vop parameter name and the value is the parameter name specified by the Parm VOP connected to the input corresponding to that vop parameter.

const VOP_GlobalVarMap* VOP_Node::getGlobalVariables ( ) const

Get or set the table of global or local variables for this context. The global variables are defined solely by the VEX context. The data associated with each entry is the VEX_Type of the variable. The local variables are those defined by Parameter ops. This table provides a common place to look for variable name conflicts.

fpreal VOP_Node::getH ( ) const
overridevirtual

Absolute height.

Reimplemented from OP_Node.

bool VOP_Node::getInOutLOD ( int  level) const
virtual void VOP_Node::getInputDefaultValue ( UT_String def,
int  idx 
) const
virtual

Gets a default value of an explicitly defined input (applies to subnets)

Reimplemented in VOP_SubnetBase.

int VOP_Node::getInputFromName ( const UT_String in) const
overridevirtual

Note that this function only looks through currently connected inputs for the name, not through all possible input names on this node. mapInputNameToIndex does that instead.

Reimplemented from OP_Node.

bool VOP_Node::getInputGroupExpanded ( const UT_StringHolder group)
void VOP_Node::getInputName ( UT_String in,
int  idx 
) const
overridevirtual

Returns the variable name associated with a given input number. These just call the getInputXXXSubclass functions.

Reimplemented from OP_Node.

Examples:
VOP/VOP_Switch.C.
void VOP_Node::getInputName ( UT_StringHolder in,
int  idx 
) const
inline

Definition at line 464 of file VOP_Node.h.

void VOP_Node::getInputNameFromInputNode ( UT_String in,
int  idx,
bool  check_output_names 
) const

Obtains the idx-th input name based on a connected input node. If not connected, the name is "next". It's ensured that the name is unique even if many input nodes provide the same name. If check_output_names is true, the input name is ensured to be unique and different from the all the output names too.

virtual void VOP_Node::getInputNameSubclass ( UT_String in,
int  idx 
) const
protectedvirtual

Returns the variable name associated with a given input number. Implementers of this function should also implement the reverse function.

Reimplemented in VOP_ParmGenerator, VOP_SubnetScript, HDK_Sample::VOP_CustomVop, VOP_SubnetBase, VOP_Snippet, VOP_ScriptNode, VOP_Block, VOP_SubnetOutput, VOP_OutputVar, VOP_VariableInput, VOP_AutoConvert, VOP_Null, HDK_Sample::VOP_Switch, VOP_Properties, VOP_Collect, VOP_GenericShader, and VOP_SubnetConnector.

void VOP_Node::getInputsRecursive ( OP_NodeList nodes_out)
void VOP_Node::getInputsRecursiveHelper ( OP_NodeList nodes_out,
UT_Array< int > &  array 
)
protected
VOP_Type VOP_Node::getInputType ( int  idx) const

will_autoconvert_out, if not null, is set to true if autoconversion will be needed, to false otherwise.

void VOP_Node::getInputTypeInfo ( VOP_TypeInfo type_info,
int  idx 
) const
Examples:
VOP/VOP_Switch.C.
bool VOP_Node::getInputTypeInfoFromInputNode ( VOP_TypeInfo type_info,
int  idx,
bool  grow_inputs_to_idx = false 
) const

Obtains the idx-th input type info from the connected input node. If not connected, type info is set to undefined.

Parameters
type_infoThe type info to fill out. idx The index of the input from where to take the type.
grow_inputs_to_idxIf true and the the requested idx is larger than the input list size, then the list is expanded to make the requested index legal. Otherwise, list is kept constant and input is treated as NULL, resulting in an info for an undefined type.
Returns
True if the info was obtained from the vop, otherwise false (info is set to undef, by default).
Examples:
VOP/VOP_Switch.C.
virtual VOP_Type VOP_Node::getInputTypeSubclass ( int  idx)
protectedvirtual
InputVariableOverride VOP_Node::getInputVariableOverride ( int  input_index) const
int VOP_Node::getInputVisibleIndex ( int  idx)

Queries information about visible connectors. This takes into account grouping of inputs, the current LOD flag, etc.

virtual VOP_ParmGenerator* VOP_Node::getInsertParmGeneratorSource ( int  inputidx)
virtual

When inserting a parameter (i.e. Promote Parameter), the source VOP is allowed to give us a source VOP_ParmGenerator if there's no corresponding parameter found. The source parm generator is used to initialize settings on the new parameter node.

bool VOP_Node::getIsInputVisibleDefault ( int  idx)
overridevirtual

Reimplemented from OP_Node.

virtual bool VOP_Node::getIsInputVisibleDefaultSubclass ( int  idx)
protectedvirtual

Reimplemented in VOP_ScriptNode.

virtual bool VOP_Node::getIsParmGenerator ( ) const
virtual

Returns true if this VOP is a VOP_ParmGenerator or subclass.

Reimplemented in VOP_ParmGenerator, and VOP_Visualize.

const VOP_Language* VOP_Node::getLanguage ( ) const
inline

Returns the shader language used by this node.

Definition at line 1079 of file VOP_Node.h.

virtual int VOP_Node::getLatestVopVersion ( ) const
inlineprotectedvirtual

If a subclass has VOP versioning, it should return a value greater than 0 for the latest version.

Definition at line 1597 of file VOP_Node.h.

const VOP_LocalChannelMap* VOP_Node::getLocalChannels ( ) const
const VOP_ParmGeneratorMap* VOP_Node::getLocalVariables ( ) const
static int& VOP_Node::getLODPref ( )
inlinestatic

Definition at line 907 of file VOP_Node.h.

bool VOP_Node::getMaterialFlag ( ) const

Gets/sets the value of the material flag on this node.

virtual void VOP_Node::getModulesToImport ( UT_StringArray modules,
const VOP_CodeGenContext context 
)
virtual

If the node generates a shader call, get the modules names to import.

Reimplemented in VOP_ScriptNode, and VOP_SubnetScript.

VOP_Type VOP_Node::getNamedAutoConvertTargetType ( const OP_ConnectorId input_name)
VOP_TypeInfo VOP_Node::getNamedAutoConvertTargetTypeInfo ( const OP_ConnectorId input_name)
VOP_Type VOP_Node::getNamedAutoConvertTypeFromType ( const OP_ConnectorId input_name,
VOP_Type  source_type 
)
VOP_TypeInfo VOP_Node::getNamedAutoConvertTypeInfoFromType ( const OP_ConnectorId input_name,
const VOP_TypeInfo source_type 
)
VOP_Type VOP_Node::getNamedInputType ( const OP_ConnectorId input_name)
void VOP_Node::getNamedInputTypeInfo ( VOP_TypeInfo type_info,
const OP_ConnectorId input_name 
)
VOP_Type VOP_Node::getNamedOutputType ( const OP_ConnectorId output_name)
void VOP_Node::getNamedOutputTypeInfo ( VOP_TypeInfo type_info,
const OP_ConnectorId output_name 
)
VOP_VariableTagsHandle VOP_Node::getNamedOutputVariableTags ( const OP_ConnectorId output_name,
VOP_Type  shader_type 
) const
void VOP_Node::getNodeSpecificInfoText ( OP_Context context,
OP_NodeInfoParms iparms 
)
overrideprotectedvirtual

Reimplemented from OP_Node.

Reimplemented in VOP_ParmGenerator, and VOP_SubnetBase.

virtual int VOP_Node::getNumNodeDefinedOutputs ( ) const
virtual

Gets number of outputs provided by a subnet, in addition to the outputs defined by wires connected to sub output.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

virtual int VOP_Node::getNumSubnetInputsForChildren ( ) const
virtual

VOP subnets may restrict which inputs should show up in the Subnet Input and Subnet Output VOPs. These two methods control that. Gets number of subnet inputs available to subnet input/output children. Gets the subnet input index corresponding to the given index of (limited number of) input available to subnet input/output children.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

const char* VOP_Node::getOpType ( ) const
overridevirtual

Reimplemented from OP_Node.

OP_OpTypeId VOP_Node::getOpTypeID ( ) const
overridevirtual

This returns the OP_OpTypeId which corresponds to this node type. Management nodes will return the type they really are, which is likely different than the network they currently reside in.

Reimplemented from OP_Node.

OSL_ContextType VOP_Node::getOslContextType ( ) const
virtual void VOP_Node::getOuterCode ( UT_String codestr,
const VOP_CodeGenContext context 
)
virtual

Get the code fragment to be included in the outer code, before the main shader code.

Reimplemented in VOP_AutoConvert, VOP_Snippet, VOP_ScriptNode, and VOP_SubnetScript.

int VOP_Node::getOutputFromName ( const UT_String out) const
overridevirtual

Reimplemented from OP_Node.

VOP_OutputInfoManager* VOP_Node::getOutputInfoManager ( )
void VOP_Node::getOutputName ( UT_String out,
int  idx 
) const
overridevirtual

Functions to get information about our operator outputs. These just call the getOutputXXXSubclass functions.

Reimplemented from OP_Node.

Examples:
VOP/VOP_Switch.C.
void VOP_Node::getOutputName ( UT_StringHolder out,
int  idx 
) const
inline

Definition at line 430 of file VOP_Node.h.

virtual VOP_OutputNameEditorSource* VOP_Node::getOutputNameEditorSource ( )
inlinevirtual

Returns a pointer used by OPUI_OutputNameEditor to get and set data.

Reimplemented in VOP_Collect, and VOP_SubnetOutput.

Definition at line 945 of file VOP_Node.h.

virtual void VOP_Node::getOutputNameSubclass ( UT_String out,
int  idx 
) const
protectedvirtual

Functions to get information about our operator outputs. These functions are used for variable name replacement and for creating output labels on the op tiles.

Reimplemented in VOP_ParmGenerator, VOP_SubnetBase, VOP_SubnetScript, HDK_Sample::VOP_CustomVop, VOP_Snippet, VOP_ScriptNode, VOP_Block, VOP_OutputVar, VOP_AutoConvert, VOP_VariableInput, VOP_Null, HDK_Sample::VOP_Switch, VOP_Properties, VOP_GenericShader, and VOP_Constant.

VOP_Type VOP_Node::getOutputType ( int  idx)
void VOP_Node::getOutputTypeInfo ( VOP_TypeInfo type_info,
int  idx 
) const
Examples:
VOP/VOP_Switch.C.
virtual VOP_Type VOP_Node::getOutputTypeSubclass ( int  idx)
protectedvirtual
virtual void VOP_Node::getOutputVariableName ( UT_String var,
int  idx 
) const
virtual

Returns the variable name (in the generated code) that corresponds to the node's idx-th output. Usually it's just the output name.

Reimplemented in VOP_ParmGenerator.

VOP_VariableTagsHandle VOP_Node::getOutputVariableTags ( int  idx,
VOP_Type  shader_type 
) const

Obtains annotations (tags) for the variable value pushed out on the given output connector. The tags are arbitrary, but are primarily used to denote the contents of arrays (ie, export name for the value).

virtual VOP_VariableTagsHandle VOP_Node::getOutputVariableTagsSubclass ( int  idx,
VOP_Type  shader_type 
)
protectedvirtual
int VOP_Node::getOutputVisibleIndex ( int  idx)
virtual void VOP_Node::getParameterBlock ( UT_String parmstr,
const char *  shader_contexts 
)
virtual

Get the parm block information that will go in the dialog script for our VOPNET. The shader_contexts argument is a list of contexts, in which the parameter is a shader argument.

Reimplemented in VOP_Parameter.

virtual void VOP_Node::getParameterComment ( UT_String parm_comment,
const VOP_Language language,
const VOP_CodeGenContext context 
)
virtual

Obtains the parameter declaration code comment, which is appended after the declaration in the generated source code.

Reimplemented in VOP_Parameter.

virtual void VOP_Node::getParameterDeclaration ( UT_String parmdecl,
const VOP_Language language,
const VOP_CodeGenContext context 
)
virtual

The parameter variable declaration using the syntax of a given language.

Reimplemented in VOP_Visualize, VOP_Bind, and VOP_Parameter.

bool VOP_Node::getParameterOrProperty ( const UT_StringRef name,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
bool  create_missing_multiparms,
PRM_ParmList obsolete = 0 
)
overridevirtual

Virtual overrides for evaluating parameters as render properties, in case the VOP node is a shader or a material.

Reimplemented from OP_Parameters.

bool VOP_Node::getParameterOrPropertyByChannel ( const UT_StringRef chname,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
int vector_index,
PRM_ParmList obsolete = 0 
)
overridevirtual

Virtual overrides for evaluating parameters as render properties, in case the VOP node is a shader or a material.

Reimplemented from OP_Parameters.

VOP_ParmGeneratorMap* VOP_Node::getParentSubnetVariables ( ) const
virtual bool VOP_Node::getParmConstantString ( const char *  parmname,
const VOP_TypeInfo type_info,
UT_String str,
bool  expand_string,
const VOP_Language l = 0 
)
virtual

Get the constant code that encodes the value of the node parameter.

Reimplemented in VOP_Visualize, VOP_Parameter, VOP_SubnetScript, VOP_Bind, VOP_ScriptNode, and VOP_SubnetConnector.

const PRM_Parm* VOP_Node::getParmFromInput ( int  inputidx) const

Find the parameter associated with an input, if any.

const PRM_Parm* VOP_Node::getParmFromOutput ( int  outputidx) const
void VOP_Node::getParmInputs ( VOP_ParmGeneratorList parm_vops)

Search through this node's inputs and return a list of parameter VOPs that appear in the input network. Recursively search through subnetworks as well. If this node is a parameter VOP, then add it to the list.

virtual void VOP_Node::getParmNameFromInput ( UT_String parmname,
int  inputidx 
) const
virtual

The following method is needed to obtain the parameter name to be associated with an input. It is possible that the parameter name differs from the input name.

Reimplemented in VOP_ScriptNode.

virtual void VOP_Node::getParmNameFromOutput ( UT_String parmname,
int  outputidx 
) const
virtual
bool VOP_Node::getParmPrintableString ( const char *  parmname,
VOP_Type  type,
UT_String str,
bool  expand_string 
) const

Returns a UI friendly version of the string, with NiceNumber type effects embedded.

virtual void VOP_Node::getPragmas ( UT_String pragmastr,
const VOP_CodeGenContext context 
)
virtual

Get compiler pragmas for thi snode.

Reimplemented in VOP_Parameter.

virtual VOP_Node* VOP_Node::getPreResolveVariableSrc ( ) const
inlinevirtual

Returns the node from which to transfer information about local variables used in source code generated by this node.

Definition at line 968 of file VOP_Node.h.

virtual VOP_Node* VOP_Node::getProcedural ( VOP_Type  type)
virtual

Material VOP may be able to return a procedural node.

Reimplemented in VOP_Collect.

bool VOP_Node::getPropertyFromCodeGen ( const UT_StringRef name,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
bool  add_missing_mparms,
PRM_ParmList obsolet 
)
protected
bool VOP_Node::getPropertyFromCodeGen ( const UT_StringRef chname,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
int vec_index,
PRM_ParmList obsolete 
)
protected
bool VOP_Node::getPropertyFromInputs ( const UT_StringRef name,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
bool  add_missing_mparms,
PRM_ParmList obsolet 
)
protected
bool VOP_Node::getPropertyFromInputs ( const UT_StringRef chname,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
int vec_index,
PRM_ParmList obsolete 
)
protected
bool VOP_Node::getPropertyFromNode ( const UT_StringRef name,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
bool  add_missing_mparms,
PRM_ParmList obsolet 
)
protected
bool VOP_Node::getPropertyFromNode ( const UT_StringRef chname,
fpreal  now,
OP_Node *&  op,
PRM_Parm *&  parm,
int vec_index,
PRM_ParmList obsolete 
)
protected
virtual VOP_Node* VOP_Node::getRealDefinition ( )
inlinevirtual

This virtual is overridden by VOP_ParmGenerator so we can find out which VOP defines the actual parameter attributes.

Reimplemented in VOP_ParmGenerator.

Definition at line 1074 of file VOP_Node.h.

const char* VOP_Node::getRenderMask ( ) const

Returns the name, type, and render mask of the VOP shader.

virtual bool VOP_Node::getRequiresInputParameters ( ) const
protectedvirtual

If the can only accept parameters as inputs, this method should return true. By default, this method checks the operator to see whether the VOP relies on external code (i.e. geometry procedurals)

Reimplemented in VOP_Properties.

RSL_ContextType VOP_Node::getRslContextType ( ) const
void VOP_Node::getShaderArgInfos ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
VOP_Type  shader_type 
)

Obtains shader parameters information.

VOP_ContextType VOP_Node::getShaderContextType ( ) const

Gets the context type (VEX_ContextType or RSL_ContextType) to which this node subscribes. In single-type vopnets, it is equal to the node's VEX/RSL context type. In multi-type vopnets, the exact type is variable and usually depends on the node's parameter value.

virtual int VOP_Node::getShaderExtraParameters ( UT_Array< VOP_Type > &  types,
UT_IntArray doexport,
UT_StringArray names,
UT_StringArray def,
VOP_Type  shader_type = VOP_TYPE_UNDEF 
) const
virtual

Returns a list of the attributes that we want to bind or export. These are added to the vex functions parameter list, but not to the UI as they are only expected to be overridden. If they match an existing value, they do not replace. The shader type is used only in a very specific cases of material builder, when extra parameters may depend on a shader type.

Reimplemented in VOP_ScriptNode, and VOP_Snippet.

virtual void VOP_Node::getShaderInputMap ( UT_StringArray inputmap)
virtual

Returns an input map string array where alternate entries contain key and value, where key is the vop parameter name and the value is the node path specified for that parameter (usually connected into an input corresponding to that vop parameter).

virtual UT_IntArray VOP_Node::getShaderLayerExportsInputsToCopy ( int  out_idx,
VOP_Type  shader_type 
)
virtual

Virtuals for obtaining inputs from which to copy shader layer exports variable tags and which exports to add, for a given output.

Reimplemented in VOP_SubnetBase, VOP_SubnetScript, and VOP_Null.

virtual UT_StringHolder VOP_Node::getShaderLayerExportsToAdd ( int  out_idx,
VOP_Type  shader_type 
)
virtual

Virtuals for obtaining inputs from which to copy shader layer exports variable tags and which exports to add, for a given output.

Reimplemented in VOP_SubnetBase, VOP_SubnetScript, and VOP_Null.

virtual UT_StringHolder VOP_Node::getShaderName ( VOP_ShaderNameStyle  style,
VOP_Type  shader_type 
) const
virtual

Returns the name, type, and render mask of the VOP shader.

Reimplemented in VOP_GenericShader.

UT_StringHolder VOP_Node::getShaderName ( bool  forvex,
VOP_Type  shader_type 
) const

Returns the name, type, and render mask of the VOP shader.

virtual UT_StringHolder VOP_Node::getShaderNameForSignature ( const UT_StringRef signature) const
virtual

Returns the name, type, and render mask of the VOP shader.

Reimplemented in VOP_ScriptNode.

const PRM_Template* VOP_Node::getShaderParmTemplates ( )
overridevirtual

Obtains the template array for shader parameters.

Reimplemented from OP_Node.

virtual VOP_Type VOP_Node::getShaderType ( ) const
virtual

Returns the name, type, and render mask of the VOP shader.

Reimplemented in VOP_Collect.

static bool VOP_Node::getShowPreviewPref ( )
static
virtual int VOP_Node::getSignatureCount ( ) const
virtual

Get the nuber of signatures that the node has, and obtain the i-th signature name. The VOP signatures apply mostly to the VOP HDAs, where a user can define several signatures for the operator (a signature is a set of input types, and the user provides a name associated with each such set). The build-in operators ususally have only a single signature, and thus don't bother to provide any distinguishing name for it (but they may).

Reimplemented in VOP_ScriptNode.

virtual void VOP_Node::getSignatureName ( UT_String name,
int  index 
) const
virtual

Reimplemented in VOP_ScriptNode.

void VOP_Node::getSortedGlobalVariableList ( VOP_GlobalVarList vars,
VOP_ContextType  type,
bool  mustBeReadable,
bool  mustBeWritable 
)
virtual VOP_ContextType VOP_Node::getSpecificShaderContextType ( ) const
protectedvirtual

Gets the shader context type (VEX_ContextType or RSL_ContextType) to which a node belongs to.

This method is meant to be overriden by nodes that can specify a single concrete context type when they are created in a multi-context vopnet. This method is invoked by getShaderContextType() to obtain the concrete type, if possible

In multi-context vopnets, for nodes that explicitly specify a single context (such as an output node, usually determined from the node's parameter), this method returns such explicltly selected context type. For other nodes that don't explicltly choose a context, this method returns an invalid type, meaning such nodes don't have control over a specific type, and they belong to a type specified during code generation.

Reimplemented in VOP_OutputVar.

virtual int VOP_Node::getSubnetInputIndexForChildren ( int  child_input) const
virtual

VOP subnets may restrict which inputs should show up in the Subnet Input and Subnet Output VOPs. These two methods control that. Gets number of subnet inputs available to subnet input/output children. Gets the subnet input index corresponding to the given index of (limited number of) input available to subnet input/output children.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

virtual VOP_Node* VOP_Node::getSubnetOutputNode ( ) const
virtual

Used by subnet type operators which must always have an output node. However, some specialty subnets, such as volume sampler, may return NULL, since its output node is not a regular subnet output node that determines subnet output connectors (which is for what the subnet base class uses the output node returned by this method).

virtual void VOP_Node::getSubnetOutputTerminalChild ( VOP_Node *&  output_vop,
int input_idx,
int  subnet_output_idx 
) const
virtual

VOP subnets may restrict which inputs should show up in the Subnet Input and Subnet Output VOPs. These two methods control that. Gets number of subnet inputs available to subnet input/output children. Gets the subnet input index corresponding to the given index of (limited number of) input available to subnet input/output children.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

virtual VOP_ParmGeneratorMap* VOP_Node::getSubnetVariables ( )
virtual

Similar to getLocalVariables() but it returns a table of Parameter ops that define subnet inputs rather than shader parameters.

Reimplemented in VOP_SubnetBase, and VOP_SubnetScript.

void VOP_Node::getSubOutputAndSubInputs ( OP_Node *&  outputnode,
OP_NodeList inputnodes 
) const
virtual void VOP_Node::getTentativeInputName ( UT_String in,
int  idx 
) const
protectedvirtual

Returns the name the input connector would prefer to have, if we did not need to worry about multiple inputs having the same name.

virtual void VOP_Node::getTentativeOutputName ( UT_String out,
int  idx 
) const
protectedvirtual

Returns the name the output connector would prefer to have, if we did not need to worry about multiple outputs having the same name.

Reimplemented in VOP_Null.

TIL_Thumbnail* VOP_Node::getThumbnail ( ) const

Returns a pointer to our thumbnail if we have one.

static const char* VOP_Node::getTypeNameFromType ( const VOP_TypeInfo type_info,
const VOP_Language lang 
)
static

Returns the code name of the type, such as "float" from VOP_TYPE_FLOAT Threadsafe but not re-entrant.

UT_ValArray<PRM_Parm *> VOP_Node::getUSDPreviewShaderParms ( )

Returns node parameters used to author a standard USD preview shader.

static const UT_Set<UT_StringHolder>& VOP_Node::getUSDPreviewShaderTags ( )
static

Returns a set of parm tags relevant to authoring the USD preview shader.

UT_ValArray<PRM_Parm *> VOP_Node::getUSDShaderParms ( bool  force_parms_at_default = false)

Returns node parameters that should be authored as input attributes (shader parameters) on a USD shader prim. Usually the returned list excludes parameters that are at default value, but if 'force_parms_at_default' is true, they are included too.

VOP_VariableTagsHandle VOP_Node::getVariableTagsFromInputNode ( int  idx,
VOP_Type  shader_type 
) const

Returns variable tags provided by an input node on the given input idx.

VEX_ContextType VOP_Node::getVexContextType ( ) const

Determine the VEX context type if the node is single-context type. For nodes in a multi-context vopnet returns VEX_INVALID_CONTEXT, because the specific VEX context cannot be reliably and unambiguously determined.

const vop_ConnectorArray& VOP_Node::getVisibleInputConnectors ( )
const vop_ConnectorArray& VOP_Node::getVisibleOutputConnectors ( )
VOP_CodeGenerator* VOP_Node::getVopAutoCodeGenerator ( )
overridevirtual

Obtains a code generator that provides shader code associated with a node. Usually, vopnet shader VOPs have their own dedicated code generator for shader constructed fom their children. However, also, all VOP nodes inside a Shader Network container node have their own auto-generator for automatically constructing temporary shader from their inputs (siblings).

Reimplemented from OP_Node.

const VOP_CodeGenerator* VOP_Node::getVopAutoCodeGenerator ( ) const
overridevirtual

Obtains a code generator that provides shader code associated with a node. Usually, vopnet shader VOPs have their own dedicated code generator for shader constructed fom their children. However, also, all VOP nodes inside a Shader Network container node have their own auto-generator for automatically constructing temporary shader from their inputs (siblings).

Reimplemented from OP_Node.

VOP_CodeGenerator* VOP_Node::getVopCodeGenerator ( )
overridevirtual

Obtains a code generator that provides shader code associated with a node. Usually, vopnet shader VOPs have their own dedicated code generator for shader constructed fom their children. However, also, all VOP nodes inside a Shader Network container node have their own auto-generator for automatically constructing temporary shader from their inputs (siblings).

Reimplemented from OP_Node.

virtual void VOP_Node::getVopFunctionArgInfos ( UT_Array< VOP_FunctionArgInfo > &  arg_infos)
virtual

If the node represents a function, a method, or a shader, then these functions return the info (name, return type, args) about the function or a shader function as it appears in the source code.

Reimplemented in VOP_OutputVar, and VOP_SubnetScript.

virtual void VOP_Node::getVopFunctionArgInfosFromExports ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
VOP_Type  shader_type 
)
virtual

Helper method to obtain all known export parameters from a shader node.

void VOP_Node::getVopFunctionArgInfosFromGlobals ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
VOP_Type  shader_type 
)

Helper method to obtain shader function parameter infos based on writable global variables in the shader's context. Used for shader call, that explicitly binds shader parameters to callee's globals, by listing them as arguments.

void VOP_Node::getVopFunctionArgInfosFromInputsAndOutputs ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
int  first_input,
int  last_input,
int  first_output,
int  last_output,
bool  prefix_input_arg_and_var_names,
bool  prefix_input_var_names = false,
const VOP_CodeGenContext context = nullptr 
)

Helper method for getVopFunctionArgInfos() to obtain shader function parameter infos based on the node inputs and outputs. Optionally, the method can prefix function argument names with an underscore, which is customary for shaders based on subnets. If so, the variable name will be also implicitly prefixed (otherwise, it would most likely be resolved to an input value). If argument name is not prefixed, the local variable used in a call may still be optionally prefixed (when needed to avoid var replacement).

void VOP_Node::getVopFunctionArgInfosFromInputsOutputsAndParms ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
int  first_input,
int  last_input,
int  first_output,
int  last_output,
bool  prefix_input_arg_and_var_names,
bool  prefix_input_var_names = false,
const VOP_CodeGenContext context = nullptr 
)

Helper method to obtain shader function parameter infos based on the node inputs, outputs, and parameters.

void VOP_Node::getVopFunctionArgInfosFromNodeParameters ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
const VOP_CodeGenContext context = nullptr 
)

Helper method to obtain shader function parameter infos based on the node parameters.

void VOP_Node::getVopFunctionArgInfosFromNodeParameters ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
VOP_Type  shader_type 
)
void VOP_Node::getVopFunctionCallCode ( UT_String codestr,
const VOP_CodeGenContext ctx 
)

Constructs a shader call, assuming this node represents a shader.

void VOP_Node::getVopFunctionCallModules ( UT_StringArray modules,
const VOP_CodeGenContext ctx 
)

Constructs a shader call, assuming this node represents a shader.

UT_StringHolder VOP_Node::getVopFunctionCallName ( const VOP_CodeGenContext ctx)

Constructs a shader call, assuming this node represents a shader.

virtual void VOP_Node::getVopFunctionName ( UT_String function_name) const
virtual

If the node represents a function, a method, or a shader, then these functions return the info (name, return type, args) about the function or a shader function as it appears in the source code.

Reimplemented in VOP_ScriptNode, VOP_OutputVar, and VOP_GenericShader.

virtual void VOP_Node::getVopFunctionReturnInfo ( VOP_FunctionArgInfo i) const
virtual

If the node represents a function, a method, or a shader, then these functions return the info (name, return type, args) about the function or a shader function as it appears in the source code.

Reimplemented in VOP_OutputVar.

fpreal VOP_Node::getW ( ) const
overridevirtual

Absolute width.

Reimplemented from OP_Node.

void VOP_Node::hideInput ( int  input_index,
bool  hide 
)
void VOP_Node::hideNamedInput ( const OP_ConnectorId connector_name,
bool  hide 
)
static void VOP_Node::incrementVariableName ( UT_String varname)
static
virtual void VOP_Node::initializeNode ( )
virtual

Gives the node a chance to initialize itself when it is first created. This is only used for VOP_ParmGenerator nodes.

Reimplemented in VOP_ParmGenerator, VOP_Visualize, VOP_Parameter, VOP_Bind, and VOP_OutputVar.

virtual void VOP_Node::initMaterialFlag ( )
virtual

Reimplemented in VOP_Collect, VOP_ScriptNode, and VOP_OutputVar.

int VOP_Node::inputParmTypeIndex ( int  inputidx,
const PRM_Parm parm 
) const
const char* VOP_Node::inputParmTypeString ( int  inputidx,
const PRM_Parm parm 
) const
VOP_Node* VOP_Node::insertBindExport ( int  outputidx,
bool  subnet 
)
void VOP_Node::insertBindExportsForAllOutputs ( bool  subnet)

Create Bind Export VOPs for all outputs of this node. Set subnet to true to create subnet-scoped Bind Export VOPs that produce output connectors on the owner subnetwork.

VOP_Node* VOP_Node::insertNamedNode ( const OP_ConnectorId input_name,
const char *  nodetype,
bool  connect_to_input,
const char *  undo_string = NULL 
)
VOP_Node* VOP_Node::insertNode ( int  inputidx,
const char *  nodetype,
bool  connect_to_input,
const char *  undo_string = NULL 
)
VOP_Node* VOP_Node::insertParmGenerator ( int  inputidx,
InputParmGenType  type 
)

Create a Parameter or Constant VOP that matches the type, name and value of one of our inputs, and connect it to that input. 'parm' specifies whether to build a Parameter or a Constant.

void VOP_Node::insertParmGeneratorsForAllInputs ( InputParmGenType  type,
UT_SymbolMap< VOP_Node * > *  created_vops = NULL 
)

Create Parameter or Constant VOPs for all inputs of this node. We don't create nodes for inputs that are already connected. If created_vops is not NULL, then the method will populate the table with the input names for the keys and the created VOP nodes for the values.

virtual bool VOP_Node::isAutoConvertNode ( ) const
inlinevirtual

Retruns true if the node is an internal auto-convert node.

Reimplemented in VOP_AutoConvert.

Definition at line 987 of file VOP_Node.h.

virtual bool VOP_Node::isAutoVopNode ( ) const
inlinevirtual

Retruns true if the node is an internal auto node used only during code generation.

Reimplemented in VOP_AutoNode.

Definition at line 983 of file VOP_Node.h.

virtual bool VOP_Node::isCachedShader ( ) const
virtual

Returns true if the node has pre-generated shader code and is not using network to generate it. This mainly applies to digital assets that store shader code in their sections (whether or not they also store the network contents).

Reimplemented in VOP_ScriptNode.

virtual bool VOP_Node::isConnected ( int  inputidx,
bool  recursive 
)
virtual

Return our input node for the give index. If recursive is true and we are in a subnet and the direct input for inputidx is a subnet input node, travel up the parent chain until no longer in a subnet or the input node is not a subnet input node. Basically, we want to know if we are connected to anything meaningful.

Reimplemented in VOP_SubnetBase, VOP_SubnetScript, and VOP_AutoConvert.

bool VOP_Node::isCVEXPathParm ( const char *  parm_name) const

Utility function to check if a parm by a given name is a cvex shader.

virtual bool VOP_Node::isEncapsulatedShader ( ) const
virtual

Returns true if this is a subnetwork which generates an encapsulated shader. For example the SubnetCVEX VOP. Parent material passes encapsulated shaders as shader string to other shaders (usually, geometry procedurals) to calculate certain properties dynamically. And to construct shader string there are some restrictions on encapsulated shaders (eg, their inputs can be only wired to constants and parameter VOPs).

bool VOP_Node::isExternalShader ( ) const

Returns true if the operator represents an externally defined shader such as a Geometry Shader, or a shader whose code is saved in a file on disk separately from the operator or HDA definition.

bool VOP_Node::isInitialized ( ) const
inline

Called by VOP_CodeGenerator::afterAddNode to ensure that nodes have been properly initialized. Some nodes weren't calling their base class' initializeNode() resulting in only partial initialization.

Definition at line 410 of file VOP_Node.h.

bool VOP_Node::isInNonShaderSubNetwork ( ) const

Returns true if this node is immediatly inside a non-shader subnet.

bool VOP_Node::isInputForShaderType ( int  input_idx,
const VOP_CodeGenContext context 
) const

Returns true if the given output represents an export variable for a shader of a type specified by context.

bool VOP_Node::isOutputForShaderType ( int  output_idx,
const VOP_CodeGenContext context 
) const
virtual bool VOP_Node::isOutputVopNode ( ) const
inlinevirtual

Returns true if the node is consdered an output node that represents a shader or a function that connects to a Collect node.

Reimplemented in VOP_OutputVar.

Definition at line 978 of file VOP_Node.h.

bool VOP_Node::isParmAtDefaultValue ( const char *  parm,
const PRM_Template tplate = nullptr 
) const

Returns true if the parameter of a given name is at default value. If the parameter template is also given, it is used for default value, otherwise the parameter's template is used.

bool VOP_Node::isParmForShaderType ( const PRM_Parm parm,
VOP_Type  shader_type,
bool  check_context_tag 
)

Checks whether the given parm belongs to the shader of a given type.

virtual bool VOP_Node::isShader ( ) const
virtual

Returns true if the VOP is a stand-alone shader (and not a building-block for a shader). The VOP may generate the code from its children VOPs, point to an external file, or store the code in the HDA section. But, it represents a self-contained shader code, which can be invoked for shading an object (surface), used as an encapsulated shader (CVEX shader for geometry procedurals, like fur), or called from another shader (as a shader function call).

Reimplemented in VOP_ScriptNode, and VOP_GenericShader.

virtual bool VOP_Node::isShader ( VOP_Type  shader_type) const
virtual

Returns true if the VOP is a stand-alone shader (and not a building-block for a shader), and can provide the shader code for a shader of the given type. Note, material VOP may return true for several shader types, such as both surface and displacement.

Reimplemented in VOP_ScriptNode, and VOP_GenericShader.

virtual bool VOP_Node::isSingleContextType ( ) const
virtual

Determines if the vop can be interpreted as a single or several RSL/VEX context types (surface, disp, ..), by looking at code generator. Returns true if the vop node is multi-type and false if single-type.

virtual bool VOP_Node::isSubnetInput ( ) const
inlinevirtual

Returns true if the node is considered a subnet's input node.

Reimplemented in VOP_ParmGenerator.

Definition at line 963 of file VOP_Node.h.

virtual bool VOP_Node::isUSDNodeGraph ( ) const
virtual

Returns ture if the node represents a USD NodeGraph, and false if it is a USD Material.

Reimplemented in VOP_Collect.

virtual bool VOP_Node::isVopMethod ( ) const
virtual

Returns true if the VOP represents a method inside a class.

Reimplemented in VOP_OutputVar.

virtual bool VOP_Node::isVopMethodPublic ( ) const
virtual

Returns true if the VOP represents a method inside a class.

Reimplemented in VOP_OutputVar.

bool VOP_Node::load ( UT_IStream is,
const char *  ext = "",
const char *  path = 0 
)
overridevirtual

Reimplemented from OP_Network.

bool VOP_Node::loadPacket ( UT_IStream is,
short  class_id,
short  sig,
const char *  path = 0 
)
overrideprotectedvirtual

Reimplemented from OP_Node.

bool VOP_Node::loadPacket ( UT_IStream is,
const char *  token,
const char *  path = 0 
)
overrideprotectedvirtual

Reimplemented from OP_Node.

bool VOP_Node::loadParmValues ( UT_IStream is)

Loads the parameter values to the output stream.

void VOP_Node::mergeInputNodeList ( VOP_NodeList nodes,
const VOP_CodeGenContext context = nullptr 
)

Recurse through our inputs and add them in order to the given list. Note this this might create new auto-conversion nodes in this list, and these will have to be deallocated by the caller (using the utility function deleteAutoNodesIn())

void VOP_Node::mergeInputNodeListInternal ( VOP_NodeList nodes,
VOP_NodeList extraterminals,
const VOP_CodeGenContext context = nullptr 
)
void VOP_Node::moveInput ( int  srcidx,
int  dstidx,
bool  forcesubnet = false 
)
overridevirtual

For subnet VOPs, when moving an input, we want to go in and reorganize the connections to our subinput and suboutput nodes so that the internal connections remain the same.

Reimplemented from OP_Node.

Reimplemented in VOP_SubnetBase, VOP_Snippet, VOP_SubnetOutput, and VOP_Null.

bool VOP_Node::needToExecute ( )
void VOP_Node::onCreated ( )
overridevirtual

Overriden in VOPs.

Reimplemented from OP_Node.

void VOP_Node::onInputAllocated ( OP_Input new_input,
int  index 
)
overrideprotectedvirtual

Overriden in VOPs.

Reimplemented from OP_Node.

void VOP_Node::onNodeChange ( OP_EventType  type)

Do not call this method directly.

void VOP_Node::opChanged ( OP_EventType  reason,
void data = 0 
)
overridevirtual

Whenever a variable type parm changes, we have to send out an event to get our tile to update.

Reimplemented from OP_Node.

Reimplemented in VOP_SubnetScript, VOP_ScriptNode, VOP_ParmGenerator, VOP_Visualize, and VOP_Properties.

bool VOP_Node::outputDefaultParmDefinition ( std::ostream &  os,
int  idx 
)

Based on the specified input index, output a parm definition block appropriate for a dialog script. The parm definition provides a default value for the input if it is not connected. If the input is VEX_TYPE_UNDEF, we output nothing and return false. Otherwise we return true.

void VOP_Node::outputVopFunctionVariableDeclarations ( UT_WorkBuffer buffer,
const UT_Array< VOP_FunctionArgInfo > &  arg_infos,
bool  use_defined_input_defaults 
)

Writes declarations of variables used as argument to a function call.

Parameters
[out]bufferOutgoing argument that is filled with variable declarations. [in] arg_infos Information about inputs/output variables to write out. [in] use_defined_input_defaults Flags whether the input variables should be initialized to special defaults defined by the owner subnet. If true, any unconnected inputs will be initialized to such specially defined defaults (connected inputs will be initialized to incoming variables corresponding to the incoming wire). If false, the input defaults defined by owner subnet are not used, and all inputs are initialized to incoming variables, which resolve to the value if input is connected or to the empty constant or node parm value.
virtual void VOP_Node::postOpChanged ( OP_EventType  ,
void  
)
inlineprotectedvirtual
virtual void VOP_Node::preOpChanged ( OP_EventType  ,
void  
)
inlineprotectedvirtual
bool VOP_Node::preUpdateParmsFlags ( )
overrideprotectedvirtual

Reimplemented from OP_Parameters.

void VOP_Node::pruneVopFunctionArgInfos ( UT_Array< VOP_FunctionArgInfo > &  arg_infos,
bool  keep_all_export_args = false 
)

Removes entries that correspond to a shader function parameters at a default value (or unconnected). If keep_export_args is true, all exports args are kept, even if they are at default. Otherwise, at-default exports are pruned.

static void VOP_Node::recalculateAllParmDefiners ( OP_Node root,
bool  dive_into_subnets = true,
const UT_StringRef target_parm_name = UT_StringRef() 
)
static

Calls recalculateParmDefiner on all VOP_ParmGenerator nodes under root.

void VOP_Node::referencedParmChanged ( int  pi)
overridevirtual

Reimplemented from OP_Node.

static void VOP_Node::refreshShaderParmTemplatesIfNeeded ( OP_Node n)
static
virtual void VOP_Node::registerExtraVarRequests ( VOP_ExtraVarRequests extra_var_requests,
const VOP_CodeGenContext context 
)
virtual

Gives this node a chance to register an interest in a varialbe that the upstream vop computes, but only optionally when explicitly asked.

virtual void VOP_Node::representAsCoShader ( UT_ValArray< VOP_Node * > &  coshader)
protectedvirtual

Represents this node as a co-shader. Usually it just adds itself to the list, but some VOPs may represent a co-shader array, in which chase, they add a bunch of other VOPs that make up the array.

virtual void VOP_Node::representAsCoShaderOutputName ( UT_StringArray name,
int  output_index 
)
protectedvirtual

Represents this node as a co-shader. Usually it just adds itself to the list, but some VOPs may represent a co-shader array, in which chase, they add a bunch of other VOPs that make up the array.

static void VOP_Node::rewireInputs ( OP_Network parent,
OP_NodeList inputs,
int  srcidx,
int  dstidx 
)
staticprotected

This function is used to rewire nodes when we do a moveInput.

void VOP_Node::rewireOutputConnections ( const UT_StringArray old_names,
const UT_StringArray new_names 
)

Updates the output connections based on the correspondence between old and new output names.

bool VOP_Node::runCreateScript ( )
overridevirtual

Reimplemented from OP_Node.

Reimplemented in VOP_SubnetBase, HDK_Sample::VOP_CustomVop, and VOP_SubnetScript.

Examples:
VOP/VOP_CustomContext.C.
OP_ERROR VOP_Node::save ( std::ostream &  os,
const OP_SaveFlags flags,
const char *  path_prefix = "",
const UT_String name_override = UT_String() 
)
overridevirtual

Reimplemented from OP_Node.

int VOP_Node::saveCookedData ( std::ostream &  ,
OP_Context ,
int  binary = 0 
)
overrideprotectedvirtual

Implements OP_Node.

int VOP_Node::saveCookedData ( const char *  ,
OP_Context  
)
overrideprotectedvirtual

Implements OP_Node.

void VOP_Node::saveDialogScriptExtraInfo ( std::ostream &  os)
overridevirtual

Reimplemented from OP_Node.

OP_ERROR VOP_Node::saveIntrinsic ( std::ostream &  os,
const OP_SaveFlags flags 
)
overrideprotectedvirtual

Save and load VOP version numbers.

Reimplemented from OP_Node.

void VOP_Node::saveNodeInputAndOutputDefinitions ( std::ostream &  os)

Writes out the input and output connector definitions.

bool VOP_Node::saveParmValues ( std::ostream &  os)

Saves the parameter values to the output stream.

void VOP_Node::setAllInputGroupsExpanded ( bool  expanded)
static void VOP_Node::setBuildVexScriptCB ( VexBuildFn1  fn1,
VexBuildFn2  fn2 
)
static

To be able to use Cvex VOP in Attribute SOP, etc.

virtual void VOP_Node::setCurrentSignature ( const char *  name)
virtual

Sets the current signature. The name must be a valid signature recognized by the node. Also it should be possible to switch to that signature, which may not be possible due to the types of connected inputs, which limit the aplicability of some signatures.

Reimplemented in VOP_ScriptNode.

bool VOP_Node::setDebug ( bool  on_off)
overridevirtual

Reimplemented from OP_Node.

void VOP_Node::setDefaultLanguage ( )

Resets the language used by this node to the default one (deduced from a render mask, code gen, or the parent).

void VOP_Node::setErrorsClean ( const OP_Context context)

Manipulate cook error dirty state.

void VOP_Node::setErrorsDirty ( )

Manipulate cook error dirty state.

void VOP_Node::setFlag ( char  flag,
int8  val 
)
overridevirtual

Functions for getting and setting the in/out LOD value, using the OP_NodeFlag mechanism.

Reimplemented from OP_Node.

bool VOP_Node::setInOutLOD ( int  level,
bool  inoff 
)
OP_ERROR VOP_Node::setInput ( unsigned  idx,
OP_Node op,
unsigned  outputIdx = 0 
)
overridevirtual

Override the setInput functions so that we can send notification to the nodes that are our inputs when we disconnect from them.

Reimplemented from OP_Node.

Reimplemented in VOP_Snippet, VOP_SubnetOutput, VOP_Null, and VOP_SubnetBase.

void VOP_Node::setInputGroupExpanded ( const UT_StringHolder group,
bool  expanded 
)

Get or set the expansion state of an input group for this node. The information is stored in the user data.

OP_ERROR VOP_Node::setInputReference ( unsigned  idx,
const char *  label,
int  keeppos,
unsigned  outputIdx = 0 
)
overridevirtual

Connects an input to particular node by name in the network.

Reimplemented from OP_Node.

Reimplemented in VOP_Snippet, VOP_SubnetOutput, VOP_Null, and VOP_SubnetBase.

void VOP_Node::setInputVariableOverride ( int  input_index,
const InputVariableOverride var_override 
)
void VOP_Node::setLanguage ( const VOP_Language language)

Sets the specific language for this node.

bool VOP_Node::setLanguage ( const UT_StringRef language_name)

Sets the specific language for this node.

static void VOP_Node::setLODPref ( int  value)
static
bool VOP_Node::setMaterialFlag ( bool  on_off)
OP_ERROR VOP_Node::setNamedInput ( const OP_ConnectorId input_name,
OP_Node op,
const OP_ConnectorId output_name = nullptr 
)
overridevirtual

New input functions that use names instead of indices.

Reimplemented from OP_Node.

Reimplemented in VOP_Snippet, VOP_SubnetOutput, VOP_VariableInput, VOP_Null, and VOP_SubnetBase.

OP_ERROR VOP_Node::setNamedInputReference ( const OP_ConnectorId input_name,
const char *  label,
int  ,
const OP_ConnectorId output_name = nullptr 
)
overridevirtual

Reimplemented from OP_Node.

Reimplemented in VOP_Snippet, VOP_SubnetOutput, VOP_VariableInput, VOP_Null, and VOP_SubnetBase.

void VOP_Node::setReferenceTargetDefaults ( int  input_index,
bool  do_set 
)
static void VOP_Node::setRunCreateScriptCB ( void(*)(const char *node_path, const char *render_mask, VOP_Type shader_type)  )
static

Some clerks add own stuff on creation. Any such action can be registered with this method.

static void VOP_Node::setShowPreviewPref ( bool  show)
static
void VOP_Node::setTables ( const VOP_GlobalVarMap globals,
VOP_ParmGeneratorMap locals,
VOP_LocalChannelMap channels 
)
void VOP_Node::setTablesFromVop ( VOP_Node vop)
void VOP_Node::setThumbnail ( TIL_Thumbnail thumbnail)

Give this VOP ownership of a TIL_Thumbnail object. Deletes any thumbnail that was already here.

void VOP_Node::setVisibleConnectorsDirty ( )
protected

Flag our visible connector info as dirty so it will be rebuilt the next time anyone asks for it.

virtual void VOP_Node::shaderParmGrandChildAdded ( VOP_Node grand_child)
virtual

Informs this node that some descendant (but not immediate child) was added and it represents a shader input or output.

Reimplemented in VOP_SubnetScript, and VOP_SubnetBase.

virtual void VOP_Node::shaderParmGrandChildChanged ( VOP_Node grand_child)
virtual

Reimplemented in VOP_SubnetScript, and VOP_SubnetBase.

virtual void VOP_Node::shaderParmGrandChildDeleted ( VOP_Node grand_child)
virtual

Reimplemented in VOP_SubnetScript, and VOP_SubnetBase.

virtual bool VOP_Node::shouldCheckInputContextForMergeInputNodeList ( ) const
virtual

Returns true if the methods below should consider only the inputs of this node that belong to the given shader context. Most nodes indiscriminately merge all their inputs, but some (like Material Buider VOP) need pick inuts that belong to the given context.

virtual bool VOP_Node::shouldCheckTimeDependence ( ) const
protectedvirtual

Returns true if the node should attempt testing its parameters for time dependence during the error generation pass.

Reimplemented in VOP_Parameter.

virtual bool VOP_Node::shouldOutputNodeVariableDeclarations ( ) const
virtual

Returns true if the code generator should declare local variables for this node's outputs. Returns false, if node declares them itself.

virtual bool VOP_Node::shouldPrefixInputVariablesInsideSubnet ( ) const
virtual

Returns true if input variables should be prefixed inside the subnet.

virtual bool VOP_Node::shouldPreResolveOutput ( int  output_index) const
inlinevirtual

Returns true if code generator should attempt to copy info about a variable corresponding to the i-th output connector.

Definition at line 973 of file VOP_Node.h.

virtual bool VOP_Node::showsShaderParmsAsSubnetConnectors ( ) const
virtual

Returns true if shader parameters should be displayed as node inputs and outputs. This is true for subnet shader nodes.

void VOP_Node::stealGlobalErrorsForHelper ( )
inline

Exposes protected method for taking over the errors from global manager. Should be used only by cerain helpers.

Definition at line 1351 of file VOP_Node.h.

virtual bool VOP_Node::translatesDirectlyToUSD ( ) const
virtual

Returns true if the VOP is directly translatable to a USD primitive. Ie, it is not a shader code building-block VOP.

Reimplemented in VOP_SubnetBase, VOP_SubnetScript, VOP_Parameter, VOP_Bind, and VOP_Constant.

void VOP_Node::updateInputFlagsFromOperator ( VOP_OperatorInfo type_info,
bool  keep_visible 
)
bool VOP_Node::updateParmsActiveState ( bool  active)
protected
bool VOP_Node::updateParmsFlags ( )
overrideprotectedvirtual
void VOP_Node::userDataChanged ( const UT_StringHolder key)
overridevirtual

Handle changes to our user data. This may require a redraw.

Reimplemented from OP_Node.

virtual bool VOP_Node::usesSubnetConnectorsAsShaderParms ( ) const
virtual

Returns true if parm nodes that define subnet connectors are treated as shader parms. This is true for subnet material (or shader) nodes.

bool VOP_Node::willAutoconvertInputType ( int  input_idx)
overridevirtual

Returns true if the input will be auto-converetd, false otherwise.

Reimplemented from OP_Node.

bool VOP_Node::willAutoconvertNamedInputType ( const OP_ConnectorId input_name)
overridevirtual

Reimplemented from OP_Node.

Member Data Documentation

const VOP_Language* VOP_Node::myLanguage
protected
Examples:
VOP/VOP_Switch.C.

Definition at line 1576 of file VOP_Node.h.

int VOP_Node::myVopVersion
protected

Definition at line 1627 of file VOP_Node.h.

const char* VOP_Node::theChildTableName
static
Examples:
VOP/VOP_Switch.C.

Definition at line 270 of file VOP_Node.h.


The documentation for this class was generated from the following file: