9 #ifndef __HOM_OpNode_h__
10 #define __HOM_OpNode_h__
30 virtual std::vector<std::string> _getArgumentAutoComplete(
31 const char *method_name,
const char *arguments,
32 bool meta_info_only =
false) = 0;
34 int __hash__()
override = 0;
41 virtual int opTypeIdAsInt() = 0;
46 virtual int objTypeAsInt() = 0;
48 virtual std::string creatorState() = 0;
49 virtual void setCreatorState(
const char *
state) = 0;
52 virtual std::string defaultState() = 0;
54 virtual bool isBuiltExplicitly() = 0;
55 virtual void setBuiltExplicitly(
bool built_explicitly) = 0;
58 virtual void setExpressionLanguage(
HOM_EnumValue &language) = 0;
61 virtual HOM_Parm *parm(
const char* parm_path) = 0;
69 bool search_label=
false,
70 bool single_pattern=
false) = 0;
72 virtual std::vector<HOM_ElemPtr<HOM_Parm> >
parms() = 0;
74 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parmsReferencingThis() = 0;
76 virtual std::vector<HOM_ElemPtr<HOM_ParmTuple> > parmTuples() = 0;
78 virtual std::vector<HOM_ElemPtr<HOM_Parm> > spareParms() = 0;
79 virtual void removeSpareParms() = 0;
81 virtual void revertParmInterface() = 0;
83 virtual void syncNodeVersionIfNeeded(
const std::string &from_version) = 0;
85 SWIGOUT(%kwargs setParmTemplateGroup;)
86 virtual void setParmTemplateGroup(
88 bool rename_conflicting_parms=
false) = 0;
90 virtual std::vector<HOM_ElemPtr<HOM_ParmTuple> > parmTuplesInFolder(
91 const std::vector<std::string> &folder_names) = 0;
93 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parmsInFolder(
94 const std::vector<std::string> &folder_names) = 0;
96 SWIGOUT(%newobject parmTemplateGroup;)
99 virtual std::vector<std::string> localVariables() = 0;
100 virtual std::vector<std::string> localAttributes() = 0;
103 virtual void reorderChild(
int src,
int dest) = 0;
104 SWIGOUT(%newobject copyNetworkBox;)
106 const char *new_name=NULL,
bool channel_reference_original=
false) = 0;
107 SWIGOUT(%newobject copyStickyNote;)
109 const char *new_name=NULL) = 0;
114 references(
bool include_children=
true) = 0;
117 dependents(
bool include_children=
true) = 0;
118 SWIGOUT(%kwargs fileReferences;)
119 SWIGOUT(%newobject fileReferences;)
121 fileReferences(
bool recurse =
true,
122 const char* project_dir_variable =
"HIP",
123 bool include_all_refs =
true) = 0;
124 virtual bool isTimeDependent(
bool for_last_cook=
false) = 0;
127 SWIGOUT(%kwargs allowEditingOfContents;)
128 virtual void allowEditingOfContents(
bool propagate=
false) = 0;
129 virtual void matchCurrentDefinition() = 0;
130 virtual bool matchesCurrentDefinition() = 0;
132 virtual void syncDelayedDefinition() = 0;
133 virtual bool isDelayedDefinition() = 0;
137 parmAliases(
bool recurse=
false) = 0;
138 virtual void clearParmAliases() = 0;
140 SWIGOUT(%kwargs createCompiledDigitalAsset);
141 virtual void createCompiledDigitalAsset(
const char *
name=NULL,
142 const char *hda_file_name=NULL,
const char *description=NULL) = 0;
143 virtual bool isInsideLockedHDA() = 0;
144 virtual bool isEditableInsideLockedHDA() = 0;
145 virtual bool isLockedHDA() = 0;
146 virtual bool isCompiled() = 0;
147 virtual bool isMaterialManager() = 0;
149 virtual std::string outputLabel(
int output_index) = 0;
150 virtual std::map<std::string, std::string> editableInputStrings(
151 int input_index) = 0;
152 virtual std::string editableInputString(
int input_index,
153 const char *key) = 0;
154 virtual void setEditableInputString(
int input_index,
155 const char *key,
const char *
value) = 0;
157 virtual int outputForViewFlag() = 0;
158 virtual void setOutputForViewFlag(
int output) = 0;
159 virtual bool toggleChildExportFlag() = 0;
163 SWIGOUT(%newobject hdaViewerStateModule;)
165 SWIGOUT(%newobject hdaViewerHandleModule;)
170 {
return hdaModule(); }
171 SWIGOUT(%kwargs createDigitalAsset);
172 SWIGOUT(%newobject createDigitalAsset;)
173 virtual HOM_Node *createDigitalAsset(
const char *
name=NULL,
174 const char *hda_file_name=NULL,
const char *description=NULL,
175 int min_num_inputs=0,
int max_num_inputs=0,
176 bool compress_contents=
false,
const char *comment=NULL,
177 const char *
version=NULL,
bool save_as_embedded=
false,
178 bool ignore_external_references=
false,
179 bool compile_asset =
false,
180 bool change_node_type =
true,
181 bool create_backup =
true,
182 const char *install_path=NULL) = 0;
184 SWIGOUT(%kwargs changeNodeType);
185 SWIGOUT(%newobject changeNodeType;)
186 virtual HOM_Node *changeNodeType(
const char *new_node_type,
187 bool keep_name=
true,
bool keep_parms=
true,
188 bool keep_network_contents=
true,
189 bool force_change_on_node_type_match=
false) = 0;
194 virtual void selectNextVisibleWorkItem() = 0;
195 virtual void selectPreviousVisibleWorkItem() = 0;
196 virtual void deselectWorkItem() = 0;
197 virtual void setCurrentTOPPage(
int page) = 0;
199 virtual bool canGenerateCookCode(
bool check_parent=
false,
200 bool check_auto_shader=
true) = 0;
201 SWIGOUT(%newobject cookCodeGeneratorNode;)
202 virtual HOM_Node *cookCodeGeneratorNode() = 0;
203 virtual std::string cookCodeLanguage() = 0;
204 virtual bool supportsMultiCookCodeContexts() = 0;
206 SWIGOUT(%kwargs saveCookCodeToFile;)
207 virtual void saveCookCodeToFile(
208 const char *file_name,
bool skip_header=
false,
209 const char *context_name = NULL) = 0;
213 const char *context_name = NULL)
214 { saveCookCodeToFile(file_name, skip_header, context_name); }
216 virtual void saveCompiledCookCodeToFile(
const char *file_name,
217 const char *context_name = NULL) = 0;
221 const char *context_name = NULL)
222 { saveCompiledCookCodeToFile(file_name, context_name); }
227 const std::vector<double> frame_range = std::vector<double>()) = 0;
229 SWIGOUT(%kwargs cookNoInterruptInternal;)
230 virtual void _cookNoInterruptInternal(
232 const std::vector<double> frame_range = std::vector<double>()) = 0;
235 virtual bool needsToCook() = 0;
237 virtual bool needsToCook(
double time) = 0;
239 virtual void invalidateOutput() = 0;
241 virtual int cookCount() = 0;
243 virtual std::vector<HOM_ElemPtr<HOM_Node> > cookPathNodes() = 0;
247 bool verbose =
false,
249 int output_index = 0,
250 bool force_cook =
false) = 0;
252 virtual std::map<std::string, hboost::any> infoData() = 0;
254 virtual void updateParmStates() = 0;
256 virtual void runInitScripts() = 0;
257 virtual std::string deleteScript() = 0;
258 virtual void setDeleteScript(
const std::string &script_text,
261 SWIGOUT(%newobject addNodeGroup;)
264 virtual std::vector<HOM_ElemPtr<HOM_NodeGroup> > nodeGroups() = 0;
269 virtual std::string motionEffectsNetworkPath() = 0;
270 SWIGOUT(%newobject findOrCreateMotionEffectsNetwork;)
271 virtual HOM_Node *findOrCreateMotionEffectsNetwork(
bool create=
true) = 0;
272 virtual void createOrMoveVisualizer(
int output_index) = 0;
274 SWIGOUT(%kwargs saveItemsToFile;)
275 virtual void saveItemsToFile(
276 const std::vector<HOM_NetworkMovableItem *> &items,
277 const char *file_name,
278 bool save_hda_fallbacks =
false) = 0;
279 SWIGOUT(%kwargs loadItemsFromFile;)
280 virtual void loadItemsFromFile(
281 const char *file_name,
bool ignore_load_warnings=
false) = 0;
284 virtual void addOpaqueEventCallback(
285 const std::vector<HOM_EnumValue *> &event_types,
286 void *py_callback) = 0;
288 virtual void addOpaqueParmCallback(
290 const std::vector<std::string> &names) = 0;
292 virtual void removeOpaqueEventCallback(
293 const std::vector<HOM_EnumValue *> &event_types,
294 void *py_callback) = 0;
295 virtual void removeAllEventCallbacks() = 0;
297 virtual std::vector<std::pair<std::vector<HOM_EnumValue *>,
void *> >
298 opaqueEventCallbacks() = 0;
301 virtual int getUniqueId() = 0;
303 virtual double stampValue(
const char *
name,
double default_value) = 0;
304 virtual std::string stampValue(
305 const char *
name,
const char *default_value) = 0;
309 virtual std::string asCode(
bool brief=
false,
311 bool save_channels_only=
false,
312 bool save_creation_commands=
true,
313 bool save_keys_in_frames=
false,
314 bool save_outgoing_wires=
false,
315 bool save_parm_values_only=
false,
316 bool save_spare_parms=
true,
317 bool save_box_membership=
true,
318 const char *function_name=NULL) = 0;
322 virtual std::vector<std::string> dataBlockKeys(
323 const char *blocktype =
nullptr) = 0;
324 virtual std::string dataBlockType(
const char *key) = 0;
328 const char *block_type =
nullptr) = 0;
329 virtual void removeDataBlock(
const char *key) = 0;
333 virtual void setOpaqueCachedUserData(
334 const char *
name,
void *opaque_py_object) = 0;
336 virtual void *opaqueCachedUserData(
const char *
name) = 0;
337 virtual void destroyCachedUserData(
338 const char *
name,
bool must_exist=
true) = 0;
339 virtual void clearCachedUserDataDict() = 0;
340 virtual std::map<std::string, PY_OpaqueObject> cachedUserDataDict() = 0;
345 void setCachedUserData(
const char *
name, InterpreterObject
value)
346 {
return self->setOpaqueCachedUserData(name, value); }
348 InterpreterObject cachedUserData(
const char *name)
349 {
return HOMincRef((InterpreterObject)self->opaqueCachedUserData(name)); }
353 SWIGOUT(%newobject simulation;)
356 virtual std::vector<HOM_ElemPtr<HOM_Node> >
362 bool use_blosc_compression =
true,
363 double sample_rate = 0,
364 bool scoped_only =
false) = 0;
366 SWIGOUT(%kwargs _setParmClipData;)
369 bool blosc_compressed =
true,
370 double sample_rate = 0,
373 virtual void _saveParmClip(std::string file_name,
376 double sample_rate = 0,
377 bool scoped_only =
false) = 0;
379 SWIGOUT(%kwargs _loadParmClip;)
380 virtual void _loadParmClip(std::string file_name,
381 double sample_rate = 0,
384 virtual int __creationTime() = 0;
385 virtual int __modificationTime() = 0;
386 virtual void *_asVoidPointer() = 0;
389 virtual void addError(
const char *
message = 0,
392 virtual void addWarning(
const char *
message = 0) = 0;
394 virtual void addMessage(
const char *
message = 0) = 0;
396 virtual float lastCookTime() = 0;
397 virtual std::map<std::string, hboost::any> lastCookContextOptions(
398 bool only_used_options =
false) = 0;
400 virtual HOM_EnumValue *graphEditorPaneTabType(
bool allow_cook=
false) = 0;
407 InterpreterObject evalParm(
const char *parm_path)
409 HOM_Parm *parm =
self->parm(parm_path);
412 throw HOM_OperationFailed(
"Invalid parm name");
414 InterpreterObject
result = HOMevalParm(*parm);
419 InterpreterObject evalParmTuple(
const char *parm_path)
424 throw HOM_OperationFailed(
"Invalid parm tuple name");
426 InterpreterObject
result = HOMevalParmTuple(*parm_tuple);
431 void addEventCallback(
432 const std::vector<HOM_EnumValue *> &event_types,
433 InterpreterObject callback)
434 {
self->addOpaqueEventCallback(event_types, callback); }
436 void addParmCallback(
437 InterpreterObject callback,
438 const std::vector<std::string> &names)
439 {
self->addOpaqueParmCallback(callback,names); }
441 void removeEventCallback(
442 const std::vector<HOM_EnumValue *> &event_types,
443 InterpreterObject callback)
444 {
self->removeOpaqueEventCallback(event_types, callback); }
447 std::vector<std::pair<std::vector<HOM_EnumValue *>, InterpreterObject> >
450 std::vector<std::pair<std::vector<HOM_EnumValue *>,
void *> >
451 opaque_callbacks(self->opaqueEventCallbacks());
453 std::vector<std::pair<std::vector<HOM_EnumValue *>, InterpreterObject> >
455 for (
int i=0; i< opaque_callbacks.size(); ++i)
456 callbacks.push_back(std::make_pair(
457 opaque_callbacks[i].first,
458 (InterpreterObject)opaque_callbacks[i].second));
GLuint GLsizei const GLchar * message
std::string ignore_case(std::string item)
Helper function to allow ignore_case to be passed to IsMember or Transform.
#define HOM_DESTRUCT_OBJECT(pointer)
GT_API const UT_StringHolder time
GLsizei const GLfloat * value
const GLuint GLenum const void * binary
string __repr__(VtArray< T > const &self)
**But if you need a result
void saveCodeToFile(const char *file_name, bool skip_header=false, const char *context_name=NULL)
void ignore(T const &) VULKAN_HPP_NOEXCEPT
#define HOM_CONSTRUCT_OBJECT(pointer)
#define HOM_MIN_NEGATIVE_DOUBLE
GLuint const GLchar * name
GT_API const UT_StringHolder version
OIIO_API void debug(string_view str)
GA_API const UT_StringHolder parms
HOM_OpNode(const HOM_OpNode &node)
SIM_API const UT_StringHolder force
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
virtual HOM_HDAModule * hm()
void saveToCompiledVexFile(const char *file_name, const char *context_name=NULL)