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

#include <OP_Operator.h>

+ Inheritance diagram for OP_Operator:

Public Types

enum  OP_OperatorCompare { OP_COMPARE_GEN_ENGLISH = 0, OP_COMPARE_GEN_NAME = 1, OP_COMPARE_ENGLISH = 2, OP_COMPARE_NAME = 3 }
 

Public Member Functions

 OP_Operator (const char *name, const char *english, OP_Constructor construct, PRM_Template *templates, unsigned min_sources, unsigned max_sources=9999, CH_LocalVariable *variables=0, unsigned flags=0, const char **inputlabels=0, int maxoutputs=1, const char *tab_submenu_path=0)
 Note: The 'inputlabels' array is expected to be null-terminated. More...
 
 OP_Operator (const char *name, const char *english, OP_Constructor construct, OP_TemplatePair *template_pair, unsigned min_sources, unsigned max_sources=9999, OP_VariablePair *variable_pair=0, unsigned flags=0, const char **inputlabels=0, int maxoutputs=1, const char *tab_submenu_path=0)
 
 OP_Operator (const char *name, const char *english, OP_Constructor construct, PRM_Template *templates, const char *child_table_name, unsigned min_sources, unsigned max_sources=9999, CH_LocalVariable *variables=0, unsigned flags=0, const char **inputlabels=0, int maxoutputs=1, const char *tab_submenu_path=0)
 
 OP_Operator (const char *name, const char *english, OP_Constructor construct, OP_TemplatePair *template_pair, const char *child_table_name, unsigned min_sources, unsigned max_sources=9999, OP_VariablePair *variable_pair=0, unsigned flags=0, const char **inputlabels=0, int maxoutputs=1, const char *tab_submenu_path=0)
 
virtual ~OP_Operator ()
 
OP_NodeconstructNode (OP_Network *net, const char *name)
 
int getNumActiveNodes () const
 
OP_NodegetActiveNode (int i) const
 
void nodeDestroyed (OP_Node *node)
 
virtual OP_SpecificDatagetOpSpecificData ()
 
virtual const OP_SpecificDatagetOpSpecificData () const
 
const UT_StringHoldergetName () const
 
void getTableAndName (UT_WorkBuffer &name) const
 
void getTableAndName (UT_String &name) const
 
const UT_StringHoldergetEnglish () const
 
virtual UT_Color getDefaultColor () const
 
virtual const UT_StringHoldergetDefaultShape () const
 
virtual bool getHDKHelp (UT_String &) const
 
virtual bool getOpHelpURL (UT_String &url)
 
virtual bool getOpTabSubMenuPath (UT_String &tab_submenu_path)
 
void setOpTabSubMenuPath (const char *tab_submenu_path)
 
bool getOTLHelp (UT_String &str)
 
bool hasPotentialEditableSubNodes ()
 
void getEditableSubNodes (UT_String &pattern)
 
const UT_StringHoldergetMessageSubNodes () const
 
void getDiveTarget (UT_String &divetarget)
 
void getDescriptiveParmName (UT_String &descrparm)
 
void getDefaultState (UT_String &statename)
 
void getFunctionName (UT_String &function_name)
 
void getSecondaryFunctionsNames (UT_StringMap< UT_StringHolder > &functions)
 
void getComment (UT_String &comment)
 
virtual bool getVersion (UT_String &version)
 
void getHelpFileDirAndName (UT_String &script_dir, UT_String &name)
 
void getDefinitionSource (UT_String &defsource) const
 
OP_NodegetDefiningNetwork () const
 
const UT_StringHoldergetIndexPath () const
 
const UT_StringHoldergetIndexFile () const
 
bool getScriptIsSubnet () const
 
bool getScriptIsVex () const
 
bool getScriptIsRsl () const
 
VEX_ContextType getVexContextType () const
 
RSL_ContextType getRslContextType () const
 
time_t getModTime () const
 
bool getIsDummyDefinition () const
 
bool getScriptIsPython () const
 
void setScriptIsPython (bool is_python)
 
const UT_StringHoldergetExtraInfo () const
 
const OP_ExtraInfoBuffergetExtraInfoBuffer () const
 
void setOTLDefinition (const OP_OTLDefinition &definition)
 
const OP_OTLDefinitiongetOTLDefinition () const
 
void setOTLLibrary (OP_OTLLibrary *library)
 
OP_OTLLibrarygetOTLLibrary ()
 
virtual bool getSectionData (const UT_StringRef &name, UT_StringHolder &value) const
 
virtual bool hasSectionData (const UT_StringRef &name) const
 
bool hasContentsSection ()
 
FS_IndexFilegetOTLIndexFile (bool check_timestamp=true)
 
FS_IndexFileHandle getOTLIndexFilePtr (bool check_timestamp=true)
 
UT_StringHolder getContentsSection ()
 
virtual void clearOTLIndexFile ()
 
FS_IndexFilecreateDefaultOTLIndexFile () const
 
FS_IndexFilecreateOTLIndexFile (bool reservedsectionsonly, UT_StringArray *externalfiles)
 
void getDefinitionSectionName (UT_String &sectname) const
 
void listContainedOperators (UT_StringSet &contents_list)
 List all operators found in the contents section. More...
 
const char * getIconName () const
 
void setIconName (const char *name)
 
void setDefaultIconName ()
 
unsigned minInputs () const
 
unsigned maxInputs () const
 
virtual unsigned maxOutputs ()
 
OP_SpareParmsloadSpareParms (UT_IStream &is)
 
virtual bool hasLoadedParmTemplates () const
 
virtual int updateParmTemplates ()
 
virtual void forceUpdateParmTemplates ()
 
PRM_TemplategetParmTemplates ()
 
PRM_ScriptImportsgetParmTemplateImports ()
 
PRM_TemplategetLayoutParmTemplates ()
 
PRM_ScriptImportsgetLayoutParmTemplateImports ()
 
virtual const PRM_TemplategetBaseParmTemplates ()
 
PRM_TemplategetBaseOverrideLayoutParmTemplates ()
 
virtual PRM_TemplategetObsoleteTemplates ()
 
void setObsoleteTemplates (PRM_Template *tmpl)
 
bool getOverrideLayoutParmTemplateFile (UT_String &ds_path) const
 
CH_LocalVariablegetVariable (int i) const
 
CH_LocalVariablegetVariable (const char *name) const
 
CH_LocalVariablegetVariables () const
 
int getVariableCount () const
 
void resetVariables (OP_VariablePair *variable_pair)
 
bool isNetwork () const
 
bool isGenerator () const
 
bool isScriptedOp () const
 
bool isCustomDSO () const
 
bool unorderedInputs () const
 
bool isManagementOp () const
 
bool isOutputOp () const
 
bool hasEditableInputData () const
 
bool getIsPrimarySubnetType () const
 
bool isCreatingNode () const
 
bool isChangingParmTemplates () const
 
bool hasNodeLoadingContentsSection () const
 
void beginLoadingContentsSectionForNode ()
 
void endLoadingContentsSectionForNode ()
 
bool shouldPreserve () const
 
virtual int compareOperator (const OP_Operator *other, int method) const
 
void changeParmTemplate (PRM_Template *tp)
 
unsigned getPermissionMask () const
 
virtual void getRefreshPICommands (OP_Node *, std::ostream &)
 
virtual bool wantsParametersAnimatable () const
 
virtual bool wantsInputEditor () const
 
virtual bool wantsParmOrderEditor () const
 
virtual bool wantsOutputNameEditor () const
 
virtual bool wantsParentInputs () const
 
const OP_InputDataEditorConfigExgetInputDataEditorConfigEx () const
 
void setInputDataEditorConfigEx (const OP_InputDataEditorConfigEx &config)
 
void setInputDataEditorConfig (const OP_InputDataEditorConfig &config)
 
virtual const char * getOperatorShortHelpString ()
 
virtual void getOperatorSpecificInfoText (int verbose, UT_WorkBuffer &text)
 
void fillInfoTree (UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms)
 
virtual void fillInfoTreeOperatorSpecific (UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms)
 
const char * getTableName () const
 
OP_OperatorTablegetTable () const
 
const UT_StringHoldergetChildTableName () const
 
OP_OperatorTablegetChildOperatorTable () const
 
OP_OTLLicenseType getLicense ()
 
void setDefinition (const char *def)
 
void setEnglish (const char *english)
 
void informOfTabMenuFlagChange ()
 
virtual void setName (const char *name)
 
void setMinInputs (int inputs)
 
void setMaxInputs (int inputs)
 
void setIsGenerator (bool isgen)
 
void updatePresetInfo ()
 
PRM_PresetInfogetPresetInfo ()
 
bool runEventScript (const char *event, OP_Node *node_arg=nullptr, bool full_path=false, UT_Options *extra_args=nullptr, bool *node_deleted_by_script=nullptr)
 
PY_EvaluationContextgetPythonModuleDicts ()
 
bool hasLoadedPythonModuleSection () const
 
void loadPythonModuleSection (bool force=false)
 
PY_EvaluationContextgetViewerStateModuleDicts ()
 
bool hasLoadedViewerStateModuleSection () const
 
void loadViewerStateModuleSection (bool force=false)
 
PY_EvaluationContextgetViewerHandleModuleDicts ()
 
bool hasLoadedViewerHandleModuleSection () const
 
void loadViewerHandleModuleSection (bool force=false)
 
void clearEventScriptPathCache ()
 
void getCachedEventScriptPaths (UT_StringArray &events, UT_StringArray &paths, bool only_nonempty) const
 
bool isThreadSafe () const
 
void setIsThreadSafe (bool is_safe)
 
bool isCompiled ()
 
bool isBlackBoxed ()
 Returns true if this operator is black boxed, and false otherwise. More...
 
void constructIndexFileSectionPath (UT_String &path, const char *opdef_or_oplib, const char *section_name) const
 
void constructIndexFileSectionPath (UT_String &path, const char *opdef_or_oplib, const UT_StringArray &section_names) const
 
void setNumOrderedInputs (int inputs)
 
int numOrderedInputs () const
 
void setLegacyInputsMap (const char *map)
 
void getLegacyInputsMap (UT_String &map) const
 
const UT_StringArraygetLegacyInputsIndexMap () const
 
const UT_StringHoldergetInputName (int idx) const
 Accessing operator inputs name, label, and reference flag. More...
 
const UT_StringArraygetInputNames () const
 Accessing operator inputs name, label, and reference flag. More...
 
const UT_StringHoldergetInputLabel (int idx) const
 Accessing operator inputs name, label, and reference flag. More...
 
const UT_StringArraygetInputLabels () const
 Accessing operator inputs name, label, and reference flag. More...
 
bool getInputIsReference (int idx) const
 Accessing operator inputs name, label, and reference flag. More...
 
const UT_Array< bool > & getInputAreReferences () const
 Accessing operator inputs name, label, and reference flag. More...
 
virtual bool allowsInputNameEditing () const
 Accessing operator inputs name, label, and reference flag. More...
 
const UT_StringHoldergetOutputLabel (int idx) const
 
const UT_StringArraygetOutputLabels () const
 
void getOpBasedFileName (UT_String &filename)
 
void getOpBasedFileName (UT_WorkBuffer &filename)
 

Static Public Member Functions

static void clearOperatorHelpCache ()
 
static int loadFromOpType (const char *fname, const char *savedir)
 
static int uninstallOpType (const char *path, const char *tablename, const char *opname, const char *indexpath, const char *indexfile)
 
static void removeHelpCardOverrides (UT_FileUtil *fu, const char *path, const char *tablename, const char *opname, int flags)
 
static void removeRenameOverrides (UT_FileUtil *fu, const char *path, const char *tablename, const char *opname, int flags)
 
static void removeIconOverrides (UT_FileUtil *fu, const char *path, const char *tablename, const char *opname, int flags)
 
static void removeCmdOverrides (UT_FileUtil *fu, const char *path, const char *tablename, const char *opname, int flags)
 
static void getDefaultIconName (const char *tablename, const char *opname, UT_String &iconname)
 
static const char * getCurrentPythonModuleKey ()
 
static const OP_OperatormapSecurityKeyToOperator (const char *key)
 
static void registerPythonModuleKeyClient (void *client)
 
static bool verifyPythonModuleKeyClient (const OP_Operator *op, void *client)
 
static PRM_TemplategetEmptyTemplateList ()
 
static int operatorNameCompare (const OP_Operator *a, const OP_Operator *b)
 

Protected Member Functions

void notifyUpdateTemplatesSinksOfUpdate ()
 
void notifyUpdateTemplatesSinksOfDelete ()
 
void notifyActiveNodesOfTemplatesUpdate ()
 
void setDescriptiveParmName (const UT_StringHolder &parm)
 
void dirtyParmTemplatesLoaded ()
 
virtual bool loadParmTemplatesSubclass ()
 
bool loadAndCreateLayoutParmTemplates (PRM_ScriptPage *page, DS_Stream &ds_is, PRM_Template *&base_tplates, PRM_Template *&layout_tplates, PRM_ScriptImports *&imports, PRM_Template *&tplates, int base_controls_switcher_index, int base_controls_insert_index, int base_controls_switcher_page_num, PRM_Default *&base_controls_switcher_defaults, bool hide_default_parms)
 Load parameter templates from the specified file stream. More...
 

Static Protected Member Functions

static PRM_TemplateaddTemplates (OP_TemplatePair *)
 
static CH_LocalVariableaddVariables (OP_VariablePair *, int &)
 

Protected Attributes

PRM_TemplatemyParmTemplates
 
PRM_ScriptImportsmyImports
 
PRM_TemplatemyLayoutParmTemplates
 
PRM_ScriptImportsmyLayoutParmImports
 
PRM_TemplatemyBaseOverrideLayout
 
PRM_TemplatemyBase
 
bool myParmTemplatesLoaded
 
PRM_TemplatemyObsoleteTemplates
 
UT_StringArray myInputNames
 
UT_StringArray myInputLabels
 
UT_StringArray myOutputLabels
 
UT_DeepString myTabSubmenuPath
 
UT_Array< bool > myInputReferences
 
CH_LocalVariablemyVariables
 
int myNvariables
 
UT_StringHolder myChildTableName
 
OP_OTLDefinition myOTLDefinition
 
OP_InputDataEditorConfigEx myInputDataEditorConfig
 
VEX_ContextType myVexContextType
 
RSL_ContextType myRslContextType
 
unsigned myFlags
 
bool myHasContentsSection
 
UT_SharedPtr< PRM_ScriptPagemyOverrideLayoutParmScriptPage
 

Friends

class OP_OperatorTable
 
class SHOP_ScriptOperator
 
class OP_UpdateTemplatesSink
 

Detailed Description

Examples:
CHOP/CHOP_Blend.C, CHOP/CHOP_Blend.h, CHOP/CHOP_Spring.C, CHOP/CHOP_Spring.h, CHOP/CHOP_Stair.C, CHOP/CHOP_Stair.h, COP2/COP2_FullImageFilter.C, COP2/COP2_FullImageFilter.h, COP2/COP2_MultiInputWipe.C, COP2/COP2_MultiInputWipe.h, COP2/COP2_PixelAdd.C, COP2/COP2_PixelAdd.h, COP2/COP2_SampleFilter.C, COP2/COP2_SampleFilter.h, COP2/COP2_SampleGenerator.C, COP2/COP2_SampleGenerator.h, DOP/DOP_GroupAndApply.C, DOP/DOP_GroupAndApply.h, euclid/SOP_Euclid.C, euclid/SOP_Euclid.h, expr/functions.C, field3d/ROP_Field3D.C, field3d/ROP_Field3D.h, HOM/SOP_HOMWave.C, HOM/SOP_HOMWave.h, LOP/LOP_Sphere.C, LOP/LOP_Sphere.h, OBJ/OBJ_Lamp.C, OBJ/OBJ_Shake.C, OBJ/OBJ_Shake.h, OBJ/OBJ_WorldAlign.C, OBJ/OBJ_WorldAlign.h, ROP/ROP_Dumper.C, ROP/ROP_Dumper.h, SHOP/SHOP_Multi.C, SHOP/SHOP_Multi.h, SHOP/SHOP_POVMaterial.C, SHOP/SHOP_POVMaterial.h, SOP/MSS_BrushHairLenSelector.C, SOP/SOP_ArrayAttrib.C, SOP/SOP_ArrayAttrib.h, SOP/SOP_BlindData.C, SOP/SOP_BlindData.h, SOP/SOP_BouncyAgent.C, SOP/SOP_BouncyAgent.h, SOP/SOP_BrushHairLen.C, SOP/SOP_BrushHairLen.h, SOP/SOP_Cop2Raster.C, SOP/SOP_Cop2Raster.h, SOP/SOP_CPPWave.C, SOP/SOP_CPPWave.h, SOP/SOP_CustomBrush.C, SOP/SOP_CustomBrush.h, SOP/SOP_DetailAttrib.C, SOP/SOP_DetailAttrib.h, SOP/SOP_DualStar.C, SOP/SOP_DualStar.h, SOP/SOP_Flatten.C, SOP/SOP_Flatten.h, SOP/SOP_GroupRename.C, SOP/SOP_GroupRename.h, SOP/SOP_HDKObject.C, SOP/SOP_HDKObject.h, SOP/SOP_IKSample.C, SOP/SOP_IKSample.h, SOP/SOP_NURBS.C, SOP/SOP_NURBS.h, SOP/SOP_PointWave.C, SOP/SOP_PointWave.h, SOP/SOP_PrimVOP.C, SOP/SOP_PrimVOP.h, SOP/SOP_SParticle.C, SOP/SOP_SParticle.h, SOP/SOP_Surface.C, SOP/SOP_Surface.h, SOP/SOP_TimeCompare.C, SOP/SOP_TimeCompare.h, tetprim/SOP_Tetra.C, tetprim/SOP_Tetra.h, VOP/VOP_CustomContext.C, VOP/VOP_CustomContext.h, VOP/VOP_Switch.C, and VOP/VOP_Switch.h.

Definition at line 139 of file OP_Operator.h.

Member Enumeration Documentation

Enumerator
OP_COMPARE_GEN_ENGLISH 
OP_COMPARE_GEN_NAME 
OP_COMPARE_ENGLISH 
OP_COMPARE_NAME 

Definition at line 530 of file OP_Operator.h.

Constructor & Destructor Documentation

OP_Operator::OP_Operator ( const char *  name,
const char *  english,
OP_Constructor  construct,
PRM_Template templates,
unsigned  min_sources,
unsigned  max_sources = 9999,
CH_LocalVariable variables = 0,
unsigned  flags = 0,
const char **  inputlabels = 0,
int  maxoutputs = 1,
const char *  tab_submenu_path = 0 
)

Note: The 'inputlabels' array is expected to be null-terminated.

OP_Operator::OP_Operator ( const char *  name,
const char *  english,
OP_Constructor  construct,
OP_TemplatePair template_pair,
unsigned  min_sources,
unsigned  max_sources = 9999,
OP_VariablePair variable_pair = 0,
unsigned  flags = 0,
const char **  inputlabels = 0,
int  maxoutputs = 1,
const char *  tab_submenu_path = 0 
)
OP_Operator::OP_Operator ( const char *  name,
const char *  english,
OP_Constructor  construct,
PRM_Template templates,
const char *  child_table_name,
unsigned  min_sources,
unsigned  max_sources = 9999,
CH_LocalVariable variables = 0,
unsigned  flags = 0,
const char **  inputlabels = 0,
int  maxoutputs = 1,
const char *  tab_submenu_path = 0 
)
OP_Operator::OP_Operator ( const char *  name,
const char *  english,
OP_Constructor  construct,
OP_TemplatePair template_pair,
const char *  child_table_name,
unsigned  min_sources,
unsigned  max_sources = 9999,
OP_VariablePair variable_pair = 0,
unsigned  flags = 0,
const char **  inputlabels = 0,
int  maxoutputs = 1,
const char *  tab_submenu_path = 0 
)
virtual OP_Operator::~OP_Operator ( )
virtual

Member Function Documentation

static PRM_Template* OP_Operator::addTemplates ( OP_TemplatePair )
staticprotected
static CH_LocalVariable* OP_Operator::addVariables ( OP_VariablePair ,
int  
)
staticprotected
virtual bool OP_Operator::allowsInputNameEditing ( ) const
virtual

Accessing operator inputs name, label, and reference flag.

void OP_Operator::beginLoadingContentsSectionForNode ( )
inline

Definition at line 513 of file OP_Operator.h.

void OP_Operator::changeParmTemplate ( PRM_Template tp)
void OP_Operator::clearEventScriptPathCache ( )
static void OP_Operator::clearOperatorHelpCache ( )
inlinestatic

Definition at line 260 of file OP_Operator.h.

virtual void OP_Operator::clearOTLIndexFile ( )
virtual

Reimplemented in OP_ScriptOperator.

virtual int OP_Operator::compareOperator ( const OP_Operator other,
int  method 
) const
virtual

Reimplemented in SHOP_Operator.

void OP_Operator::constructIndexFileSectionPath ( UT_String path,
const char *  opdef_or_oplib,
const char *  section_name 
) const

Returns a path that refers to an index file section within an OTL library or an HDA definition (depending on opdef_or_oplib prefix, which should be either OTL_LIBRARY_PREFIX or OTL_DEFINITION_PREFIX). The method version that takes a string array instead of a string is intended for nested sections where the sections towards the end of the array are innermost sections within sections earlier in the array (that are themselves index files). For example, the path may be "opdef:/Object/hda?section" or "opdef:/artistA::Object/hda::2.0?section, or "opdef:/Sop/hda?outer_section.idx?inner_section, etc

void OP_Operator::constructIndexFileSectionPath ( UT_String path,
const char *  opdef_or_oplib,
const UT_StringArray section_names 
) const

Returns a path that refers to an index file section within an OTL library or an HDA definition (depending on opdef_or_oplib prefix, which should be either OTL_LIBRARY_PREFIX or OTL_DEFINITION_PREFIX). The method version that takes a string array instead of a string is intended for nested sections where the sections towards the end of the array are innermost sections within sections earlier in the array (that are themselves index files). For example, the path may be "opdef:/Object/hda?section" or "opdef:/artistA::Object/hda::2.0?section, or "opdef:/Sop/hda?outer_section.idx?inner_section, etc

OP_Node* OP_Operator::constructNode ( OP_Network net,
const char *  name 
)
FS_IndexFile* OP_Operator::createDefaultOTLIndexFile ( ) const
FS_IndexFile* OP_Operator::createOTLIndexFile ( bool  reservedsectionsonly,
UT_StringArray externalfiles 
)
void OP_Operator::dirtyParmTemplatesLoaded ( )
protected
void OP_Operator::endLoadingContentsSectionForNode ( )
inline

Definition at line 517 of file OP_Operator.h.

void OP_Operator::fillInfoTree ( UT_InfoTree tree,
const OP_NodeInfoTreeParms parms 
)

Fill in 'tree' with details that are common to all operator types. Then call fillInfoTreeOperatorSpecific() to get specific details about this specific operator

virtual void OP_Operator::fillInfoTreeOperatorSpecific ( UT_InfoTree tree,
const OP_NodeInfoTreeParms parms 
)
virtual

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

Reimplemented in OP_ScriptOperator.

virtual void OP_Operator::forceUpdateParmTemplates ( )
virtual

Reimplemented in OP_ScriptOperator.

OP_Node* OP_Operator::getActiveNode ( int  i) const
PRM_Template* OP_Operator::getBaseOverrideLayoutParmTemplates ( )
inline

Returns the parm templates that are base to the final parameter layout if the layout is overridden by a custom dialog script. Returns nullptr if the parameter layout is not overridden.

Definition at line 443 of file OP_Operator.h.

virtual const PRM_Template* OP_Operator::getBaseParmTemplates ( )
inlinevirtual

Exists only for script/HDA operators. Returns the parm templates that are base to the HDA parameters.

Reimplemented in VOP_ScriptOperator.

Definition at line 438 of file OP_Operator.h.

void OP_Operator::getCachedEventScriptPaths ( UT_StringArray events,
UT_StringArray paths,
bool  only_nonempty 
) const
OP_OperatorTable* OP_Operator::getChildOperatorTable ( ) const
const UT_StringHolder& OP_Operator::getChildTableName ( ) const
void OP_Operator::getComment ( UT_String comment)
UT_StringHolder OP_Operator::getContentsSection ( )
static const char* OP_Operator::getCurrentPythonModuleKey ( )
static
virtual UT_Color OP_Operator::getDefaultColor ( ) const
virtual
static void OP_Operator::getDefaultIconName ( const char *  tablename,
const char *  opname,
UT_String iconname 
)
static
virtual const UT_StringHolder& OP_Operator::getDefaultShape ( ) const
virtual
void OP_Operator::getDefaultState ( UT_String statename)
OP_Node* OP_Operator::getDefiningNetwork ( ) const
void OP_Operator::getDefinitionSectionName ( UT_String sectname) const

Returns an official name of the library section that contains the HDA definition eg "Object/hda".

void OP_Operator::getDefinitionSource ( UT_String defsource) const
void OP_Operator::getDescriptiveParmName ( UT_String descrparm)
void OP_Operator::getDiveTarget ( UT_String divetarget)
void OP_Operator::getEditableSubNodes ( UT_String pattern)
static PRM_Template* OP_Operator::getEmptyTemplateList ( )
static
const UT_StringHolder& OP_Operator::getEnglish ( ) const
inline

Definition at line 220 of file OP_Operator.h.

const UT_StringHolder& OP_Operator::getExtraInfo ( ) const
inline

Definition at line 293 of file OP_Operator.h.

const OP_ExtraInfoBuffer& OP_Operator::getExtraInfoBuffer ( ) const
inline

Definition at line 295 of file OP_Operator.h.

void OP_Operator::getFunctionName ( UT_String function_name)
virtual bool OP_Operator::getHDKHelp ( UT_String ) const
inlinevirtual

Definition at line 225 of file OP_Operator.h.

void OP_Operator::getHelpFileDirAndName ( UT_String script_dir,
UT_String name 
)
const char* OP_Operator::getIconName ( ) const
const UT_StringHolder& OP_Operator::getIndexFile ( ) const
inline

Definition at line 269 of file OP_Operator.h.

const UT_StringHolder& OP_Operator::getIndexPath ( ) const
inline

Definition at line 267 of file OP_Operator.h.

const UT_Array<bool>& OP_Operator::getInputAreReferences ( ) const
inline

Accessing operator inputs name, label, and reference flag.

Definition at line 553 of file OP_Operator.h.

const OP_InputDataEditorConfigEx& OP_Operator::getInputDataEditorConfigEx ( ) const
inline

Definition at line 586 of file OP_Operator.h.

bool OP_Operator::getInputIsReference ( int  idx) const

Accessing operator inputs name, label, and reference flag.

const UT_StringHolder& OP_Operator::getInputLabel ( int  idx) const

Accessing operator inputs name, label, and reference flag.

const UT_StringArray& OP_Operator::getInputLabels ( ) const
inline

Accessing operator inputs name, label, and reference flag.

Definition at line 550 of file OP_Operator.h.

const UT_StringHolder& OP_Operator::getInputName ( int  idx) const

Accessing operator inputs name, label, and reference flag.

const UT_StringArray& OP_Operator::getInputNames ( ) const
inline

Accessing operator inputs name, label, and reference flag.

Definition at line 547 of file OP_Operator.h.

bool OP_Operator::getIsDummyDefinition ( ) const
inline

Definition at line 283 of file OP_Operator.h.

bool OP_Operator::getIsPrimarySubnetType ( ) const
inline

Test to see if this is the primary "subnet" operator for the table. This is the operator type which is used as a default container for nodes. There should only be one of these defined.

Definition at line 497 of file OP_Operator.h.

PRM_ScriptImports* OP_Operator::getLayoutParmTemplateImports ( )
PRM_Template* OP_Operator::getLayoutParmTemplates ( )

Returns the operator's parameter templates in their final parameter layout. This can return nullptr if the operator is not a script/HDA / operator and if the operator's parameter layout is not overridden by a custom dialog script.

const UT_StringArray* OP_Operator::getLegacyInputsIndexMap ( ) const

Sets an array that maps an old input index to a new input name. It is used for handling legacy H11 hip files, where nodes were saved with indices only. If an operator definition is changed (ie, inputs get inserted or reordered), it is necessary to provide this mapping, to be able to load legacy hip files. If op definition does not change, there is no need to define this mapping, since the default assignment of input index will still work. Also it is not needed for handling newer hip files that save the input name information and can handle input order change in new op definition. The map is given as a sequence of input names eg "name1 name2".

void OP_Operator::getLegacyInputsMap ( UT_String map) const

Sets an array that maps an old input index to a new input name. It is used for handling legacy H11 hip files, where nodes were saved with indices only. If an operator definition is changed (ie, inputs get inserted or reordered), it is necessary to provide this mapping, to be able to load legacy hip files. If op definition does not change, there is no need to define this mapping, since the default assignment of input index will still work. Also it is not needed for handling newer hip files that save the input name information and can handle input order change in new op definition. The map is given as a sequence of input names eg "name1 name2".

OP_OTLLicenseType OP_Operator::getLicense ( )
const UT_StringHolder& OP_Operator::getMessageSubNodes ( ) const
time_t OP_Operator::getModTime ( ) const
inline

Definition at line 281 of file OP_Operator.h.

const UT_StringHolder& OP_Operator::getName ( ) const
inline
Examples:
expr/functions.C, and VOP/VOP_CustomContext.C.

Definition at line 208 of file OP_Operator.h.

int OP_Operator::getNumActiveNodes ( ) const
virtual PRM_Template* OP_Operator::getObsoleteTemplates ( )
inlinevirtual

Definition at line 446 of file OP_Operator.h.

void OP_Operator::getOpBasedFileName ( UT_String filename)

Returns a file name corresponding to the operator name. In most cases, the file name is the same as the operator name, but since it has to be acceptable by all file systems, some invalid characters may be converted to dashes (eg, the namespace semicolons which cause problems on Windows).

void OP_Operator::getOpBasedFileName ( UT_WorkBuffer filename)

Returns a file name corresponding to the operator name. In most cases, the file name is the same as the operator name, but since it has to be acceptable by all file systems, some invalid characters may be converted to dashes (eg, the namespace semicolons which cause problems on Windows).

virtual const char* OP_Operator::getOperatorShortHelpString ( )
virtual

Reimplemented in OP_ScriptOperator.

virtual void OP_Operator::getOperatorSpecificInfoText ( int  verbose,
UT_WorkBuffer text 
)
virtual

Reimplemented in OP_ScriptOperator, and DOP_Operator.

virtual bool OP_Operator::getOpHelpURL ( UT_String url)
virtual
virtual OP_SpecificData* OP_Operator::getOpSpecificData ( )
inlinevirtual

Reimplemented in SHOP_Operator, DOP_Operator, VOP_ScriptOperator, and VOP_Operator.

Definition at line 203 of file OP_Operator.h.

virtual const OP_SpecificData* OP_Operator::getOpSpecificData ( ) const
inlinevirtual

Reimplemented in SHOP_Operator, DOP_Operator, VOP_ScriptOperator, and VOP_Operator.

Definition at line 205 of file OP_Operator.h.

virtual bool OP_Operator::getOpTabSubMenuPath ( UT_String tab_submenu_path)
virtual
const OP_OTLDefinition& OP_Operator::getOTLDefinition ( ) const
inline

Definition at line 300 of file OP_Operator.h.

bool OP_Operator::getOTLHelp ( UT_String str)
FS_IndexFile* OP_Operator::getOTLIndexFile ( bool  check_timestamp = true)
inline

Definition at line 316 of file OP_Operator.h.

FS_IndexFileHandle OP_Operator::getOTLIndexFilePtr ( bool  check_timestamp = true)
OP_OTLLibrary* OP_Operator::getOTLLibrary ( )
inline

Definition at line 306 of file OP_Operator.h.

const UT_StringHolder& OP_Operator::getOutputLabel ( int  idx) const

Accessing operator outputs label.

const UT_StringArray& OP_Operator::getOutputLabels ( ) const
inline

Accessing operator outputs label.

Definition at line 559 of file OP_Operator.h.

bool OP_Operator::getOverrideLayoutParmTemplateFile ( UT_String ds_path) const

Pass back the file path of the .ds file that was loaded to override the operator's parameter templates. Return true if such a file was found and loaded. Return false if no .ds override file was found.

PRM_ScriptImports* OP_Operator::getParmTemplateImports ( )
PRM_Template* OP_Operator::getParmTemplates ( )

Returns the operator's parameter templates with base parameters appearing first (if they exist for script/HDA operators) followed by non-base parameters.

If getLayoutParmTemplates() returns nullptr, then getParmTemplates() can be used for the parameter layout.

unsigned OP_Operator::getPermissionMask ( ) const
PRM_PresetInfo* OP_Operator::getPresetInfo ( )
PY_EvaluationContext* OP_Operator::getPythonModuleDicts ( )
inline

Definition at line 712 of file OP_Operator.h.

virtual void OP_Operator::getRefreshPICommands ( OP_Node ,
std::ostream &   
)
inlinevirtual

Reimplemented in PI_ScriptOperator.

Definition at line 567 of file OP_Operator.h.

RSL_ContextType OP_Operator::getRslContextType ( ) const
inline

Definition at line 279 of file OP_Operator.h.

bool OP_Operator::getScriptIsPython ( ) const
inline

Definition at line 287 of file OP_Operator.h.

bool OP_Operator::getScriptIsRsl ( ) const
inline

Definition at line 275 of file OP_Operator.h.

bool OP_Operator::getScriptIsSubnet ( ) const
inline

Definition at line 271 of file OP_Operator.h.

bool OP_Operator::getScriptIsVex ( ) const
inline

Definition at line 273 of file OP_Operator.h.

void OP_Operator::getSecondaryFunctionsNames ( UT_StringMap< UT_StringHolder > &  functions)
virtual bool OP_Operator::getSectionData ( const UT_StringRef name,
UT_StringHolder value 
) const
virtual
OP_OperatorTable* OP_Operator::getTable ( ) const
void OP_Operator::getTableAndName ( UT_WorkBuffer name) const
inline

Get the op table name and the op name concatenated together to get a unique name. Returns full name with table, including namespace and version tags if there are any, eg "artistA::table/op::2.0"

Definition at line 215 of file OP_Operator.h.

void OP_Operator::getTableAndName ( UT_String name) const
inline

Definition at line 217 of file OP_Operator.h.

const char* OP_Operator::getTableName ( ) const
CH_LocalVariable* OP_Operator::getVariable ( int  i) const
CH_LocalVariable* OP_Operator::getVariable ( const char *  name) const
int OP_Operator::getVariableCount ( ) const
inline

Definition at line 461 of file OP_Operator.h.

CH_LocalVariable* OP_Operator::getVariables ( ) const
inline

Definition at line 460 of file OP_Operator.h.

virtual bool OP_Operator::getVersion ( UT_String version)
virtual

For HDAs, getVersion will return the version number defined by its HDA definition, or the empty string if it does not exist. For non-HDA's (ie. native or HDK node types), it will return the Houdini version X.Y.Z.W string that we were compiled with. Subclasses may override this to provide different numbering. One of the uses of this function to determine if loading a node's parameters needs to be upgraded.

Reimplemented in DOP_AutoOperator.

VEX_ContextType OP_Operator::getVexContextType ( ) const
inline

Definition at line 277 of file OP_Operator.h.

PY_EvaluationContext* OP_Operator::getViewerHandleModuleDicts ( )
inline

Definition at line 724 of file OP_Operator.h.

PY_EvaluationContext* OP_Operator::getViewerStateModuleDicts ( )
inline

Definition at line 718 of file OP_Operator.h.

bool OP_Operator::hasContentsSection ( )
bool OP_Operator::hasEditableInputData ( ) const
inline

Definition at line 490 of file OP_Operator.h.

virtual bool OP_Operator::hasLoadedParmTemplates ( ) const
virtual

Reimplemented in OP_ScriptOperator.

bool OP_Operator::hasLoadedPythonModuleSection ( ) const
inline

Definition at line 714 of file OP_Operator.h.

bool OP_Operator::hasLoadedViewerHandleModuleSection ( ) const
inline

Definition at line 726 of file OP_Operator.h.

bool OP_Operator::hasLoadedViewerStateModuleSection ( ) const
inline

Definition at line 720 of file OP_Operator.h.

bool OP_Operator::hasNodeLoadingContentsSection ( ) const
inline

Definition at line 509 of file OP_Operator.h.

bool OP_Operator::hasPotentialEditableSubNodes ( )

Returns true if the editable subnodes pattern isn't empty It may or may not match any actual nodes.

virtual bool OP_Operator::hasSectionData ( const UT_StringRef name) const
virtual
void OP_Operator::informOfTabMenuFlagChange ( )
bool OP_Operator::isBlackBoxed ( )

Returns true if this operator is black boxed, and false otherwise.

bool OP_Operator::isChangingParmTemplates ( ) const
inline

Definition at line 505 of file OP_Operator.h.

bool OP_Operator::isCompiled ( )

Returns true if this operator comes from a compiled OTL, false otherwise.

bool OP_Operator::isCreatingNode ( ) const
inline

Definition at line 501 of file OP_Operator.h.

bool OP_Operator::isCustomDSO ( ) const
bool OP_Operator::isGenerator ( ) const
inline

Definition at line 469 of file OP_Operator.h.

bool OP_Operator::isManagementOp ( ) const
inline

Definition at line 482 of file OP_Operator.h.

bool OP_Operator::isNetwork ( ) const
inline

Definition at line 465 of file OP_Operator.h.

bool OP_Operator::isOutputOp ( ) const
inline

Definition at line 486 of file OP_Operator.h.

bool OP_Operator::isScriptedOp ( ) const
inline

Definition at line 473 of file OP_Operator.h.

bool OP_Operator::isThreadSafe ( ) const
inline

Is this operator type thread-safe for cooking? OP_Node::cook() calls this to determine if serialization is needed. DEFAULT: false

Definition at line 742 of file OP_Operator.h.

void OP_Operator::listContainedOperators ( UT_StringSet contents_list)

List all operators found in the contents section.

bool OP_Operator::loadAndCreateLayoutParmTemplates ( PRM_ScriptPage page,
DS_Stream ds_is,
PRM_Template *&  base_tplates,
PRM_Template *&  layout_tplates,
PRM_ScriptImports *&  imports,
PRM_Template *&  tplates,
int  base_controls_switcher_index,
int  base_controls_insert_index,
int  base_controls_switcher_page_num,
PRM_Default *&  base_controls_switcher_defaults,
bool  hide_default_parms 
)
protected

Load parameter templates from the specified file stream.

static int OP_Operator::loadFromOpType ( const char *  fname,
const char *  savedir 
)
static
virtual bool OP_Operator::loadParmTemplatesSubclass ( )
protectedvirtual

Reimplemented in OP_ScriptOperator.

void OP_Operator::loadPythonModuleSection ( bool  force = false)
OP_SpareParms* OP_Operator::loadSpareParms ( UT_IStream is)
void OP_Operator::loadViewerHandleModuleSection ( bool  force = false)
void OP_Operator::loadViewerStateModuleSection ( bool  force = false)
static const OP_Operator* OP_Operator::mapSecurityKeyToOperator ( const char *  key)
static
unsigned OP_Operator::maxInputs ( ) const
inline

Definition at line 374 of file OP_Operator.h.

virtual unsigned OP_Operator::maxOutputs ( )
inlinevirtual

Reimplemented in DOP_Operator, VOP_ScriptOperator, SHOP_Operator, and VOP_Operator.

Definition at line 405 of file OP_Operator.h.

unsigned OP_Operator::minInputs ( ) const
inline

Definition at line 372 of file OP_Operator.h.

void OP_Operator::nodeDestroyed ( OP_Node node)
void OP_Operator::notifyActiveNodesOfTemplatesUpdate ( )
protected
void OP_Operator::notifyUpdateTemplatesSinksOfDelete ( )
protected
void OP_Operator::notifyUpdateTemplatesSinksOfUpdate ( )
protected
int OP_Operator::numOrderedInputs ( ) const
inline

The number of ordered inputs on a node that remain separate even on nodes that have a variable number of inputs. These separate inputs always start at the beginning (variable input connectors are always last).

Definition at line 384 of file OP_Operator.h.

static int OP_Operator::operatorNameCompare ( const OP_Operator a,
const OP_Operator b 
)
inlinestatic

Definition at line 765 of file OP_Operator.h.

static void OP_Operator::registerPythonModuleKeyClient ( void client)
static
static void OP_Operator::removeCmdOverrides ( UT_FileUtil fu,
const char *  path,
const char *  tablename,
const char *  opname,
int  flags 
)
static
static void OP_Operator::removeHelpCardOverrides ( UT_FileUtil fu,
const char *  path,
const char *  tablename,
const char *  opname,
int  flags 
)
static
static void OP_Operator::removeIconOverrides ( UT_FileUtil fu,
const char *  path,
const char *  tablename,
const char *  opname,
int  flags 
)
static
static void OP_Operator::removeRenameOverrides ( UT_FileUtil fu,
const char *  path,
const char *  tablename,
const char *  opname,
int  flags 
)
static
void OP_Operator::resetVariables ( OP_VariablePair variable_pair)
bool OP_Operator::runEventScript ( const char *  event,
OP_Node node_arg = nullptr,
bool  full_path = false,
UT_Options extra_args = nullptr,
bool *  node_deleted_by_script = nullptr 
)
void OP_Operator::setDefaultIconName ( )
void OP_Operator::setDefinition ( const char *  def)
void OP_Operator::setDescriptiveParmName ( const UT_StringHolder parm)
inlineprotected

Definition at line 788 of file OP_Operator.h.

void OP_Operator::setEnglish ( const char *  english)
void OP_Operator::setIconName ( const char *  name)
void OP_Operator::setInputDataEditorConfig ( const OP_InputDataEditorConfig config)
void OP_Operator::setInputDataEditorConfigEx ( const OP_InputDataEditorConfigEx config)
inline

Definition at line 588 of file OP_Operator.h.

void OP_Operator::setIsGenerator ( bool  isgen)
void OP_Operator::setIsThreadSafe ( bool  is_safe)
inline

This function is used to specify whether a particular operator type can be cooked in a multi-threaded manner.

Definition at line 747 of file OP_Operator.h.

void OP_Operator::setLegacyInputsMap ( const char *  map)

Sets an array that maps an old input index to a new input name. It is used for handling legacy H11 hip files, where nodes were saved with indices only. If an operator definition is changed (ie, inputs get inserted or reordered), it is necessary to provide this mapping, to be able to load legacy hip files. If op definition does not change, there is no need to define this mapping, since the default assignment of input index will still work. Also it is not needed for handling newer hip files that save the input name information and can handle input order change in new op definition. The map is given as a sequence of input names eg "name1 name2".

void OP_Operator::setMaxInputs ( int  inputs)
void OP_Operator::setMinInputs ( int  inputs)
virtual void OP_Operator::setName ( const char *  name)
virtual
void OP_Operator::setNumOrderedInputs ( int  inputs)
inline

The number of ordered inputs on a node that remain separate even on nodes that have a variable number of inputs. These separate inputs always start at the beginning (variable input connectors are always last).

Definition at line 382 of file OP_Operator.h.

void OP_Operator::setObsoleteTemplates ( PRM_Template tmpl)
inline

Definition at line 448 of file OP_Operator.h.

void OP_Operator::setOpTabSubMenuPath ( const char *  tab_submenu_path)
void OP_Operator::setOTLDefinition ( const OP_OTLDefinition definition)
void OP_Operator::setOTLLibrary ( OP_OTLLibrary library)
inline

Definition at line 304 of file OP_Operator.h.

void OP_Operator::setScriptIsPython ( bool  is_python)
inline

Definition at line 289 of file OP_Operator.h.

bool OP_Operator::shouldPreserve ( ) const
inline

Returns true if the operator should be preserved by op director, when elimiating unused HDAs during a library refresh.

Definition at line 525 of file OP_Operator.h.

static int OP_Operator::uninstallOpType ( const char *  path,
const char *  tablename,
const char *  opname,
const char *  indexpath,
const char *  indexfile 
)
static
bool OP_Operator::unorderedInputs ( ) const
inline

Definition at line 478 of file OP_Operator.h.

virtual int OP_Operator::updateParmTemplates ( )
virtual

Reimplemented in VOP_ScriptOperator, and OP_ScriptOperator.

void OP_Operator::updatePresetInfo ( )
static bool OP_Operator::verifyPythonModuleKeyClient ( const OP_Operator op,
void client 
)
static
virtual bool OP_Operator::wantsInputEditor ( ) const
virtual
virtual bool OP_Operator::wantsOutputNameEditor ( ) const
virtual

Reimplemented in VOP_Operator.

virtual bool OP_Operator::wantsParametersAnimatable ( ) const
virtual

Reimplemented in VOP_ScriptOperator.

virtual bool OP_Operator::wantsParentInputs ( ) const
virtual

Reimplemented in VOP_ScriptOperator, and VOP_Operator.

virtual bool OP_Operator::wantsParmOrderEditor ( ) const
virtual

Reimplemented in VOP_Operator.

Friends And Related Function Documentation

friend class OP_OperatorTable
friend

Definition at line 936 of file OP_Operator.h.

Definition at line 938 of file OP_Operator.h.

friend class SHOP_ScriptOperator
friend

Definition at line 937 of file OP_Operator.h.

Member Data Documentation

PRM_Template* OP_Operator::myBase
protected

Definition at line 814 of file OP_Operator.h.

PRM_Template* OP_Operator::myBaseOverrideLayout
protected

Definition at line 813 of file OP_Operator.h.

UT_StringHolder OP_Operator::myChildTableName
protected

Definition at line 824 of file OP_Operator.h.

unsigned OP_Operator::myFlags
protected

Definition at line 830 of file OP_Operator.h.

bool OP_Operator::myHasContentsSection
protected

Definition at line 831 of file OP_Operator.h.

PRM_ScriptImports* OP_Operator::myImports
protected

Definition at line 810 of file OP_Operator.h.

OP_InputDataEditorConfigEx OP_Operator::myInputDataEditorConfig
protected

Definition at line 827 of file OP_Operator.h.

UT_StringArray OP_Operator::myInputLabels
protected

Definition at line 818 of file OP_Operator.h.

UT_StringArray OP_Operator::myInputNames
protected

Definition at line 817 of file OP_Operator.h.

UT_Array<bool> OP_Operator::myInputReferences
protected

Definition at line 821 of file OP_Operator.h.

PRM_ScriptImports* OP_Operator::myLayoutParmImports
protected

Definition at line 812 of file OP_Operator.h.

PRM_Template* OP_Operator::myLayoutParmTemplates
protected

Definition at line 811 of file OP_Operator.h.

int OP_Operator::myNvariables
protected

Definition at line 823 of file OP_Operator.h.

PRM_Template* OP_Operator::myObsoleteTemplates
protected

Definition at line 816 of file OP_Operator.h.

OP_OTLDefinition OP_Operator::myOTLDefinition
protected

Definition at line 826 of file OP_Operator.h.

UT_StringArray OP_Operator::myOutputLabels
protected

Definition at line 819 of file OP_Operator.h.

UT_SharedPtr<PRM_ScriptPage> OP_Operator::myOverrideLayoutParmScriptPage
protected

Definition at line 839 of file OP_Operator.h.

PRM_Template* OP_Operator::myParmTemplates
protected

Definition at line 809 of file OP_Operator.h.

bool OP_Operator::myParmTemplatesLoaded
protected

Definition at line 815 of file OP_Operator.h.

RSL_ContextType OP_Operator::myRslContextType
protected

Definition at line 829 of file OP_Operator.h.

UT_DeepString OP_Operator::myTabSubmenuPath
protected

Definition at line 820 of file OP_Operator.h.

CH_LocalVariable* OP_Operator::myVariables
protected

Definition at line 822 of file OP_Operator.h.

VEX_ContextType OP_Operator::myVexContextType
protected

Definition at line 828 of file OP_Operator.h.


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