10 #define __HOM_Node_h__
55 virtual std::vector<std::string> _getArgumentAutoComplete(
56 const char *method_name,
const char *arguments,
57 bool meta_info_only =
false) = 0;
59 int __hash__()
override = 0;
70 bool verbose =
false,
bool debug =
false,
int output_index = 0) = 0;
71 virtual bool isNetwork() = 0;
84 virtual bool isDisplayDescriptiveNameFlagSet() = 0;
85 virtual void setDisplayDescriptiveNameFlag(
bool on) = 0;
86 virtual int outputForViewFlag() = 0;
87 virtual void setOutputForViewFlag(
int output) = 0;
93 virtual int opTypeIdAsInt() = 0;
98 virtual int objTypeAsInt() = 0;
102 virtual HOM_Node* node(
const char* node_path) = 0;
106 const std::vector<std::string>& node_paths) = 0;
108 SWIGOUT(%kwargs cookPathNodes;)
117 const std::vector<std::string>& item_paths) = 0;
121 const char *
pattern,
bool ignore_case=
false) = 0;
123 SWIGOUT(%kwargs recursiveGlob;)
127 bool include_subnets =
true) = 0;
129 SWIGOUT(%newobject createNode;)
132 const char* node_type_name,
133 const char* node_name=NULL,
134 bool run_init_scripts=
true,
135 bool load_contents=
true,
136 bool exact_type_name=
false,
137 bool force_valid_node_name=
false) = 0;
138 virtual void runInitScripts() = 0;
139 virtual void createOrMoveVisualizer(
int output_index) = 0;
141 virtual int inputIndex(
const char *input_name) = 0;
142 virtual int outputIndex(
const char *output_name) = 0;
144 virtual void setInput(
147 int output_index = 0) = 0;
149 virtual void setNamedInput(
150 const char *input_name,
152 const char *output_name) = 0;
154 virtual void setNamedInput(
155 const char *input_name,
157 int output_index) = 0;
159 virtual void setFirstInput(
161 int output_index = 0) = 0;
164 virtual void setNextInput(
166 int output_index = 0,
167 bool unordered_only =
false) = 0;
169 virtual void insertInput(
172 int output_index = 0) = 0;
174 virtual int numOrderedInputs() = 0;
176 virtual std::vector<HOM_ElemPtr<HOM_Node> > inputs() = 0;
180 virtual HOM_Node *inputFollowingOutputs(
int input_index) = 0;
182 virtual std::vector<HOM_ElemPtr<HOM_NodeConnection> > inputConnections() = 0;
184 SWIGOUT(%newobject inputConnectors;)
186 inputConnectors() = 0;
188 SWIGOUT(%kwargs inputAncestors;)
190 bool include_ref_inputs =
true,
191 bool follow_subnets =
false,
192 bool only_used_inputs =
false) = 0;
194 virtual std::vector<std::string> inputNames() = 0;
195 virtual std::vector<std::string> inputLabels() = 0;
197 virtual std::map<std::string, std::string> editableInputStrings(
198 int input_index) = 0;
199 virtual std::string editableInputString(
int input_index,
200 const char *key) = 0;
201 virtual void setEditableInputString(
int input_index,
202 const char *key,
const char *
value) = 0;
204 virtual std::vector<std::string> outputNames() = 0;
205 virtual std::vector<std::string> outputLabels() = 0;
207 virtual std::vector<HOM_ElemPtr<HOM_Node> > outputs() = 0;
209 virtual std::vector<HOM_ElemPtr<HOM_NodeConnection> >
210 outputConnections() = 0;
212 SWIGOUT(%newobject outputConnectors;)
214 outputConnectors() = 0;
219 references(
bool include_children=
true) = 0;
222 dependents(
bool include_children=
true) = 0;
225 virtual std::vector<HOM_ElemPtr<HOM_Node> > children() = 0;
226 SWIGOUT(%kwargs allSubChildren;)
228 bool top_down =
true,
bool recurse_in_locked_nodes =
true) = 0;
229 SWIGOUT(%kwargs selectedChildren;)
231 bool include_hidden =
false,
232 bool include_hidden_support_nodes =
false) = 0;
234 virtual std::vector<HOM_ElemPtr<HOM_NetworkMovableItem> > allItems() = 0;
235 SWIGOUT(%kwargs selectedItems;)
237 bool include_hidden =
false,
238 bool include_hidden_support_nodes =
false) = 0;
241 bool selected_only =
false,
242 bool include_hidden =
false) = 0;
246 virtual void deleteItems(
247 const std::vector<HOM_NetworkMovableItem *>&
248 items = std::vector<HOM_NetworkMovableItem *>(),
249 bool disable_safety_checks =
false) = 0;
250 virtual void copyItemsToClipboard(
251 const std::vector<HOM_NetworkMovableItem *> &items =
252 std::vector<HOM_NetworkMovableItem *>()) = 0;
253 virtual void pasteItemsFromClipboard(
HOM_Vector2 *position = NULL) = 0;
256 const std::vector<HOM_NetworkMovableItem *> &items,
257 bool channel_reference_originals=
false,
258 bool relative_references=
true,
259 bool connect_outputs_to_multi_inputs=
false) = 0;
263 virtual bool isInsideLockedHDA() = 0;
264 virtual bool isEditableInsideLockedHDA() = 0;
265 virtual bool isEditable() = 0;
266 virtual bool isLockedHDA() = 0;
267 virtual bool isCompiled() = 0;
268 virtual bool isMaterialManager() = 0;
273 SWIGOUT(%newobject hdaViewerStateModule;)
276 SWIGOUT(%newobject hdaViewerHandleModule;)
282 {
return hdaModule(); }
284 SWIGOUT(%newobject moveToGoodPosition;)
285 SWIGOUT(%kwargs moveToGoodPosition;)
286 virtual HOM_Vector2 *moveToGoodPosition(
bool relative_to_inputs =
true,
287 bool move_inputs =
true,
288 bool move_outputs =
true,
289 bool move_unconnected =
true) = 0;
293 SWIGOUT(%kwargs layoutChildren);
294 virtual void layoutChildren
295 (
const std::vector<HOM_NetworkMovableItem *> &items =
296 std::vector<HOM_NetworkMovableItem *>(),
297 double horizontal_spacing=-1,
double vertical_spacing=-1) = 0;
299 virtual bool isCurrent() = 0;
301 virtual void setCurrent(
bool on,
bool clear_all_selected =
false) = 0;
303 virtual bool isHidden() = 0;
304 virtual void hide(
bool on) = 0;
307 virtual void setComment(
const char *comment) = 0;
308 virtual void appendComment(
const char *comment) = 0;
311 virtual void setCreatorState(
const char *state) = 0;
313 virtual bool isBuiltExplicitly() = 0;
314 virtual void setBuiltExplicitly(
bool built_explicitly) = 0;
317 virtual void setExpressionLanguage(
HOM_EnumValue &language) = 0;
320 virtual HOM_Parm *parm(
const char* parm_path) = 0;
327 const char *
pattern,
bool ignore_case=
false,
328 bool search_label=
false,
329 bool single_pattern=
false) = 0;
331 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parms() = 0;
333 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parmsReferencingThis() = 0;
335 virtual std::vector<HOM_ElemPtr<HOM_ParmTuple> > parmTuples() = 0;
337 virtual std::vector<HOM_ElemPtr<HOM_Parm> > spareParms() = 0;
338 virtual void removeSpareParms() = 0;
340 virtual void syncNodeVersionIfNeeded(
const std::string &from_version) = 0;
342 SWIGOUT(%kwargs setParmTemplateGroup;)
343 virtual void setParmTemplateGroup(
345 bool rename_conflicting_parms=
false) = 0;
348 virtual std::vector<HOM_ElemPtr<HOM_ParmTuple> > parmTuplesInFolder(
349 const std::vector<std::string> &folder_names) = 0;
351 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parmsInFolder(
352 const std::vector<std::string> &folder_names) = 0;
354 SWIGOUT(%newobject parmTemplateGroup;)
357 virtual std::vector<std::string> localVariables() = 0;
358 virtual std::vector<std::string> localAttributes() = 0;
363 virtual void destroy(
bool disable_safety_checks=
false) = 0;
366 SWIGOUT(%kwargs allowEditingOfContents;)
367 virtual void allowEditingOfContents(
bool propagate=
false) = 0;
368 virtual void matchCurrentDefinition() = 0;
369 virtual bool matchesCurrentDefinition() = 0;
373 parmAliases(
bool recurse=
false) = 0;
375 virtual void clearParmAliases() = 0;
377 virtual std::vector<HOM_ElemPtr<HOM_NetworkBox> > networkBoxes() = 0;
379 SWIGOUT(%newobject iterNetworkBoxes;)
380 virtual HOM_IterableList<HOM_NetworkBox> *iterNetworkBoxes() = 0;
382 SWIGOUT(%newobject createNetworkBox;)
385 SWIGOUT(%newobject copyNetworkBox;)
387 const char *new_name=NULL,
bool channel_reference_original=
false) = 0;
389 SWIGOUT(%newobject findNetworkBox;)
392 virtual std::vector<HOM_ElemPtr<HOM_NetworkBox> >
393 findNetworkBoxes(
const char *
pattern) = 0;
395 virtual std::vector<HOM_ElemPtr<HOM_NetworkDot> > networkDots() = 0;
397 SWIGOUT(%newobject createNetworkDot;)
400 SWIGOUT(%kwargs changeNodeType);
401 SWIGOUT(%newobject changeNodeType;)
402 virtual HOM_Node *changeNodeType(
const char *new_node_type,
403 bool keep_name=
true,
bool keep_parms=
true,
404 bool keep_network_contents=
true,
405 bool force_change_on_node_type_match=
false) = 0;
407 virtual bool canCreateDigitalAsset() = 0;
408 SWIGOUT(%kwargs createDigitalAsset);
409 SWIGOUT(%newobject createDigitalAsset;)
410 virtual HOM_Node *createDigitalAsset(
const char *
name=NULL,
411 const char *hda_file_name=NULL,
const char *description=NULL,
412 int min_num_inputs=0,
int max_num_inputs=0,
413 bool compress_contents=
false,
const char *comment=NULL,
414 const char *
version=NULL,
bool save_as_embedded=
false,
415 bool ignore_external_references=
false,
416 bool compile_asset =
false,
417 bool change_node_type =
true,
418 bool create_backup =
true,
419 const char *install_path=NULL) = 0;
421 SWIGOUT(%kwargs createCompiledDigitalAsset);
422 virtual void createCompiledDigitalAsset(
const char *
name=NULL,
423 const char *hda_file_name=NULL,
const char *description=NULL) = 0;
426 SWIGOUT(%kwargs collapseIntoSubnet;)
427 SWIGOUT(%newobject collapseIntoSubnet;)
428 virtual HOM_Node *collapseIntoSubnet(
429 const std::vector<HOM_NetworkMovableItem*> &child_items,
430 const char *subnet_name=NULL,
const char *subnet_type=NULL) = 0;
432 virtual std::vector<HOM_ElemPtr<HOM_NetworkMovableItem> >
433 extractAndDelete() = 0;
435 virtual std::vector<HOM_ElemPtr<HOM_SubnetIndirectInput> >
436 indirectInputs() = 0;
439 virtual std::vector<HOM_ElemPtr<HOM_Node> >
442 virtual bool isSubNetwork() = 0;
446 SWIGOUT(%ignore boostAnyUserData;)
448 virtual void destroyUserData(
const char *
name) = 0;
449 virtual void clearUserDataDict() = 0;
450 #if defined(USE_PYTHON3)
451 virtual std::map<std::string, std::string> userDataDict() = 0;
453 virtual std::map<std::string, HOM_BinaryString> userDataDict() = 0;
459 virtual void selectNextVisibleWorkItem() = 0;
460 virtual void selectPreviousVisibleWorkItem() = 0;
461 virtual void deselectWorkItem() = 0;
462 virtual void setCurrentTOPPage(
int page) = 0;
467 InterpreterObject userData(
const char *
name)
468 {
return HOMboostAnyToInterpreterObject(self->boostAnyUserData(name)); }
474 SWIGOUT(%ignore setOpaqueCachedUserData;)
475 virtual void setOpaqueCachedUserData(
476 const char *
name,
void *opaque_py_object) = 0;
477 SWIGOUT(%ignore opaqueCachedUserData;)
478 virtual void *opaqueCachedUserData(
const char *
name) = 0;
479 virtual void destroyCachedUserData(
const char *
name) = 0;
480 virtual void clearCachedUserDataDict() = 0;
481 virtual std::map<std::string, PY_OpaqueObject> cachedUserDataDict() = 0;
486 void setCachedUserData(
const char *
name, InterpreterObject
value)
487 {
return self->setOpaqueCachedUserData(name, value); }
489 InterpreterObject cachedUserData(
const char *name)
490 {
return HOMincRef((InterpreterObject)self->opaqueCachedUserData(name)); }
496 virtual std::vector<std::string> dataBlockKeys(
497 const char *blocktype =
nullptr) = 0;
498 virtual std::string dataBlockType(
const char *key) = 0;
501 const char *blocktype) = 0;
502 virtual void removeDataBlock(
const char *key) = 0;
508 bool save_channels_only=
false,
509 bool save_creation_commands=
true,
510 bool save_keys_in_frames=
false,
511 bool save_outgoing_wires=
false,
512 bool save_parm_values_only=
false,
513 bool save_spare_parms=
true,
514 const char *function_name=NULL) = 0;
516 virtual bool canGenerateCookCode(
bool check_parent=
false,
517 bool check_auto_shader=
true) = 0;
518 SWIGOUT(%newobject cookCodeGeneratorNode;)
519 virtual HOM_Node *cookCodeGeneratorNode() = 0;
521 virtual bool supportsMultiCookCodeContexts() = 0;
524 SWIGOUT(%kwargs saveCookCodeToFile;)
525 virtual void saveCookCodeToFile(
526 const char *file_name,
bool skip_header=
false,
527 const char *context_name = NULL) = 0;
531 const char *context_name = NULL)
532 { saveCookCodeToFile(file_name, skip_header, context_name); }
535 virtual void saveCompiledCookCodeToFile(
const char *file_name,
536 const char *context_name = NULL) = 0;
540 const char *context_name = NULL)
541 { saveCompiledCookCodeToFile(file_name, context_name); }
547 const std::vector<double> frame_range = std::vector<double>()) = 0;
549 SWIGOUT(%kwargs cookNoInterruptInternal;)
550 virtual void _cookNoInterruptInternal(
552 const std::vector<double> frame_range = std::vector<double>()) = 0;
555 virtual bool needsToCook() = 0;
557 virtual bool needsToCook(
double time) = 0;
559 virtual int cookCount() = 0;
561 virtual void updateParmStates() = 0;
564 virtual void setDeleteScript(
const std::string &script_text,
568 SWIGOUT(%newobject createStickyNote;)
569 virtual HOM_StickyNote *createStickyNote(
const char *name=NULL) = 0;
571 virtual std::vector<HOM_ElemPtr<HOM_StickyNote> > stickyNotes() = 0;
573 SWIGOUT(%newobject iterStickyNotes;)
574 virtual HOM_IterableList<HOM_StickyNote> *iterStickyNotes() = 0;
576 SWIGOUT(%newobject copyStickyNote;)
578 const char *new_name=NULL) = 0;
580 SWIGOUT(%newobject findStickyNote;)
583 SWIGOUT(%newobject findStickyNotes;)
588 SWIGOUT(%newobject addNodeGroup;)
589 virtual HOM_NodeGroup *addNodeGroup(
const char *name = NULL) = 0;
591 virtual std::vector<HOM_ElemPtr<HOM_NodeGroup> > nodeGroups() = 0;
596 virtual std::vector<std::string> errors() = 0;
597 virtual std::vector<std::string> warnings() = 0;
598 virtual std::vector<std::string> messages() = 0;
600 virtual std::string motionEffectsNetworkPath() = 0;
601 SWIGOUT(%newobject findOrCreateMotionEffectsNetwork;)
602 virtual HOM_Node *findOrCreateMotionEffectsNetwork(
bool create=
true) = 0;
604 SWIGOUT(%kwargs saveItemsToFile;)
605 virtual void saveItemsToFile(
606 const std::vector<HOM_NetworkMovableItem *> &items,
607 const char *file_name,
608 bool save_hda_fallbacks =
false) = 0;
609 SWIGOUT(%kwargs loadItemsFromFile;)
610 virtual void loadItemsFromFile(
611 const char *file_name,
bool ignore_load_warnings=
false) = 0;
613 SWIGOUT(%ignore addOpaqueEventCallback;)
614 virtual void addOpaqueEventCallback(
615 const std::vector<HOM_EnumValue *> &event_types,
616 void *py_callback) = 0;
617 SWIGOUT(%ignore addOpaqueParmCallback;)
618 virtual void addOpaqueParmCallback(
620 const std::vector<std::string> &
names) = 0;
621 SWIGOUT(%ignore removeOpaqueEventCallback;)
622 virtual void removeOpaqueEventCallback(
623 const std::vector<HOM_EnumValue *> &event_types,
624 void *py_callback) = 0;
625 virtual void removeAllEventCallbacks() = 0;
626 SWIGOUT(%ignore opaqueEventCallbacks;)
627 virtual std::vector<std::pair<std::vector<HOM_EnumValue *>,
void *> >
628 opaqueEventCallbacks() = 0;
630 virtual double stampValue(
const char *name,
double default_value) = 0;
632 const char *name,
const char *default_value) = 0;
634 virtual void *_asVoidPointer() = 0;
636 SWIGOUT(%newobject simulation;)
639 virtual std::vector<HOM_ElemPtr<HOM_Node> >
645 bool use_blosc_compression =
true,
646 double sample_rate = 0,
647 bool scoped_only =
false) = 0;
649 SWIGOUT(%kwargs _setParmClipData;)
652 bool blosc_compressed =
true,
653 double sample_rate = 0,
659 double sample_rate = 0,
660 bool scoped_only =
false) = 0;
662 SWIGOUT(%kwargs _loadParmClip;)
664 double sample_rate = 0,
667 virtual int __creationTime() = 0;
668 virtual int __modificationTime() = 0;
675 InterpreterObject evalParm(
const char *parm_path)
677 HOM_Parm *parm =
self->parm(parm_path);
680 throw HOM_OperationFailed(
"Invalid parm name");
682 InterpreterObject
result = HOMevalParm(*parm);
687 InterpreterObject evalParmTuple(
const char *parm_path)
692 throw HOM_OperationFailed(
"Invalid parm tuple name");
694 InterpreterObject
result = HOMevalParmTuple(*parm_tuple);
699 void addEventCallback(
700 const std::vector<HOM_EnumValue *> &event_types,
701 InterpreterObject callback)
702 {
self->addOpaqueEventCallback(event_types, callback); }
704 void addParmCallback(
705 InterpreterObject callback,
706 const std::vector<std::string> &
names)
707 {
self->addOpaqueParmCallback(callback,names); }
709 void removeEventCallback(
710 const std::vector<HOM_EnumValue *> &event_types,
711 InterpreterObject callback)
712 {
self->removeOpaqueEventCallback(event_types, callback); }
715 std::vector<std::pair<std::vector<HOM_EnumValue *>, InterpreterObject> >
718 std::vector<std::pair<std::vector<HOM_EnumValue *>,
void *> >
719 opaque_callbacks(self->opaqueEventCallbacks());
721 std::vector<std::pair<std::vector<HOM_EnumValue *>, InterpreterObject> >
723 for (
int i=0; i< opaque_callbacks.size(); ++i)
724 callbacks.push_back(std::make_pair(
725 opaque_callbacks[i].first,
726 (InterpreterObject)opaque_callbacks[i].second));
#define HOM_DESTRUCT_OBJECT(pointer)
void saveCodeToFile(const char *file_name, bool skip_header=false, const char *context_name=NULL)
GT_API const UT_StringHolder time
OIIO_API bool rename(string_view from, string_view to, std::string &err)
const GLuint GLenum const void * binary
GLenum GLenum GLenum input
int isTimeDependent() const
string __repr__(VtArray< T > const &self)
GLuint const GLchar * name
void saveToCompiledVexFile(const char *file_name, const char *context_name=NULL)
HOM_Node(const HOM_Node &node)
GLint GLint GLsizei GLint GLenum GLenum type
bool any(const vbool4 &v)
#define HOM_CONSTRUCT_OBJECT(pointer)
GLsizei const GLchar *const * string
bool operator!=(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Inequality operator, does exact floating point comparisons.
#define HOM_MIN_NEGATIVE_DOUBLE
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
virtual HOM_HDAModule * hm()
GLuint const GLuint * names
GT_API const UT_StringHolder version
OIIO_API void debug(string_view str)
GLsizei const GLfloat * value
bool operator==(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Equality operator, does exact floating point comparisons.