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;
41 virtual int opTypeIdAsInt() = 0;
46 virtual int objTypeAsInt() = 0;
48 virtual std::string creatorState() = 0;
49 virtual void setCreatorState(
const char *
state) = 0;
51 virtual bool isBuiltExplicitly() = 0;
52 virtual void setBuiltExplicitly(
bool built_explicitly) = 0;
55 virtual void setExpressionLanguage(
HOM_EnumValue &language) = 0;
58 virtual HOM_Parm *parm(
const char* parm_path) = 0;
66 bool search_label=
false,
67 bool single_pattern=
false) = 0;
69 virtual std::vector<HOM_ElemPtr<HOM_Parm> >
parms() = 0;
71 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parmsReferencingThis() = 0;
73 virtual std::vector<HOM_ElemPtr<HOM_ParmTuple> > parmTuples() = 0;
75 virtual std::vector<HOM_ElemPtr<HOM_Parm> > spareParms() = 0;
76 virtual void removeSpareParms() = 0;
78 virtual void revertParmInterface() = 0;
80 virtual void syncNodeVersionIfNeeded(
const std::string &from_version) = 0;
82 SWIGOUT(%kwargs setParmTemplateGroup;)
83 virtual void setParmTemplateGroup(
85 bool rename_conflicting_parms=
false) = 0;
87 virtual std::vector<HOM_ElemPtr<HOM_ParmTuple> > parmTuplesInFolder(
88 const std::vector<std::string> &folder_names) = 0;
90 virtual std::vector<HOM_ElemPtr<HOM_Parm> > parmsInFolder(
91 const std::vector<std::string> &folder_names) = 0;
93 SWIGOUT(%newobject parmTemplateGroup;)
96 virtual std::vector<std::string> localVariables() = 0;
97 virtual std::vector<std::string> localAttributes() = 0;
100 virtual void reorderChild(
int src,
int dest) = 0;
105 references(
bool include_children=
true) = 0;
108 dependents(
bool include_children=
true) = 0;
109 SWIGOUT(%kwargs fileReferences;)
110 SWIGOUT(%newobject fileReferences;)
112 fileReferences(
bool recurse =
true,
113 const char* project_dir_variable =
"HIP",
114 bool include_all_refs =
true) = 0;
115 virtual bool isTimeDependent(
bool for_last_cook=
false) = 0;
118 SWIGOUT(%kwargs allowEditingOfContents;)
119 virtual void allowEditingOfContents(
bool propagate=
false) = 0;
120 virtual void matchCurrentDefinition() = 0;
121 virtual bool matchesCurrentDefinition() = 0;
123 virtual void syncDelayedDefinition() = 0;
124 virtual bool isDelayedDefinition() = 0;
128 parmAliases(
bool recurse=
false) = 0;
130 virtual void clearParmAliases() = 0;
132 SWIGOUT(%kwargs createCompiledDigitalAsset);
133 virtual void createCompiledDigitalAsset(
const char *
name=NULL,
134 const char *hda_file_name=NULL,
const char *description=NULL) = 0;
135 virtual bool isInsideLockedHDA() = 0;
136 virtual bool isEditableInsideLockedHDA() = 0;
137 virtual bool isLockedHDA() = 0;
138 virtual bool isCompiled() = 0;
139 virtual bool isMaterialManager() = 0;
141 virtual std::string outputLabel(
int output_index) = 0;
143 virtual int outputForViewFlag() = 0;
144 virtual void setOutputForViewFlag(
int output) = 0;
147 SWIGOUT(%newobject hdaViewerStateModule;)
149 SWIGOUT(%newobject hdaViewerHandleModule;)
154 {
return hdaModule(); }
155 SWIGOUT(%kwargs createDigitalAsset);
156 SWIGOUT(%newobject createDigitalAsset;)
157 virtual HOM_Node *createDigitalAsset(
const char *
name=NULL,
158 const char *hda_file_name=NULL,
const char *description=NULL,
159 int min_num_inputs=0,
int max_num_inputs=0,
160 bool compress_contents=
false,
const char *comment=NULL,
161 const char *
version=NULL,
bool save_as_embedded=
false,
162 bool ignore_external_references=
false,
163 bool compile_asset =
false,
164 bool change_node_type =
true,
165 bool create_backup =
true,
166 const char *install_path=NULL) = 0;
168 SWIGOUT(%kwargs changeNodeType);
169 SWIGOUT(%newobject changeNodeType;)
170 virtual HOM_Node *changeNodeType(
const char *new_node_type,
171 bool keep_name=
true,
bool keep_parms=
true,
172 bool keep_network_contents=
true,
173 bool force_change_on_node_type_match=
false) = 0;
179 virtual void selectNextVisibleWorkItem() = 0;
180 virtual void selectPreviousVisibleWorkItem() = 0;
181 virtual void deselectWorkItem() = 0;
182 virtual void setCurrentTOPPage(
int page) = 0;
184 virtual bool canGenerateCookCode(
bool check_parent=
false,
185 bool check_auto_shader=
true) = 0;
186 SWIGOUT(%newobject cookCodeGeneratorNode;)
187 virtual HOM_Node *cookCodeGeneratorNode() = 0;
188 virtual std::string cookCodeLanguage() = 0;
189 virtual bool supportsMultiCookCodeContexts() = 0;
191 SWIGOUT(%kwargs saveCookCodeToFile;)
192 virtual void saveCookCodeToFile(
193 const char *file_name,
bool skip_header=
false,
194 const char *context_name = NULL) = 0;
198 const char *context_name = NULL)
199 { saveCookCodeToFile(file_name, skip_header, context_name); }
201 virtual void saveCompiledCookCodeToFile(
const char *file_name,
202 const char *context_name = NULL) = 0;
206 const char *context_name = NULL)
207 { saveCompiledCookCodeToFile(file_name, context_name); }
212 const std::vector<double> frame_range = std::vector<double>()) = 0;
214 SWIGOUT(%kwargs cookNoInterruptInternal;)
215 virtual void _cookNoInterruptInternal(
217 const std::vector<double> frame_range = std::vector<double>()) = 0;
220 virtual bool needsToCook() = 0;
222 virtual bool needsToCook(
double time) = 0;
224 virtual void invalidateOutput() = 0;
226 virtual int cookCount() = 0;
228 virtual std::vector<HOM_ElemPtr<HOM_Node> > cookPathNodes() = 0;
232 bool verbose =
false,
234 int output_index = 0,
235 bool force_cook =
false) = 0;
237 virtual std::map<std::string, hboost::any> infoData() = 0;
239 virtual void updateParmStates() = 0;
241 virtual void runInitScripts() = 0;
242 virtual std::string deleteScript() = 0;
243 virtual void setDeleteScript(
const std::string &script_text,
246 SWIGOUT(%newobject addNodeGroup;)
249 virtual std::vector<HOM_ElemPtr<HOM_NodeGroup> > nodeGroups() = 0;
254 virtual std::string motionEffectsNetworkPath() = 0;
255 SWIGOUT(%newobject findOrCreateMotionEffectsNetwork;)
256 virtual HOM_Node *findOrCreateMotionEffectsNetwork(
bool create=
true) = 0;
257 virtual void createOrMoveVisualizer(
int output_index) = 0;
259 SWIGOUT(%kwargs saveItemsToFile;)
260 virtual void saveItemsToFile(
261 const std::vector<HOM_NetworkMovableItem *> &items,
262 const char *file_name,
263 bool save_hda_fallbacks =
false) = 0;
264 SWIGOUT(%kwargs loadItemsFromFile;)
265 virtual void loadItemsFromFile(
266 const char *file_name,
bool ignore_load_warnings=
false) = 0;
269 virtual void addOpaqueEventCallback(
270 const std::vector<HOM_EnumValue *> &event_types,
271 void *py_callback) = 0;
273 virtual void addOpaqueParmCallback(
275 const std::vector<std::string> &names) = 0;
277 virtual void removeOpaqueEventCallback(
278 const std::vector<HOM_EnumValue *> &event_types,
279 void *py_callback) = 0;
280 virtual void removeAllEventCallbacks() = 0;
282 virtual std::vector<std::pair<std::vector<HOM_EnumValue *>,
void *> >
283 opaqueEventCallbacks() = 0;
286 virtual int getUniqueId() = 0;
288 virtual double stampValue(
const char *
name,
double default_value) = 0;
289 virtual std::string stampValue(
290 const char *
name,
const char *default_value) = 0;
294 virtual std::string asCode(
bool brief=
false,
296 bool save_channels_only=
false,
297 bool save_creation_commands=
true,
298 bool save_keys_in_frames=
false,
299 bool save_outgoing_wires=
false,
300 bool save_parm_values_only=
false,
301 bool save_spare_parms=
true,
302 bool save_box_membership=
true,
303 const char *function_name=NULL) = 0;
307 virtual std::vector<std::string> dataBlockKeys(
308 const char *blocktype =
nullptr) = 0;
309 virtual std::string dataBlockType(
const char *key) = 0;
313 const char *block_type =
nullptr) = 0;
314 virtual void removeDataBlock(
const char *key) = 0;
318 virtual void setOpaqueCachedUserData(
319 const char *
name,
void *opaque_py_object) = 0;
321 virtual void *opaqueCachedUserData(
const char *
name) = 0;
322 virtual void destroyCachedUserData(
323 const char *
name,
bool must_exist=
true) = 0;
324 virtual void clearCachedUserDataDict() = 0;
325 virtual std::map<std::string, PY_OpaqueObject> cachedUserDataDict() = 0;
330 void setCachedUserData(
const char *
name, InterpreterObject
value)
331 {
return self->setOpaqueCachedUserData(name, value); }
333 InterpreterObject cachedUserData(
const char *name)
334 {
return HOMincRef((InterpreterObject)self->opaqueCachedUserData(name)); }
338 SWIGOUT(%newobject simulation;)
341 virtual std::vector<HOM_ElemPtr<HOM_Node> >
347 bool use_blosc_compression =
true,
348 double sample_rate = 0,
349 bool scoped_only =
false) = 0;
351 SWIGOUT(%kwargs _setParmClipData;)
354 bool blosc_compressed =
true,
355 double sample_rate = 0,
358 virtual void _saveParmClip(std::string file_name,
361 double sample_rate = 0,
362 bool scoped_only =
false) = 0;
364 SWIGOUT(%kwargs _loadParmClip;)
365 virtual void _loadParmClip(std::string file_name,
366 double sample_rate = 0,
369 virtual int __creationTime() = 0;
370 virtual int __modificationTime() = 0;
374 virtual void addError(
const char *
message = 0,
377 virtual void addWarning(
const char *
message = 0) = 0;
379 virtual void addMessage(
const char *
message = 0) = 0;
381 virtual float lastCookTime() = 0;
382 virtual std::map<std::string, hboost::any> lastCookContextOptions(
383 bool only_used_options =
false) = 0;
390 InterpreterObject evalParm(
const char *parm_path)
392 HOM_Parm *parm =
self->parm(parm_path);
395 throw HOM_OperationFailed(
"Invalid parm name");
397 InterpreterObject
result = HOMevalParm(*parm);
402 InterpreterObject evalParmTuple(
const char *parm_path)
407 throw HOM_OperationFailed(
"Invalid parm tuple name");
409 InterpreterObject
result = HOMevalParmTuple(*parm_tuple);
414 void addEventCallback(
415 const std::vector<HOM_EnumValue *> &event_types,
416 InterpreterObject callback)
417 {
self->addOpaqueEventCallback(event_types, callback); }
419 void addParmCallback(
420 InterpreterObject callback,
421 const std::vector<std::string> &names)
422 {
self->addOpaqueParmCallback(callback,names); }
424 void removeEventCallback(
425 const std::vector<HOM_EnumValue *> &event_types,
426 InterpreterObject callback)
427 {
self->removeOpaqueEventCallback(event_types, callback); }
430 std::vector<std::pair<std::vector<HOM_EnumValue *>, InterpreterObject> >
433 std::vector<std::pair<std::vector<HOM_EnumValue *>,
void *> >
434 opaque_callbacks(self->opaqueEventCallbacks());
436 std::vector<std::pair<std::vector<HOM_EnumValue *>, InterpreterObject> >
438 for (
int i=0; i< opaque_callbacks.size(); ++i)
439 callbacks.push_back(std::make_pair(
440 opaque_callbacks[i].first,
441 (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)