14 #ifndef __VOP_ExportedParmsManager_h__
15 #define __VOP_ExportedParmsManager_h__
34 class VOP_ParmContextInfo;
56 {
return ownerCodeGen_() != NULL; }
61 bool includeInvisible);
65 void getParticipatingParametersAndDeclarations(
74 void getClassMemberVariableParameterNodes(
81 void getClassShaderParameterNodes(
88 const char * getParmLayoutDialogScript()
const;
93 const char *parm_name,
94 bool use_cached_parms=
false)
const;
100 const char *parm_name,
101 bool use_cached_parms=
false)
const;
110 myContextParmTagDirty = tag_dirty;
114 return myContextParmTagDirty;
121 void setLockedCompiledDS(
const char *dialog_script);
126 void ownerFinishedLoadingNetwork();
130 void getOwnerSpareParmLayout(
141 void getOwnerHDADialogScriptLayout(
143 bool use_incoming_layout=
false);
146 void outputOwnerSpareParmLayout(std::ostream &os);
149 void updateOwnerSpareParmLayout(
150 bool allow_update_while_loading=
false);
155 { myInhibitSpareParmLayoutUpdate = flag; }
164 void updateOwnerSpareParmLayout(
167 bool apply_changes_to_parm_vops=
false);
171 void updateInternalOpParms(
172 bool force_ds_generation=
false,
173 bool allow_update_while_loading=
false);
177 void addParmLayoutTemplate(
182 {
return myParmLayoutMicroNode; }
187 {
return myParmsMicroNode; }
201 inline VOP_Node * ownerSubnet_()
const;
204 inline bool isOwnerHDANode_()
const;
208 void ensureParmLayoutIsUpdated_();
212 void ensureParmsAreUpdated_();
218 void generateParmLayoutDialogScript_(
228 void outputOwnerNodeInfoAsDS_(std::ostream &os);
232 const char * ownerParmDSName_()
const;
236 const char * ownerParmDSLabel_()
const;
242 const char * getParmsDialogScript_()
const;
247 void getRenamedAndDeletedParms_(
263 void clearOldParms_();
268 void clearOldHDAParms_();
276 bool includeInvisible,
277 const VOP_ParmContextInfo &info);
281 bool includeInvisible);
286 void addParmVOPIfApplicable_(
288 const VOP_ParmContextInfo &info,
289 bool include_invisible,
291 std::ostream *os)
const;
294 void buildParmContextInfo_(
295 VOP_ParmContextInfo &info);
296 void buildParmClassContextInfo_(
297 VOP_ParmContextInfo &info,
299 void buildParmShaderContextInfo_(
300 VOP_ParmContextInfo &info,
304 void propagateChangesToParmVOPs_(
309 void mergeSpareParms_(
314 void mergeSpareGroupStartParm_(
321 void mergeSpareGroupEndParm_(
328 void mergeSpareRegularParm_(
335 int findMatchingGroupStartParm_(
343 void updateLayoutWithOldParms_(
351 createSpareParms_(
bool skip_reserved);
355 void setParmLayoutMicroNodeDependents_();
359 void getOwnerParmLayout_(
362 bool use_incoming_layout);
388 int myCachedMinInputs;
389 int myCachedMaxInputs;
392 bool myContextParmTagDirty;
396 bool myIsChangingOwnerSpareParms;
400 bool myIsUpdatingParms;
410 bool myLoadPendingSpareParmLayoutUpdate =
false;
413 bool myInhibitSpareParmLayoutUpdate =
false;
435 VOP_ExportedParmsManager::ownerCodeGen_()
const
437 return myOwnerCodeGen;
441 VOP_ExportedParmsManager::ownerSubnet_()
const
443 return myOwnerSubnet;
447 VOP_ExportedParmsManager::isOwnerHDANode_()
const
SYS_FORCE_INLINE OP_Operator * getOperator() const
OP_Network * ownerNetwork() const
void inhibitSpareParmLayoutUpdate(bool flag)
void setContextParmTagDirty(bool tag_dirty=true)
bool isContextParmTagDirty() const
VOP_ParmDSMicroNode & parmsMicroNode()
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
bool isForCodeParms() const
FS_IndexFile * getOTLIndexFile(bool check_timestamp=true)
OP_Network * ownerNetwork() const
Return the network that owns the exported parameters.
VOP_ExportedParmLayoutMicroNode & parmLayoutMicroNode()
Micro node that represents cached the exported parameter layout.
VOP_API VOP_ExportedParmsManager * VOPgetExportedParmsManager(OP_Node *node)