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);
159 void updateOwnerSpareParmLayout(
162 bool apply_changes_to_parm_vops=
false);
166 void updateInternalOpParms(
167 bool force_ds_generation=
false,
168 bool allow_update_while_loading=
false);
172 void addParmLayoutTemplate(
177 {
return myParmLayoutMicroNode; }
182 {
return myParmsMicroNode; }
196 inline VOP_Node * ownerSubnet_()
const;
199 inline bool isOwnerHDANode_()
const;
203 void ensureParmLayoutIsUpdated_();
207 void ensureParmsAreUpdated_();
213 void generateParmLayoutDialogScript_(
223 void outputOwnerNodeInfoAsDS_(std::ostream &os);
227 const char * ownerParmDSName_()
const;
231 const char * ownerParmDSLabel_()
const;
237 const char * getParmsDialogScript_()
const;
242 void getRenamedAndDeletedParms_(
258 void clearOldParms_();
263 void clearOldHDAParms_();
271 bool includeInvisible,
272 const VOP_ParmContextInfo &info);
276 bool includeInvisible);
281 void addParmVOPIfApplicable_(
283 const VOP_ParmContextInfo &info,
284 bool include_invisible,
286 std::ostream *os)
const;
289 void buildParmContextInfo_(
290 VOP_ParmContextInfo &info);
291 void buildParmClassContextInfo_(
292 VOP_ParmContextInfo &info,
294 void buildParmShaderContextInfo_(
295 VOP_ParmContextInfo &info,
299 void propagateChangesToParmVOPs_(
304 void mergeSpareParms_(
309 void mergeSpareGroupStartParm_(
316 void mergeSpareGroupEndParm_(
323 void mergeSpareRegularParm_(
330 int findMatchingGroupStartParm_(
338 void updateLayoutWithOldParms_(
346 createSpareParms_(
bool skip_reserved);
350 void setParmLayoutMicroNodeDependents_();
354 void getOwnerParmLayout_(
357 bool use_incoming_layout);
383 int myCachedMinInputs;
384 int myCachedMaxInputs;
387 bool myContextParmTagDirty;
391 bool myIsChangingOwnerSpareParms;
395 bool myIsUpdatingParms;
405 bool myLoadPendingSpareParmLayoutUpdate =
false;
427 VOP_ExportedParmsManager::ownerCodeGen_()
const
429 return myOwnerCodeGen;
433 VOP_ExportedParmsManager::ownerSubnet_()
const
435 return myOwnerSubnet;
439 VOP_ExportedParmsManager::isOwnerHDANode_()
const
OP_Network * ownerNetwork() const
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.
OP_Operator * getOperator() const
VOP_API VOP_ExportedParmsManager * VOPgetExportedParmsManager(OP_Node *node)