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