13 #ifndef __OP_Parameters_h__ 
   14 #define __OP_Parameters_h__ 
   91                     bool exclude_constant,  
bool include_only_nonint_keys,
 
   92                     bool scoped_related_layers,
 
   94         myAllowNonChannels(allow_nonchannels),
 
   95         myExcludeAnimated(exclude_animated),
 
   96         myExcludeConstant(exclude_constant),
 
   97         myIncludeOnlyNonIntKeys(include_only_nonint_keys),
 
   98         myScopedRelatedLayers(scoped_related_layers),
 
   99         myScopeType( scope_type )
 
  116     , myFollowCHOPLayerOverrides(true)
 
  117     , myFollowReferences(true)
 
  118     , myStopAtEditabledHDA(false)
 
  119     , myFollowedParmMicroNodes(nullptr)
 
  134     bool include_animated, 
bool follow_channel_refs, 
bool include_autoscope )
 
  137     , myIncludeAnimated(include_animated)
 
  138     , myIncludeAutoScope(include_autoscope)
 
  140         myOpt.myFollowCHOPLayerOverrides = follow_layer_overrides;
 
  141         myOpt.myFollowReferences = follow_channel_refs;
 
  144         myOpt2.myFollowCHOPLayerOverrides = 
false;
 
  145         myOpt2.myFollowReferences = 
true;
 
  146         myOpt2.myStopAtEditabledHDA = 
true;
 
  170     bool                 updateParmsAndSpareParmsFlags();
 
  175                                 bool relative_references = 
true);
 
  185                                 const char *relative_path = 
nullptr);
 
  188     void                   animate(
unsigned idx);
 
  189     void                   animate(
const char *
name);
 
  190     void                 deAnimate(
unsigned idx);
 
  191     void                 deAnimate(
const char *
name);
 
  195     int                  destroyChannel(
const char *
name);
 
  197     bool                 isObsoleteChannel(
const char *
name) 
const;
 
  199     void                 takeActivateParm(
uint idx, 
bool enable=
true);
 
  200     void                 takeActivateParm(
const char *
name, 
bool enable=
true);
 
  201     void                 takeActivateParm(
PRM_Parm *parm, 
bool enable=
true);
 
  203                              { takeActivateParm(idx, 
false); }
 
  205                              { takeActivateParm(name, 
false); }
 
  207                              { takeActivateParm(parm, 
false); }
 
  209     bool                 takeIsActiveParm(
uint idx);
 
  210     bool                 takeIsActiveParm(
const char *
name);
 
  211     bool                 takeIsActiveParm(
const PRM_Parm *parm);
 
  221                          { 
return getChanState(t, 
false); }
 
  242     virtual 
float        getVariableValue(
int index, 
int thread);
 
  244     int                  getNumParms()
 const  
  245                          { 
return myParmList->getEntries(); }
 
  247                          { 
return myParmList->getParmIndex(name); }
 
  250                              PRM_Parm *p = myParmList->getParmPtr(i);
 
  256                              const PRM_Parm *p = myParmList->getParmPtr(i);
 
  262                              PRM_Parm *p = myParmList->getParmPtr(name);
 
  268                              const PRM_Parm *p = myParmList->getParmPtr(name);
 
  273                          { 
return myParmList->getParmPtr(name) != 
nullptr; }
 
  275                          { 
return myParmList->getParmPtr(name); }
 
  277                          { 
return myParmList->getParmPtr(name); }
 
  278     PRM_Parm            *getParmPtrInst(
const char *
name, 
const int *inst,
 
  280     const PRM_Parm      *getParmPtrInst(
const char *
name, 
const int *inst,
 
  281                                         int nestlevel = 1) 
const;
 
  292                          { 
return myChangingSpareParms; }
 
  295     void                 deleteAllSpareParms();
 
  311                                 const char *old_version,
 
  312                                 const char *current_version,
 
  318     virtual bool         getParameterOrProperty(
 
  323                                       bool create_missing_multiparms,
 
  325     virtual bool         getParameterOrPropertyByChannel(
 
  343         return const_cast<OP_Parameters*
>(
this)->getParameterOrProperty(
 
  344                     name, now, op, parm, 
false, obsolete);
 
  351     virtual int         findParametersOrProperties(
fpreal now,
 
  361                                 return followChannelReferencesOneStepT(
 
  362                                         opt, newop, newparm, newvecidx,
 
  375                                 followChannelReferencesT(
 
  376                                         opt, newop, newparm, newvecidx,
 
  386                                 return followChannelReferencesWithDepsT(
 
  387                                         opt, newop, newparm, newvecidx,
 
  404                                 followChannelReferencesT(opt, ref, 
SYSgetSTID());
 
  409     static void          getValueAsProcessedNodePaths(
fpreal t, 
 
  414     static void          getValueAsProcessedNodePaths(
fpreal t, 
 
  426     bool                 enableParm(
int   pi, 
int state, 
int v = -1);
 
  427     bool                 enableParm(
const char *pn, 
int state, 
int v = -1);
 
  428     bool                 enableParmInst(
const char *
name, 
const int *inst,
 
  429                                         int state, 
int nestlevel = 1,
 
  431     unsigned             getEnableState(
int pi, 
int v = -1);
 
  432     unsigned             getEnableState(
const char *pn, 
int v = -1);
 
  433     unsigned             getEnableStateInst(
const char *
name, 
const int *inst,
 
  434                                             int nestlevel = 1, 
int v = -1);
 
  436     bool                 setVisibleState(
int pi, 
bool state, 
int v = -1);
 
  437     bool                 setVisibleState(
const char *pn, 
bool state, 
int v = -1);
 
  438     bool                 setVisibleStateInst(
const char *
name, 
const int *inst,
 
  439                                         int state, 
int nestlevel = 1,
 
  442     bool                 getVisibleState(
int pi, 
int v = -1);
 
  443     bool                 getVisibleState(
const char *pn, 
int v = -1);
 
  467                             { 
return evalIntT(pn, pi, vi, t, 
SYSgetSTID()); }
 
  471                             { 
return evalIntT(parm, vi, t, 
SYSgetSTID()); }
 
  476                             { 
return evalFloatT(pi, vi, t, 
SYSgetSTID()); }
 
  480                             { 
return evalFloatT(pn, vi, t, 
SYSgetSTID()); }
 
  485                             { 
return evalFloatT(pn, pi, vi, t, 
SYSgetSTID()); }
 
  489                             { 
return evalFloatT(parm, vi, t, 
SYSgetSTID()); }
 
  495                             { 
return evalFloatsT(pi, v, t, 
SYSgetSTID()); }
 
  500                             { 
return evalFloatsT(pn, v, t, 
SYSgetSTID()); }
 
  505                             { 
return evalFloatsT(pn, pi, v, t, 
SYSgetSTID()); }
 
  509                             { 
return evalFloatsT(parm, v, t, 
SYSgetSTID()); }
 
  518                             { 
return evalFloatsT(pi, v, t, 
SYSgetSTID()); }
 
  523                             { 
return evalFloatsT(pn, v, t, 
SYSgetSTID()); }
 
  528                             { 
return evalFloatsT(pn, pi, v, t, 
SYSgetSTID()); }
 
  533                             { 
return evalFloatsT(parm, v, t, 
SYSgetSTID()); }
 
  537                                         int nestlevel = 1) 
const;
 
  544                             { 
return evalStringT(val, pi, vi, t,
SYSgetSTID()); }
 
  547                             { 
return evalStringT(val, pi, vi, t,
SYSgetSTID()); }
 
  555                             { 
return evalStringT(val, pn, vi, t,
SYSgetSTID()); }
 
  559                             { 
return evalStringT(val, pn, vi, t,
SYSgetSTID()); }
 
  570                                 return evalStringT(val, pn, pi, vi, t,
 
  577                                 return evalStringT(val, pn, pi, vi, t,
 
  589                                 return evalStringT(val, parm, vi, t,
 
  595                                 return evalStringT(val, parm, vi, t,
 
  607                                 return evalStringRawT(val, pi, vi, t,
 
  613                                 return evalStringRawT(val, pi, vi, t,
 
  624                                 return evalStringRawT(val, pn, vi, t,
 
  631                                 return evalStringRawT(val, pn, vi, t,
 
  643                                 return evalStringRawT(val, pn, pi, vi, t,
 
  649                                 return evalStringRawT(val, pn, pi, vi, t,
 
  661                                 return evalStringRawT(val, parm, vi, t,
 
  667                                 return evalStringRawT(val, parm, vi, t,
 
  676                             { 
return evalDataT(pi, vi, t, 
SYSgetSTID()); }
 
  680                             { 
return evalDataT(pn, vi, t, 
SYSgetSTID()); }
 
  685                             { 
return evalDataT(pn, pi, vi, t, 
SYSgetSTID()); }
 
  689                             { 
return evalDataT(parm, vi, t, 
SYSgetSTID()); }
 
  697                             { 
return evalJSONMapT(
 
  704                             { 
return evalJSONMapT(
 
  735                                 return evalJSONMapRawT(
 
  744                                 return evalJSONMapRawT(
 
  754                                 return evalJSONMapRawT(
 
  765                                 return evalJSONMapRawT(
 
  783                                      const int *inst, 
int vi,
 
  784                                      fpreal t, 
int nestlevel = 1)
 const 
  786                                 return evalIntInstT(name, inst, vi, t,
 
  790                                       const int *inst, 
int vi,
 
  792                                       int nestlevel = 1) 
const;
 
  794                                        const int *inst, 
int vi,
 
  795                                        fpreal t, 
int nestlevel = 1)
 const 
  797                                 return evalFloatInstT(name, inst, vi, t,
 
  801                                         const int *inst, 
int vi,
 
  803                                         int nestlevel = 1) 
const;
 
  807                                         int nestlevel = 1)
 const 
  809                                 return evalFloatsInstT(name, inst, v, t,
 
  815                                          int nestlevel = 1) 
const;
 
  819                                         int nestlevel = 1)
 const 
  821                                 return evalStringInstT(name, inst, val, vi,
 
  827                                         int nestlevel = 1)
 const 
  829                                 return evalStringInstT(name, inst, val, vi,
 
  835                                          int thread, 
int nestlevel = 1) 
const;
 
  839                                          int thread, 
int nestlevel = 1) 
const;
 
  843                                            int nestlevel = 1)
 const 
  845                                 return evalStringInstRawT(name, inst, val, vi,
 
  851                                            int nestlevel = 1)
 const 
  853                                 return evalStringInstRawT(name, inst, val, vi,
 
  860                                             int nestlevel = 1) 
const;
 
  865                                             int nestlevel = 1) 
const;
 
  867                                       const int *inst, 
int vi,
 
  868                                      fpreal t, 
int nestlevel = 1)
 const 
  870                                 return evalDataInstT(name, inst, vi, t,
 
  874                                        const int *inst, 
int vi,
 
  876                                       int nestlevel = 1) 
const;
 
  896                             return evalParameterOrPropertyT(parm_name,
 
  900     bool                evalParameterOrPropertyT(
 
  906                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
  914                             return evalParameterOrPropertyT(parm_name,
 
  918     bool                evalParameterOrPropertyT(
 
  923                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
  931                             return evalParameterOrPropertyT(parm_name,
 
  935     bool                evalParameterOrPropertyT(
 
  941                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
  949                             return evalParameterOrPropertyRawT(parm_name,
 
  953     bool                evalParameterOrPropertyRawT(
 
  959                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
  967                             return evalParameterOrPropertyExprT(parm_name,
 
  971     bool                evalParameterOrPropertyExprT(
 
  977                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
  986                             return evalVectorPropertyT(parm_name,
 
  990     bool                evalVectorPropertyT(
 
  996                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
 1002                                 PRM_Parm **parmptr = 
nullptr)
 const 
 1004                             return evalVectorPropertyT(parm_name,
 
 1008     bool                evalVectorPropertyT(
 
 1014                                 PRM_Parm **parmptr = 
nullptr) 
const;
 
 1032     void                 setInt(
const char *parmname, 
int &parmi, 
int vectori, 
fpreal t,
 
 1034     void                 setFloat(
int parmi, 
int vectori, 
fpreal t,
 
 1037     void                 setFloat(
const char *parmname, 
int vectori,  
fpreal t,
 
 1040     void                 setFloat(
const char *parmname, 
int &parmi, 
int vectori,
 
 1045                                    int parmi, 
int vectori,
 
 1049                                    const char *parmname, 
int vectori, 
fpreal t);
 
 1052                                    const char *parmname,
 
 1053                                    int &parmi, 
int vectori, 
fpreal t);
 
 1054     void                 setData(
int parmi, 
int vectori, 
fpreal t,
 
 1056     void                 setData(
const char *parmname, 
int vectori, 
fpreal t,
 
 1058     void                 setData(
const char *parmname, 
int &parmi, 
int vectori, 
fpreal t,
 
 1083                                      bool propagate=
true);
 
 1086                                      bool propagate=
true);
 
 1090                                        bool propagate=
true);
 
 1091     void                 setChRefFloat(
const char *pn, 
int vi, 
fpreal t,
 
 1095                                        bool propagate=
true);
 
 1102                                         bool propagate=
true);
 
 1109                                         bool propagate=
true)
 
 1111                                 setChRefString(val, meaning, pi, vi, t,
 
 1112                                                add_key, propagate);
 
 1120                                         bool propagate=
true);
 
 1127                                         bool propagate=
true)
 
 1129                                 setChRefString(val, meaning, pn, vi, t,
 
 1130                                                add_key, propagate);
 
 1136                                        bool propagate=
true);
 
 1138     void                 setChRefData(
const char *pn, 
int vi, 
fpreal t,
 
 1142                                        bool propagate=
true);
 
 1167     bool                 setParameterOrProperty(
const char *parm_name,
 
 1172                                                 bool propagate=
true);
 
 1173     bool                 setParameterOrProperty(
const char *parm_name,
 
 1178                                                 bool propagate=
true);
 
 1179     bool                 setParameterOrProperty(
const char *parm_name,
 
 1184                                                 bool propagate=
true);
 
 1185     bool                 setParameterOrProperty(
const char *parm_name,
 
 1191                                                 bool propagate=
true);
 
 1203     void                 setIntInst(
exint value, 
const char *parmname,
 
 1204                                     const int *inst, 
int vectori, 
fpreal t,
 
 1206     void                 setFloatInst(
fpreal value, 
const char *parmname,
 
 1207                                       const int *inst, 
int vectori, 
fpreal t,
 
 1211                                        const char *parmname,
 
 1212                                        const int *inst, 
int vectori, 
fpreal t,
 
 1215                                      const char *parmname, 
const int *inst,
 
 1216                                      int vectori, 
fpreal t, 
int nestlevel = 1);
 
 1230     void                 setSilentInt(
int parmi, 
int vectori, 
fpreal t,
 
 1232     void                 setSilentInt(
const char *parmname, 
int vectori,
 
 1234     void                 setSilentInt(
const char *parmname, 
int &parmi,
 
 1237     void                 setSilentFloat(
int parmi, 
int vectori, 
fpreal t,
 
 1240     void                 setSilentFloat(
const char *parmname, 
int vectori,
 
 1243     void                 setSilentFloat(
const char *parmname,
 
 1244                                 int &parmi, 
int vectori,
 
 1250                                 int parmi, 
int vectori, 
fpreal t);
 
 1253                                 const char *parmname, 
int vectori, 
fpreal t);
 
 1256                                 const char *parmname,
 
 1257                                 int &parmi, 
int vectori, 
fpreal t);
 
 1258     void                 setSilentData(
int parmi, 
int vectori, 
fpreal t,
 
 1260     void                 setSilentData(
const char *parmname, 
int vectori,
 
 1262     void                 setSilentData(
const char *parmname,
 
 1263                                 int &parmi, 
int vectori, 
fpreal t,
 
 1266     void                 setSilentIntInst(
exint value, 
const char *parmname,
 
 1267                                 const int *inst, 
int vectori,
 
 1269     void                 setSilentFloatInst(
fpreal value, 
const char *parmname,
 
 1270                                 const int *inst, 
int vectori,
 
 1274                                 const char *parmname,
 
 1275                                 const int *inst, 
int vectori,
 
 1278                                 const char *parmname, 
const int *inst,
 
 1279                                 int vectori, 
fpreal t, 
int nestlevel = 1);
 
 1286                                 int vi, 
fpreal t, 
int nest_level = 1) 
const;
 
 1294                                         bool create_channels=
false);
 
 1303     void                 insertMultiParmItem(
const char *pn, 
int i);
 
 1304     void                 removeMultiParmItem(
const char *pn, 
int i);
 
 1312                                 UT_Ramp &ramp, 
bool *time_dep = 
nullptr,
 
 1324     bool                 convertObsAnimatedToStringExpression(
 
 1326                                 const char *pn, 
int vi, 
fpreal t,
 
 1341                                       const char *channel_name = 
nullptr);
 
 1343     virtual int          findString(
const char *str, 
bool fullword,
 
 1344                                     bool usewildcards) 
const;
 
 1345     virtual int          changeString(
const char *from, 
const char *to,
 
 1359     bool                 isParmDirty(
int idx, 
fpreal t);
 
 1360     bool                 isParmDirty(
const char *
n, 
fpreal t);
 
 1361     bool                 isParmDirtyInst(
const char *
name, 
const int *inst,
 
 1363     void                 cacheParmValues(
const OP_Context &context);
 
 1364     void                 clearParmCache();
 
 1369     bool                 isParmTimeDependent(
int idx, 
int comp = -1) 
const;
 
 1374     bool                 isParmTimeDependent(
const char *
name,
 
 1375                                 int comp = -1) 
const;
 
 1382                              ensureErrorsAreUpdatedSubclass();
 
 1385                              stealGlobalErrors();
 
 1386                              return myErrorManager.getErrorMessages(messages,
 
 1395                              return myErrorManager.findError(type, code);
 
 1401                              return myErrorManager.removeError(idx);
 
 1407                              myErrorManager.pruneDuplicates();
 
 1414     void                 opError(
int code, 
const char *m=
nullptr)
 const 
 1416     void                 opFatal(
int code, 
const char *m=
nullptr)
 const 
 1422                              myErrorManager.addError(
"OP", code, m);
 
 1427                              myErrorManager.addWarning(
"OP",code,m);
 
 1432                              myErrorManager.addDeadlockError();
 
 1438                                      int code, 
const char *m,
 
 1444                                  myErrorManager.addGeneric(type, code, m, sev);
 
 1452                              myErrorManager.clearAndDestroyErrors(); 
 
 1459                              myErrorManager.clearAndDestroyErrors(); 
 
 1462     virtual OP_ERROR     getErrorSeverity();
 
 1464     exint                getErrorVersion();
 
 1469                              return myErrorManager.hasDeadlockError();
 
 1474                             ensureErrorsAreUpdatedSubclass();
 
 1479                                 stealGlobalErrors();
 
 1486                                 myErrorManager.updateSeverity(
 
 1489                             return myErrorManager.getSeverity();
 
 1495                             ensureErrorsAreUpdatedSubclass();
 
 1500                                 stealGlobalErrors();
 
 1507                                 myErrorManager.updateSeverity(
 
 1510                             return myErrorManager.getSeverity();
 
 1515                                      bool borrow_only = 
false);
 
 1518                          { 
return myIsGettingSaveError; }
 
 1521     void                 addChannelError(
const char *
type, 
int code,
 
 1522                                          const char *msg = 
nullptr);
 
 1526     virtual void         saveParmsForUndo(
bool scoped_only = 
false,
 
 1528     void                 saveSingleParmForUndo(
PRM_Parm *parm);
 
 1533     virtual void         clearUndoFlags();
 
 1534     virtual void         setAnyUndoFlag();
 
 1537     int                  canAccess(
unsigned mask) 
const;
 
 1538     bool                 canAccess(
unsigned mask, 
const PRM_Parm *parm) 
const;
 
 1541     void                 updateUserMask();
 
 1543     bool                 canModifyFromUI(
const PRM_Parm *parm, 
int vi) 
const;
 
 1548     virtual int          reloadNewFiles(
fpreal time_now);
 
 1552     void                 parmChanged( 
int parm_index );
 
 1553     void                 parmExprChanged(
int parm_index);
 
 1556     void                 operatorDeleted();
 
 1559     void                 saveParmCommand(std::ostream &os, 
int values = 0,
 
 1560                                          int defaultstoo = 1,
 
 1561                                          bool spareparms = 
true) 
const;
 
 1562     int                  loadParmCommand(
int argc, 
const char *
const argv[],
 
 1563                                          int docallbacks, 
void *
data,
 
 1564                                          fpreal now, 
bool followchrefs,
 
 1566     void                 commandParmCallback(
void *
data, 
fpreal now,
 
 1567                                              int argc, 
char *argv[],
 
 1569     void                 saveMultiParmInstanceCommand(
 
 1572                                          bool spareparms) 
const;
 
 1577     virtual bool         triggerParmCallback(
 
 1587                              { myTakeReferences += dir; }
 
 1589                              { 
return myTakeReferences; }
 
 1597     void                 createChannelGroupsFromFolders(
CH_Group &parent_group,
 
 1599                                             bool leaf_channels_only = 
false,
 
 1600                                             bool only_unlocked = 
true);
 
 1604     bool getAutoScopedChannel(
PRM_Parm *parm, 
int vector_index,
 
 1611                                             bool follow_layer_overrides=
true,
 
 1612                                             bool include_animated=
false,
 
 1613                                             bool follow_channel_refs=
true,
 
 1614                                             bool include_autoscope=
true 
 1628     bool                 getParmIsVisible(
const char *parmname);
 
 1636     const PRM_Template      *getSpareParmLayoutTemplates() 
const;
 
 1638     int                      getSpareParmTemplatesId() 
const;
 
 1642     int                      numSpareInputs() 
const;
 
 1645     bool                     hasMultiparmInfo() 
const;
 
 1657     static void          buildMParmInst(
const PRM_Template *templates,
 
 1661     static bool          isMParmInstance(
const char *chname,
 
 1666     static void          getLayersFromScopedChannels(
 
 1674                                      bool propagate=
true);
 
 1678                                        bool propagate=
true);
 
 1681                                         const char *parmname, 
int &
pi, 
int vi, 
 
 1685                                         bool propagate=
true);
 
 1688                                      bool propagate=
true);
 
 1695     PRM_Parm *              getParmActivationControl(
 
 1708     bool                 updateParmDisableConditional(
 
 1713     bool                 updateParmHideConditional(
 
 1724     bool                 updateParmDisableIfInactive(
PRM_Parm &parm,
 
 1725                                 bool disable = 
true);
 
 1731     virtual 
unsigned     disableParms();
 
 1736     virtual 
bool         updateParmsFlags() { 
return false; }
 
 1740     void                 saveMultiParmForUndo(
int index);
 
 1742     void                 stealGlobalErrors();
 
 1750                     myErrorManager, myErrorManagerLock);
 
 1753     virtual void         permissionError(
const char *chname = 
nullptr);
 
 1761                                 int err = ev_GetErrNo(thread);
 
 1764                                 evaluationError(parm, err, thread);
 
 1768     void                 resetParmEventHandler();
 
 1770     int                 *allocIndirect(
int size=64);
 
 1789     static bool          isReservedOpName(
const char *
name);
 
 1791     virtual int          rename(
const char *newname);
 
 1792     virtual bool         createSpareParameterFromChannel(
const char *chname);
 
 1793     virtual bool         createSpareParametersFromChannels(
 
 1803                                       bool compiled, 
bool selected,
 
 1804                                       bool pending_state);
 
 1805     OP_ERROR             saveParmChannels(
int parm_index, std::ostream &os,
 
 1806                                       int binary, 
bool compiled);
 
 1816                                             const char *
path = 
nullptr);
 
 1823                                    void *dataptr = 
nullptr) = 0;
 
 1852     virtual void         updateSpareParmTemplates(
 
 1854                                 bool leavedefaultsunchanged) = 0;
 
 1862     void                 evaluationError(
const PRM_Parm *parm, 
int err,
 
 1867     void                 setFullInt(
int parmi, 
int vectori, 
fpreal t,
 
 1869     void                 setFullInt(
const char *parmname, 
int vectori, 
fpreal t,
 
 1871     void                 setFullInt(
const char *parmname, 
int &parmi,
 
 1877     void                 setFullFloat(
const char *pn, 
int vi,  
fpreal t,
 
 1880     void                 setFullFloat(
const char *pn, 
int &
pi, 
int vi,
 
 1890                                        int vi, 
fpreal t, 
bool propagate);
 
 1897     void                 setFullData(
int pi, 
int vi, 
fpreal t,
 
 1899     void                 setFullData(
const char *pn, 
int vi, 
fpreal t,
 
 1901     void                 setFullData(
const char *pn, 
int &
pi, 
int vi, 
fpreal t,
 
 1904     void                 setFullIntInst(
exint value, 
const char *parmname,
 
 1905                                         const int *inst, 
int vectori, 
fpreal t,
 
 1906                                         int nestlevel, 
bool propagate);
 
 1908                                           const int *inst, 
int vi, 
fpreal t,
 
 1909                                           int nestlevel, 
bool propagate);
 
 1913                                            const int *inst, 
int vi, 
fpreal t,
 
 1914                                            int nestlevel, 
bool propagate);
 
 1916                                          const char *
name, 
const int *inst,
 
 1917                                          int vi, 
fpreal t, 
int nestlevel,
 
 1936     bool                 determineParmVisibility(
const char *parmname,
 
 1943     static void          addLayerFromScopedChannels(
 
 1948     mutable OP_Lock      myErrorManagerLock;
 
 1953     uint                 myTakeReferences;
 
 1955     unsigned             myUndoAllParmSavedFlag:1,
 
 1956                          myUndoScopedSavedFlag:1,
 
 1958                          myIsGettingSaveError:1;
 
 1963     bool                 myChangingSpareParms;
 
 1968     friend class         OP_UndoMultiParm;
 
 1969     friend class         OP_UndoParm;
 
 1970     friend class         OP_UndoSpareParm;
 
OP_API void OPtakeAutoActivateChannel(CH_Channel *chp)
 
SYS_FORCE_INLINE OP_Operator * getOperator() const 
 
PRM_Parm & getParm(const UT_StringRef &name)
 
UT_ErrorSeverity getSeverity()
 
void evalFloats(const UT_StringRef &pn, int *pi, fpreal64 *v, fpreal t) const 
 
GT_API const UT_StringHolder selection
 
void evalJSONMapRaw(UT_JSONValueMap &val, int pi, int vi, fpreal t) const 
 
OP_ScopeOptions(bool allow_nonchannels, bool exclude_animated, bool exclude_constant, bool include_only_nonint_keys, bool scoped_related_layers, OP_ScopeType scope_type)
 
UT_JSONValueMap stores a map/dictionary of UT_JSONValue objects. 
 
void takeDeactivateParm(PRM_Parm *parm)
 
#define SYS_DEPRECATED(__V__)
 
virtual int64 getMemoryUsage(bool inclusive) const 
 
virtual void checkChannelDependencies(CH_Channel *, CH_CHANGE_TYPE)
 
void evalString(UT_StringHolder &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
fpreal evalFloat(const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
void evalFloats(int pi, fpreal32 *v, fpreal t) const 
 
OP_GetAutoScopedOptions(fpreal t, bool follow_layer_overrides, bool include_animated, bool follow_channel_refs, bool include_autoscope)
 
int getAnyUndoPending() const 
 
IMF_EXPORT IMATH_NAMESPACE::V3f direction(const IMATH_NAMESPACE::Box2i &dataWindow, const IMATH_NAMESPACE::V2f &pixelPosition)
 
GLsizei const GLfloat * value
 
OP_Channels * getChannels() const 
 
UT_API UT_ErrorSeverity UTaddFatal(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
 
void evalJSONMap(UT_JSONValueMap &val, const PRM_Parm *parm, int vi, fpreal t) const 
 
const GLuint GLenum const void * binary
 
GLsizei const GLchar *const * path
 
PRM_DataItemHandle evalData(const UT_StringRef &pn, int vi, fpreal t) const 
 
void evalStringInst(const UT_StringRef &name, const int *inst, UT_StringHolder &val, int vi, fpreal t, int nestlevel=1) const 
 
void evalString(UT_String &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
virtual bool preUpdateParmsFlags()
 
fpreal evalFloat(int pi, int vi, fpreal t) const 
 
void opLocalWarning(int code, const char *m=nullptr)
 
void evalFloatsInst(const UT_StringRef &name, const int *inst, fpreal64 *v, fpreal t, int nestlevel=1) const 
 
virtual bool getHasTakeData() const 
 
SYS_FORCE_INLINE bool checkExpressionError(const PRM_Parm *parm, int thread) const 
 
UT_API UT_ErrorManager * UTgetErrorManager()
 
void evalJSONMap(UT_JSONValueMap &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
void evalJSONMapRaw(UT_JSONValueMap &val, const PRM_Parm *parm, int vi, fpreal t) const 
 
void opWarning(int code, const char *m=nullptr) const 
 
DEP_MicroNodeList * myFollowedParmMicroNodes
 
**But if you need a result
 
void opLocalDeadlockError()
 
int getParmIndex(const UT_StringRef &name) const 
 
void appendError(const char *type, int code, const char *m, UT_ErrorSeverity sev)
 
void opError(int code, const char *m=nullptr) const 
 
exint evalInt(const UT_StringRef &pn, int vi, fpreal t) const 
 
void evalJSONMapRaw(UT_JSONValueMap &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
bool evalVectorProperty(const UT_StringRef &parm_name, fpreal now, int *values, int vec_size, PRM_Parm **parmptr=nullptr) const 
 
void evalStringRaw(UT_StringHolder &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
UT_API UT_ErrorSeverity UTaddMessage(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
 
bool isGettingSaveError() const 
 
void takeDeactivateParm(const char *name)
 
void clearErrors(OP_Context &context)
 
UT_Set< OP_Node * > myUpdated
 
void bumpTakeReference(int dir)
 
virtual void takeAutoActivateParm(PRM_Parm *)=0
 
void clearDuplicateErrors()
 
virtual OP_ERROR error(OP_Context &context)
 
fpreal evalFloat(const UT_StringRef &pn, int vi, fpreal t) const 
 
exint evalInt(const PRM_Parm *parm, int vi, fpreal t) const 
 
bool evalParameterOrProperty(const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=nullptr) const 
 
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
 
PRM_DataItemHandle evalData(const PRM_Parm *parm, int vi, fpreal t) const 
 
PRM_Parm & getParm(int i)
 
virtual bool savePresetContents(std::ostream &os)=0
 
OP_FollowChanRefsOptions myOpt2
 
OP_FollowChanRefsOptions myOpt
 
GLint GLint GLsizei GLint GLenum GLenum type
 
void evalStringRaw(UT_StringHolder &val, const UT_StringRef &pn, int vi, fpreal t) const 
 
fpreal evalFloat(const PRM_Parm *parm, int vi, fpreal t) const 
 
void evalStringInstRaw(const UT_StringRef &name, const int *inst, UT_StringHolder &val, int vi, fpreal t, int nestlevel=1) const 
 
const PRM_Parm & getParm(const UT_StringRef &name) const 
 
void evalJSONMapRaw(UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t) const 
 
void evalString(UT_String &val, const PRM_Parm *parm, int vi, fpreal t) const 
 
static bool followChannelReferencesWithDeps(const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx, CH_Channel *chp)
 
void evalString(UT_String &val, const UT_StringRef &pn, int vi, fpreal t) const 
 
PRM_Parm * getParmPtr(const UT_StringRef &name)
 
void evalString(UT_String &val, int pi, int vi, fpreal t) const 
 
void evalFloats(int pi, fpreal64 *v, fpreal t) const 
 
const PRM_Parm & getParm(int i) const 
 
PRM_DataItemHandle evalDataInst(const UT_StringRef &name, const int *inst, int vi, fpreal t, int nestlevel=1) const 
 
bool myScopedRelatedLayers
 
void evalJSONMap(UT_JSONValueMap &val, int pi, int vi, fpreal t) const 
 
GLsizei GLsizei GLchar * source
 
void setChRefString(int pi, int vi, fpreal t, const UT_StringRef &val, CH_StringMeaning meaning, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
SYS_FORCE_INLINE const UT_StringHolder & getName() const 
 
void evalString(UT_StringHolder &val, int pi, int vi, fpreal t) const 
 
virtual void resolveAndDeleteObsoleteParmList(PRM_ParmList *&obsolete_parms)=0
 
bool hasDeadlockError() const 
 
bool myStopAtEditabledHDA
 
void opFatal(int code, const char *m=nullptr) const 
 
fpreal evalFloatInst(const UT_StringRef &name, const int *inst, int vi, fpreal t, int nestlevel=1) const 
 
virtual CH_ExprLanguage getExprLanguage() const =0
 
GLuint const GLchar * name
 
virtual void buildOpDependencies()
 
bool myIncludeOnlyNonIntKeys
 
bool getIsChangingSpareParms() const 
 
PRM_DataItemHandle evalData(int pi, int vi, fpreal t) const 
 
void evalFloats(const PRM_Parm *parm, fpreal32 *v, fpreal t) const 
 
virtual void addOrRemoveMultiparmInstance()=0
 
void evalStringRaw(UT_String &val, int pi, int vi, fpreal t) const 
 
int findError(const char *type, int code) const 
 
OP_FollowChanRefsOptions(fpreal t)
 
PRM_ChanState isAtKey(fpreal t) const 
 
void evalStringInstRaw(const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int nestlevel=1) const 
 
virtual void ensureErrorsAreUpdatedSubclass()
 
static void followChannelReferences(const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx)
 
bool evalParameterOrPropertyExpr(const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=nullptr) const 
 
virtual void ensureSpareParmsAreUpdatedSubclass()
 
bool evalVectorProperty(const UT_StringRef &parm_name, fpreal now, fpreal *values, int vec_size, PRM_Parm **parmptr=nullptr) const 
 
void evalStringRaw(UT_String &val, const PRM_Parm *parm, int vi, fpreal t) const 
 
exint evalInt(const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
void clearAndDestroyErrors()
 
**Note that the tasks the is the thread number *for the or if it s being executed by a non pool thread(this *can happen in cases where the whole pool is occupied and the calling *thread contributes to running the work load).**Thread pool.Have fun
 
A map of string to various well defined value types. 
 
GA_API const UT_StringHolder parms
 
void evalStringInst(const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int nestlevel=1) const 
 
void evalString(UT_StringHolder &val, const UT_StringRef &pn, int vi, fpreal t) const 
 
SIM_API const UT_StringHolder force
 
GLenum GLsizei GLsizei GLint * values
 
bool myFollowCHOPLayerOverrides
 
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
 
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour. 
 
bool evalParameterOrPropertyRaw(const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=nullptr) const 
 
virtual void resolveObsoleteParms(PRM_ParmList *)
 
bool getParameterOrPropertyConst(const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, PRM_ParmList *obsolete) const 
 
Utility class for containing a color ramp. 
 
void evalJSONMap(UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t) const 
 
OP_API void OPsaveChannelForUndo(CH_Channel *chp)
 
OP_API PRM_Parm * OPgetParameterFromChannel(CH_Channel *chp, int *vecidx)
 
void evalStringRaw(UT_String &val, const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
void evalFloats(const PRM_Parm *parm, fpreal64 *v, fpreal t) const 
 
UT_API UT_ErrorSeverity UTaddWarning(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
 
virtual bool loadPresetContents(const char *token, UT_IStream &is)=0
 
virtual void initMultiparmInstance(UT_ValArray< PRM_Parm * > &p)=0
 
A global error manager scope. 
 
const OP_Stat & getStat() const 
 
static bool followChannelReferencesOneStep(const OP_FollowChanRefsOptions &opt, OP_Node *&newop, PRM_Parm *&newparm, int &newvecidx)
 
PRM_DataItemHandle evalData(const UT_StringRef &pn, int *pi, int vi, fpreal t) const 
 
void evalStringRaw(UT_StringHolder &val, const PRM_Parm *parm, int vi, fpreal t) const 
 
**If you just want to fire and args
 
void takeDeactivateParm(uint idx)
 
int getErrorMessages(UT_String &messages, UT_ErrorSeverity severity=UT_ERROR_NONE)
 
bool evalParameterOrProperty(const UT_StringRef &parm_name, int vec_index, fpreal now, int &value, PRM_Parm **parmptr=nullptr) const 
 
void opMessage(int code, const char *m=nullptr) const 
 
exint evalInt(int pi, int vi, fpreal t) const 
 
OP_API void OPsaveChannelsForUndo(const CH_ChannelList &channels)
 
exint evalIntInst(const UT_StringRef &name, const int *inst, int vi, fpreal t, int nestlevel=1) const 
 
virtual void syncNodeVersion(const char *old_version, const char *current_version, bool *node_deleted)
 
virtual void doGetFullPath(UT_WorkBuffer &buf) const =0
Compute the full path of the node. 
 
void evalFloats(const UT_StringRef &pn, fpreal64 *v, fpreal t) const 
 
void opLocalError(int code, const char *m=nullptr)
 
const PRM_Parm * getParmPtr(const UT_StringRef &name) const 
 
bool evalParameterOrProperty(const UT_StringRef &parm_name, int vec_index, fpreal now, fpreal &values, PRM_Parm **parmptr=nullptr) const 
 
void evalFloats(const UT_StringRef &pn, fpreal32 *v, fpreal t) const 
 
bool hasError(OP_Context &context)
 
void evalString(UT_StringHolder &val, const PRM_Parm *parm, int vi, fpreal t) const 
 
UT_LockedRawPtr< UT_ErrorManager, OP_Lock > getLockedErrorManager()
 
void evalStringRaw(UT_StringHolder &val, int pi, int vi, fpreal t) const 
 
int getTakeReferences() const 
 
static void followChannelReferences(const OP_FollowChanRefsOptions &opt, CH_ChannelRef &ref)
 
bool hasParm(const UT_StringRef &name) const 
 
void evalStringRaw(UT_String &val, const UT_StringRef &pn, int vi, fpreal t) const 
 
UT_API UT_ErrorSeverity UTaddError(const char *type, int code, const char *msg=0, const UT_SourceLocation *loc=0)
 
ImageBuf OIIO_API channels(const ImageBuf &src, int nchannels, cspan< int > channelorder, cspan< float > channelvalues={}, cspan< std::string > newchannelnames={}, bool shuffle_channel_names=false, int nthreads=0)
 
void setChRefString(const char *pn, int vi, fpreal t, const UT_StringRef &val, CH_StringMeaning meaning, PRM_AddKeyType add_key=PRM_AK_MARK_PENDING, bool propagate=true)
 
virtual PRM_ParmList * createObsoleteParmList()=0
 
void evalFloats(const UT_StringRef &pn, int *pi, fpreal32 *v, fpreal t) const