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 = NULL);
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) != 0; }
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,
616 return evalStringRawT(val, pn, vi, t,
625 return evalStringRawT(val, pn, pi, vi, t,
634 return evalStringRawT(val, parm, vi, t,
641 {
return evalDataT(pi, vi, t,
SYSgetSTID()); }
645 {
return evalDataT(pn, vi, t,
SYSgetSTID()); }
650 {
return evalDataT(pn, pi, vi, t,
SYSgetSTID()); }
654 {
return evalDataT(parm, vi, t,
SYSgetSTID()); }
662 {
return evalJSONMapT(
669 {
return evalJSONMapT(
700 return evalJSONMapRawT(
709 return evalJSONMapRawT(
719 return evalJSONMapRawT(
730 return evalJSONMapRawT(
748 const int *inst,
int vi,
749 fpreal t,
int nestlevel = 1)
const
751 return evalIntInstT(name, inst, vi, t,
755 const int *inst,
int vi,
757 int nestlevel = 1)
const;
759 const int *inst,
int vi,
760 fpreal t,
int nestlevel = 1)
const
762 return evalFloatInstT(name, inst, vi, t,
766 const int *inst,
int vi,
768 int nestlevel = 1)
const;
772 int nestlevel = 1)
const
774 return evalFloatsInstT(name, inst, v, t,
780 int nestlevel = 1)
const;
784 int nestlevel = 1)
const
786 return evalStringInstT(name, inst, val, vi,
792 int nestlevel = 1)
const
794 return evalStringInstT(name, inst, val, vi,
800 int thread,
int nestlevel = 1)
const;
804 int thread,
int nestlevel = 1)
const;
808 int nestlevel = 1)
const
810 return evalStringInstRawT(name, inst, val, vi,
817 int nestlevel = 1)
const;
819 const int *inst,
int vi,
820 fpreal t,
int nestlevel = 1)
const
822 return evalDataInstT(name, inst, vi, t,
826 const int *inst,
int vi,
828 int nestlevel = 1)
const;
847 return evalParameterOrPropertyT(parm_name,
851 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
863 return evalParameterOrPropertyT(parm_name,
867 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
878 return evalParameterOrPropertyT(parm_name,
882 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
895 return evalParameterOrPropertyRawT(parm_name,
899 bool evalParameterOrPropertyRawT(
913 return evalParameterOrPropertyExprT(parm_name,
917 bool evalParameterOrPropertyExprT(
931 return evalVectorPropertyT(parm_name,
947 return evalVectorPropertyT(parm_name,
974 void setInt(
const char *parmname,
int &parmi,
int vectori,
fpreal t,
976 void setFloat(
int parmi,
int vectori,
fpreal t,
979 void setFloat(
const char *parmname,
int vectori,
fpreal t,
982 void setFloat(
const char *parmname,
int &parmi,
int vectori,
987 int parmi,
int vectori,
991 const char *parmname,
int vectori,
fpreal t);
994 const char *parmname,
995 int &parmi,
int vectori,
fpreal t);
996 void setData(
int parmi,
int vectori,
fpreal t,
998 void setData(
const char *parmname,
int vectori,
fpreal t,
1000 void setData(
const char *parmname,
int &parmi,
int vectori,
fpreal t,
1025 bool propagate=
true);
1028 bool propagate=
true);
1032 bool propagate=
true);
1033 void setChRefFloat(
const char *pn,
int vi,
fpreal t,
1037 bool propagate=
true);
1044 bool propagate=
true);
1051 bool propagate=
true)
1053 setChRefString(val, meaning, pi, vi, t,
1054 add_key, propagate);
1062 bool propagate=
true);
1069 bool propagate=
true)
1071 setChRefString(val, meaning, pn, vi, t,
1072 add_key, propagate);
1078 bool propagate=
true);
1080 void setChRefData(
const char *pn,
int vi,
fpreal t,
1084 bool propagate=
true);
1109 bool setParameterOrProperty(
const char *parm_name,
1114 bool propagate=
true);
1115 bool setParameterOrProperty(
const char *parm_name,
1120 bool propagate=
true);
1121 bool setParameterOrProperty(
const char *parm_name,
1126 bool propagate=
true);
1127 bool setParameterOrProperty(
const char *parm_name,
1133 bool propagate=
true);
1145 void setIntInst(
exint value,
const char *parmname,
1146 const int *inst,
int vectori,
fpreal t,
1148 void setFloatInst(
fpreal value,
const char *parmname,
1149 const int *inst,
int vectori,
fpreal t,
1153 const char *parmname,
1154 const int *inst,
int vectori,
fpreal t,
1157 const char *parmname,
const int *inst,
1158 int vectori,
fpreal t,
int nestlevel = 1);
1172 void setSilentInt(
int parmi,
int vectori,
fpreal t,
1174 void setSilentInt(
const char *parmname,
int vectori,
1176 void setSilentInt(
const char *parmname,
int &parmi,
1179 void setSilentFloat(
int parmi,
int vectori,
fpreal t,
1182 void setSilentFloat(
const char *parmname,
int vectori,
1185 void setSilentFloat(
const char *parmname,
1186 int &parmi,
int vectori,
1192 int parmi,
int vectori,
fpreal t);
1195 const char *parmname,
int vectori,
fpreal t);
1198 const char *parmname,
1199 int &parmi,
int vectori,
fpreal t);
1200 void setSilentData(
int parmi,
int vectori,
fpreal t,
1202 void setSilentData(
const char *parmname,
int vectori,
1204 void setSilentData(
const char *parmname,
1205 int &parmi,
int vectori,
fpreal t,
1208 void setSilentIntInst(
exint value,
const char *parmname,
1209 const int *inst,
int vectori,
1211 void setSilentFloatInst(
fpreal value,
const char *parmname,
1212 const int *inst,
int vectori,
1216 const char *parmname,
1217 const int *inst,
int vectori,
1220 const char *parmname,
const int *inst,
1221 int vectori,
fpreal t,
int nestlevel = 1);
1228 int vi,
fpreal t,
int nest_level = 1)
const;
1236 bool create_channels=
false);
1245 void insertMultiParmItem(
const char *pn,
int i);
1246 void removeMultiParmItem(
const char *pn,
int i);
1254 UT_Ramp &ramp,
bool *time_dep = NULL,
1266 bool convertObsAnimatedToStringExpression(
1268 const char *pn,
int vi,
fpreal t,
1283 const char *channel_name = 0);
1285 virtual int findString(
const char *str,
bool fullword,
1286 bool usewildcards)
const;
1287 virtual int changeString(
const char *from,
const char *to,
1301 bool isParmDirty(
int idx,
fpreal t);
1302 bool isParmDirty(
const char *
n,
fpreal t);
1303 bool isParmDirtyInst(
const char *
name,
const int *inst,
1305 void cacheParmValues(
const OP_Context &context);
1306 void clearParmCache();
1311 bool isParmTimeDependent(
int idx,
int comp = -1)
const;
1316 bool isParmTimeDependent(
const char *
name,
1317 int comp = -1)
const;
1324 ensureErrorsAreUpdatedSubclass();
1327 stealGlobalErrors();
1328 return myErrorManager.getErrorMessages(messages,
1337 return myErrorManager.findError(type, code);
1343 return myErrorManager.removeError(idx);
1349 myErrorManager.pruneDuplicates();
1364 myErrorManager.addError(
"OP", code, m);
1369 myErrorManager.addWarning(
"OP",code,m);
1374 myErrorManager.addDeadlockError();
1380 int code,
const char *m,
1386 myErrorManager.addGeneric(type, code, m, sev);
1394 myErrorManager.clearAndDestroyErrors();
1401 myErrorManager.clearAndDestroyErrors();
1404 virtual OP_ERROR getErrorSeverity();
1406 exint getErrorVersion();
1411 return myErrorManager.hasDeadlockError();
1416 ensureErrorsAreUpdatedSubclass();
1421 stealGlobalErrors();
1428 myErrorManager.updateSeverity(
1431 return myErrorManager.getSeverity();
1437 ensureErrorsAreUpdatedSubclass();
1442 stealGlobalErrors();
1449 myErrorManager.updateSeverity(
1452 return myErrorManager.getSeverity();
1457 bool borrow_only =
false);
1460 {
return myIsGettingSaveError; }
1463 void addChannelError(
const char *
type,
int code,
1464 const char *msg = 0);
1468 virtual void saveParmsForUndo(
bool scopedOnly =
false,
1470 void saveSingleParmForUndo(
PRM_Parm *parm);
1475 virtual void clearUndoFlags();
1476 virtual void setAnyUndoFlag();
1479 int canAccess(
unsigned mask)
const;
1480 bool canAccess(
unsigned mask,
const PRM_Parm *parm)
const;
1483 void updateUserMask();
1485 bool canModifyFromUI(
const PRM_Parm *parm,
int vi)
const;
1490 virtual int reloadNewFiles(
fpreal time_now);
1494 void parmChanged(
int parm_index );
1495 void parmExprChanged(
int parm_index);
1498 void operatorDeleted();
1501 void saveParmCommand(std::ostream &os,
int values = 0,
1502 int defaultstoo = 1,
1503 bool spareparms =
true)
const;
1504 int loadParmCommand(
int argc,
const char *
const argv[],
1505 int docallbacks,
void *
data,
1506 fpreal now,
bool followchrefs,
1508 void commandParmCallback(
void *
data,
fpreal now,
1509 int argc,
char *argv[],
1511 void saveMultiParmInstanceCommand(
1514 bool spareparms)
const;
1526 { myTakeReferences += dir; }
1528 {
return myTakeReferences; }
1536 void createChannelGroupsFromFolders(
CH_Group &parent_group,
1538 bool leaf_channels_only =
false,
1539 bool only_unlocked =
true);
1543 bool getAutoScopedChannel(
PRM_Parm *parm,
int vector_index,
1550 bool follow_layer_overrides=
true,
1551 bool include_animated=
false,
1552 bool follow_channel_refs=
true,
1553 bool include_autoscope=
true
1567 bool getParmIsVisible(
const char *parmname);
1575 const PRM_Template *getSpareParmLayoutTemplates()
const;
1577 int getSpareParmTemplatesId()
const;
1581 int numSpareInputs()
const;
1584 bool hasMultiparmInfo()
const;
1596 static void buildMParmInst(
const PRM_Template *templates,
1600 static bool isMParmInstance(
const char *chname,
1605 static void getLayersFromScopedChannels(
1613 bool propagate=
true);
1617 bool propagate=
true);
1620 const char *parmname,
int &
pi,
int vi,
1624 bool propagate=
true);
1627 bool propagate=
true);
1634 PRM_Parm * getParmActivationControl(
1647 bool updateParmDisableConditional(
1652 bool updateParmHideConditional(
1663 bool updateParmDisableIfInactive(
PRM_Parm &parm,
1664 bool disable =
true);
1670 virtual
unsigned disableParms();
1675 virtual
bool updateParmsFlags() {
return false; }
1679 void saveMultiParmForUndo(
int index);
1681 void stealGlobalErrors();
1689 myErrorManager, myErrorManagerLock);
1692 virtual void permissionError(
const char *chname = 0);
1700 int err = ev_GetErrNo(thread);
1703 evaluationError(parm, err, thread);
1707 void resetParmEventHandler();
1709 int *allocIndirect(
int size=64);
1728 static bool isReservedOpName(
const char *
name);
1730 virtual int rename(
const char *newname);
1731 virtual bool createSpareParameterFromChannel(
const char *chname);
1732 virtual bool createSpareParametersFromChannels(
1742 bool compiled,
bool selected,
1743 bool pending_state);
1744 OP_ERROR saveParmChannels(
int parm_index, std::ostream &os,
1745 int binary,
bool compiled);
1789 virtual void updateSpareParmTemplates(
1791 bool leavedefaultsunchanged) = 0;
1799 void evaluationError(
const PRM_Parm *parm,
int err,
1804 void setFullInt(
int parmi,
int vectori,
fpreal t,
1806 void setFullInt(
const char *parmname,
int vectori,
fpreal t,
1808 void setFullInt(
const char *parmname,
int &parmi,
1814 void setFullFloat(
const char *pn,
int vi,
fpreal t,
1817 void setFullFloat(
const char *pn,
int &
pi,
int vi,
1827 int vi,
fpreal t,
bool propagate);
1834 void setFullData(
int pi,
int vi,
fpreal t,
1836 void setFullData(
const char *pn,
int vi,
fpreal t,
1838 void setFullData(
const char *pn,
int &
pi,
int vi,
fpreal t,
1841 void setFullIntInst(
exint value,
const char *parmname,
1842 const int *inst,
int vectori,
fpreal t,
1843 int nestlevel,
bool propagate);
1845 const int *inst,
int vi,
fpreal t,
1846 int nestlevel,
bool propagate);
1850 const int *inst,
int vi,
fpreal t,
1851 int nestlevel,
bool propagate);
1853 const char *
name,
const int *inst,
1854 int vi,
fpreal t,
int nestlevel,
1873 bool determineParmVisibility(
const char *parmname,
1880 static void addLayerFromScopedChannels(
1885 mutable OP_Lock myErrorManagerLock;
1890 uint myTakeReferences;
1892 unsigned myUndoAllParmSavedFlag:1,
1893 myUndoScopedSavedFlag:1,
1895 myIsGettingSaveError:1;
1900 bool myChangingSpareParms;
1905 friend class OP_UndoParm;
1906 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)
bool evalParameterOrPropertyRaw(const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=NULL) const
#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
bool evalVectorProperty(const UT_StringRef &parm_name, fpreal now, fpreal *values, int vec_size, PRM_Parm **parmptr=NULL) const
fpreal evalFloat(const UT_StringRef &pn, int *pi, int vi, fpreal t) const
void opWarning(int code, const char *m=0) 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)
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
bool evalVectorProperty(const UT_StringRef &parm_name, fpreal now, int *values, int vec_size, PRM_Parm **parmptr=NULL) const
virtual bool preUpdateParmsFlags()
fpreal evalFloat(int pi, int vi, fpreal t) const
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
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)
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
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
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
bool evalParameterOrProperty(const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=NULL) const
fpreal evalFloat(const PRM_Parm *parm, int vi, fpreal t) const
void opLocalError(int code, const char *m=0)
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)
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
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)
virtual void ensureSpareParmsAreUpdatedSubclass()
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.
void evalStringInst(const UT_StringRef &name, const int *inst, UT_String &val, int vi, fpreal t, int nestlevel=1) const
void opLocalWarning(int code, const char *m=0)
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)
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
bool evalParameterOrProperty(const UT_StringRef &parm_name, int vec_index, fpreal now, int &value, PRM_Parm **parmptr=NULL) 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
bool evalParameterOrPropertyExpr(const UT_StringRef &parm_name, int vec_index, fpreal now, UT_String &value, PRM_Parm **parmptr=NULL) const
void opMessage(int code, const char *m=0) const
A global error manager scope.
SYS_FORCE_INLINE const UT_String & getName() const
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
**If you just want to fire and args
constexpr T pi()
Pi constant taken from Boost to match old behaviour.
void takeDeactivateParm(uint idx)
int getErrorMessages(UT_String &messages, UT_ErrorSeverity severity=UT_ERROR_NONE)
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 opError(int code, const char *m=0) const
void evalFloats(const UT_StringRef &pn, fpreal64 *v, fpreal t) const
const PRM_Parm * getParmPtr(const UT_StringRef &name) const
void evalFloats(const UT_StringRef &pn, fpreal32 *v, fpreal t) const
bool evalParameterOrProperty(const UT_StringRef &parm_name, int vec_index, fpreal now, fpreal &values, PRM_Parm **parmptr=NULL) 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()
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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)
void opFatal(int code, const char *m=0) const
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