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. 
 
GA_API const UT_StringHolder parms
 
VOP_ExportedParmLayoutMicroNode & parmLayoutMicroNode()
Micro node that represents cached the exported parameter layout. 
 
VOP_API VOP_ExportedParmsManager * VOPgetExportedParmsManager(OP_Node *node)