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;
167 bool updateParmsAndSpareParmsFlags();
172 bool relative_references =
true);
182 const char *relative_path = NULL);
185 void animate(
unsigned idx);
186 void animate(
const char *
name);
187 void deAnimate(
unsigned idx);
188 void deAnimate(
const char *
name);
192 int destroyChannel(
const char *
name);
194 bool isObsoleteChannel(
const char *
name)
const;
196 void takeActivateParm(
uint idx,
bool enable=
true);
197 void takeActivateParm(
const char *
name,
bool enable=
true);
200 { takeActivateParm(idx,
false); }
202 { takeActivateParm(name,
false); }
204 { takeActivateParm(parm,
false); }
206 bool takeIsActiveParm(
uint idx);
207 bool takeIsActiveParm(
const char *
name);
208 bool takeIsActiveParm(
const PRM_Parm *parm);
218 {
return getChanState(t,
false); }
239 virtual
float getVariableValue(
int index,
int thread);
241 int getNumParms()
const
242 {
return myParmList->getEntries(); }
244 {
return myParmList->getParmIndex(name); }
253 const PRM_Parm *
p = myParmList->getParmPtr(i);
259 PRM_Parm *
p = myParmList->getParmPtr(name);
265 const PRM_Parm *
p = myParmList->getParmPtr(name);
270 {
return myParmList->getParmPtr(name) != 0; }
272 {
return myParmList->getParmPtr(name); }
274 {
return myParmList->getParmPtr(name); }
275 PRM_Parm *getParmPtrInst(
const char *
name,
const int *inst,
277 const PRM_Parm *getParmPtrInst(
const char *
name,
const int *inst,
278 int nestlevel = 1)
const;
289 {
return myChangingSpareParms; }
292 void deleteAllSpareParms();
307 const char *old_version,
308 const char *current_version,
314 virtual bool getParameterOrProperty(
319 bool create_missing_multiparms,
321 virtual bool getParameterOrPropertyByChannel(
339 return const_cast<OP_Parameters*
>(
this)->getParameterOrProperty(
340 name, now, op, parm,
false, obsolete);
347 virtual int findParametersOrProperties(
fpreal now,
357 return followChannelReferencesOneStepT(
358 opt, newop, newparm, newvecidx,
371 followChannelReferencesT(
372 opt, newop, newparm, newvecidx,
382 return followChannelReferencesWithDepsT(
383 opt, newop, newparm, newvecidx,
400 followChannelReferencesT(opt, ref,
SYSgetSTID());
405 static void getValueAsProcessedNodePaths(
fpreal t,
410 static void getValueAsProcessedNodePaths(
fpreal t,
422 bool enableParm(
int pi,
int state,
int v = -1);
423 bool enableParm(
const char *pn,
int state,
int v = -1);
424 bool enableParmInst(
const char *
name,
const int *inst,
425 int state,
int nestlevel = 1,
427 unsigned getEnableState(
int pi,
int v = -1);
428 unsigned getEnableState(
const char *pn,
int v = -1);
429 unsigned getEnableStateInst(
const char *
name,
const int *inst,
430 int nestlevel = 1,
int v = -1);
432 bool setVisibleState(
int pi,
bool state,
int v = -1);
433 bool setVisibleState(
const char *pn,
bool state,
int v = -1);
434 bool setVisibleStateInst(
const char *
name,
const int *inst,
435 int state,
int nestlevel = 1,
438 bool getVisibleState(
int pi,
int v = -1);
439 bool getVisibleState(
const char *pn,
int v = -1);
463 {
return evalIntT(pn, pi, vi, t,
SYSgetSTID()); }
467 {
return evalIntT(parm, vi, t,
SYSgetSTID()); }
472 {
return evalFloatT(pi, vi, t,
SYSgetSTID()); }
476 {
return evalFloatT(pn, vi, t,
SYSgetSTID()); }
481 {
return evalFloatT(pn, pi, vi, t,
SYSgetSTID()); }
485 {
return evalFloatT(parm, vi, t,
SYSgetSTID()); }
491 {
return evalFloatsT(pi, v, t,
SYSgetSTID()); }
496 {
return evalFloatsT(pn, v, t,
SYSgetSTID()); }
501 {
return evalFloatsT(pn, pi, v, t,
SYSgetSTID()); }
505 {
return evalFloatsT(parm, v, t,
SYSgetSTID()); }
514 {
return evalFloatsT(pi, v, t,
SYSgetSTID()); }
519 {
return evalFloatsT(pn, v, t,
SYSgetSTID()); }
524 {
return evalFloatsT(pn, pi, v, t,
SYSgetSTID()); }
529 {
return evalFloatsT(parm, v, t,
SYSgetSTID()); }
533 int nestlevel = 1)
const;
540 {
return evalStringT(val, pi, vi, t,
SYSgetSTID()); }
543 {
return evalStringT(val, pi, vi, t,
SYSgetSTID()); }
551 {
return evalStringT(val, pn, vi, t,
SYSgetSTID()); }
555 {
return evalStringT(val, pn, vi, t,
SYSgetSTID()); }
566 return evalStringT(val, pn, pi, vi, t,
573 return evalStringT(val, pn, pi, vi, t,
585 return evalStringT(val, parm, vi, t,
591 return evalStringT(val, parm, vi, t,
603 return evalStringRawT(val, pi, vi, t,
612 return evalStringRawT(val, pn, vi, t,
621 return evalStringRawT(val, pn, pi, vi, t,
630 return evalStringRawT(val, parm, vi, t,
637 {
return evalDataT(pi, vi, t,
SYSgetSTID()); }
641 {
return evalDataT(pn, vi, t,
SYSgetSTID()); }
646 {
return evalDataT(pn, pi, vi, t,
SYSgetSTID()); }
650 {
return evalDataT(parm, vi, t,
SYSgetSTID()); }
658 {
return evalJSONMapT(
665 {
return evalJSONMapT(
696 return evalJSONMapRawT(
705 return evalJSONMapRawT(
715 return evalJSONMapRawT(
726 return evalJSONMapRawT(
744 const int *inst,
int vi,
745 fpreal t,
int nestlevel = 1)
const
747 return evalIntInstT(name, inst, vi, t,
751 const int *inst,
int vi,
753 int nestlevel = 1)
const;
755 const int *inst,
int vi,
756 fpreal t,
int nestlevel = 1)
const
758 return evalFloatInstT(name, inst, vi, t,
762 const int *inst,
int vi,
764 int nestlevel = 1)
const;
768 int nestlevel = 1)
const
770 return evalFloatsInstT(name, inst, v, t,
776 int nestlevel = 1)
const;
780 int nestlevel = 1)
const
782 return evalStringInstT(name, inst, val, vi,
788 int nestlevel = 1)
const
790 return evalStringInstT(name, inst, val, vi,
796 int thread,
int nestlevel = 1)
const;
800 int thread,
int nestlevel = 1)
const;
804 int nestlevel = 1)
const
806 return evalStringInstRawT(name, inst, val, vi,
813 int nestlevel = 1)
const;
815 const int *inst,
int vi,
816 fpreal t,
int nestlevel = 1)
const
818 return evalDataInstT(name, inst, vi, t,
822 const int *inst,
int vi,
824 int nestlevel = 1)
const;
843 return evalParameterOrPropertyT(parm_name,
847 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
859 return evalParameterOrPropertyT(parm_name,
863 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
874 return evalParameterOrPropertyT(parm_name,
878 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
891 return evalParameterOrPropertyRawT(parm_name,
895 bool evalParameterOrPropertyRawT(
909 return evalParameterOrPropertyExprT(parm_name,
913 bool evalParameterOrPropertyExprT(
927 return evalVectorPropertyT(parm_name,
943 return evalVectorPropertyT(parm_name,
970 void setInt(
const char *parmname,
int &parmi,
int vectori,
fpreal t,
972 void setFloat(
int parmi,
int vectori,
fpreal t,
975 void setFloat(
const char *parmname,
int vectori,
fpreal t,
978 void setFloat(
const char *parmname,
int &parmi,
int vectori,
983 int parmi,
int vectori,
987 const char *parmname,
int vectori,
fpreal t);
990 const char *parmname,
991 int &parmi,
int vectori,
fpreal t);
992 void setData(
int parmi,
int vectori,
fpreal t,
994 void setData(
const char *parmname,
int vectori,
fpreal t,
996 void setData(
const char *parmname,
int &parmi,
int vectori,
fpreal t,
1021 bool propagate=
true);
1024 bool propagate=
true);
1028 bool propagate=
true);
1029 void setChRefFloat(
const char *pn,
int vi,
fpreal t,
1033 bool propagate=
true);
1040 bool propagate=
true);
1047 bool propagate=
true)
1049 setChRefString(val, meaning, pi, vi, t,
1050 add_key, propagate);
1058 bool propagate=
true);
1065 bool propagate=
true)
1067 setChRefString(val, meaning, pn, vi, t,
1068 add_key, propagate);
1074 bool propagate=
true);
1076 void setChRefData(
const char *pn,
int vi,
fpreal t,
1080 bool propagate=
true);
1105 bool setParameterOrProperty(
const char *parm_name,
1110 bool propagate=
true);
1111 bool setParameterOrProperty(
const char *parm_name,
1116 bool propagate=
true);
1117 bool setParameterOrProperty(
const char *parm_name,
1122 bool propagate=
true);
1123 bool setParameterOrProperty(
const char *parm_name,
1129 bool propagate=
true);
1141 void setIntInst(
exint value,
const char *parmname,
1142 const int *inst,
int vectori,
fpreal t,
1144 void setFloatInst(
fpreal value,
const char *parmname,
1145 const int *inst,
int vectori,
fpreal t,
1149 const char *parmname,
1150 const int *inst,
int vectori,
fpreal t,
1153 const char *parmname,
const int *inst,
1154 int vectori,
fpreal t,
int nestlevel = 1);
1168 void setSilentInt(
int parmi,
int vectori,
fpreal t,
1170 void setSilentInt(
const char *parmname,
int vectori,
1172 void setSilentInt(
const char *parmname,
int &parmi,
1175 void setSilentFloat(
int parmi,
int vectori,
fpreal t,
1178 void setSilentFloat(
const char *parmname,
int vectori,
1181 void setSilentFloat(
const char *parmname,
1182 int &parmi,
int vectori,
1188 int parmi,
int vectori,
fpreal t);
1191 const char *parmname,
int vectori,
fpreal t);
1194 const char *parmname,
1195 int &parmi,
int vectori,
fpreal t);
1196 void setSilentData(
int parmi,
int vectori,
fpreal t,
1198 void setSilentData(
const char *parmname,
int vectori,
1200 void setSilentData(
const char *parmname,
1201 int &parmi,
int vectori,
fpreal t,
1204 void setSilentIntInst(
exint value,
const char *parmname,
1205 const int *inst,
int vectori,
1207 void setSilentFloatInst(
fpreal value,
const char *parmname,
1208 const int *inst,
int vectori,
1212 const char *parmname,
1213 const int *inst,
int vectori,
1216 const char *parmname,
const int *inst,
1217 int vectori,
fpreal t,
int nestlevel = 1);
1224 int vi,
fpreal t,
int nest_level = 1)
const;
1232 bool create_channels=
false);
1241 void insertMultiParmItem(
const char *pn,
int i);
1242 void removeMultiParmItem(
const char *pn,
int i);
1250 UT_Ramp &ramp,
bool *time_dep = NULL,
1262 bool convertObsAnimatedToStringExpression(
1264 const char *pn,
int vi,
fpreal t,
1279 const char *channel_name = 0);
1281 virtual int findString(
const char *str,
bool fullword,
1282 bool usewildcards)
const;
1283 virtual int changeString(
const char *from,
const char *to,
1297 bool isParmDirty(
int idx,
fpreal t);
1298 bool isParmDirty(
const char *
n,
fpreal t);
1299 bool isParmDirtyInst(
const char *
name,
const int *inst,
1301 void cacheParmValues(
const OP_Context &context);
1302 void clearParmCache();
1307 bool isParmTimeDependent(
int idx,
int comp = -1)
const;
1312 bool isParmTimeDependent(
const char *
name,
1313 int comp = -1)
const;
1320 ensureErrorsAreUpdatedSubclass();
1323 stealGlobalErrors();
1324 return myErrorManager.getErrorMessages(messages,
1333 return myErrorManager.findError(type, code);
1339 return myErrorManager.removeError(idx);
1345 myErrorManager.pruneDuplicates();
1360 myErrorManager.addError(
"OP", code,
m);
1365 myErrorManager.addWarning(
"OP",code,
m);
1370 myErrorManager.addDeadlockError();
1376 int code,
const char *
m,
1382 myErrorManager.addGeneric(type, code, m, sev);
1390 myErrorManager.clearAndDestroyErrors();
1397 myErrorManager.clearAndDestroyErrors();
1400 virtual OP_ERROR getErrorSeverity();
1402 exint getErrorVersion();
1407 return myErrorManager.hasDeadlockError();
1412 ensureErrorsAreUpdatedSubclass();
1417 stealGlobalErrors();
1424 myErrorManager.updateSeverity(
1427 return myErrorManager.getSeverity();
1431 ensureErrorsAreUpdatedSubclass();
1436 stealGlobalErrors();
1443 myErrorManager.updateSeverity(
1446 return myErrorManager.getSeverity();
1449 bool borrow_only =
false);
1452 {
return myIsGettingSaveError; }
1455 void addChannelError(
const char *
type,
int code,
1456 const char *msg = 0);
1460 virtual void saveParmsForUndo(
bool scopedOnly =
false,
1462 void saveSingleParmForUndo(
PRM_Parm *parm);
1467 virtual void clearUndoFlags();
1468 virtual void setAnyUndoFlag();
1471 int canAccess(
unsigned mask)
const;
1472 bool canAccess(
unsigned mask,
const PRM_Parm *parm)
const;
1475 void updateUserMask();
1477 bool canModifyFromUI(
const PRM_Parm *parm,
int vi)
const;
1482 virtual int reloadNewFiles(
fpreal time_now);
1486 void parmChanged(
int parm_index );
1487 void parmExprChanged(
int parm_index);
1490 void operatorDeleted();
1493 void saveParmCommand(std::ostream &os,
int values = 0,
1494 int defaultstoo = 1,
1495 bool spareparms =
true)
const;
1496 int loadParmCommand(
int argc,
const char *
const argv[],
1497 int docallbacks,
void *
data,
1498 fpreal now,
bool followchrefs,
1500 void commandParmCallback(
void *
data,
fpreal now,
1501 int argc,
char *argv[],
1503 void saveMultiParmInstanceCommand(
1506 bool spareparms)
const;
1518 { myTakeReferences += dir; }
1520 {
return myTakeReferences; }
1528 void createChannelGroupsFromFolders(
CH_Group &parent_group,
1530 bool leaf_channels_only =
false,
1531 bool only_unlocked =
true);
1535 bool getAutoScopedChannel(
PRM_Parm *parm,
int vector_index,
1542 bool follow_layer_overrides=
true,
1543 bool include_animated=
false,
1544 bool follow_channel_refs=
true,
1545 bool include_autoscope=
true
1559 bool getParmIsVisible(
const char *parmname);
1567 const PRM_Template *getSpareParmLayoutTemplates()
const;
1569 int getSpareParmTemplatesId()
const;
1573 int numSpareInputs()
const;
1576 bool hasMultiparmInfo()
const;
1588 static void buildMParmInst(
const PRM_Template *templates,
1592 static bool isMParmInstance(
const char *chname,
1597 static void getLayersFromScopedChannels(
1605 bool propagate=
true);
1609 bool propagate=
true);
1612 const char *parmname,
int &
pi,
int vi,
1616 bool propagate=
true);
1619 bool propagate=
true);
1636 bool updateParmDisableConditional(
1641 bool updateParmHideConditional(
1652 bool updateParmDisableIfInactive(
PRM_Parm &parm,
1653 bool disable =
true);
1659 virtual
unsigned disableParms();
1664 virtual
bool updateParmsFlags() {
return false; }
1668 void saveMultiParmForUndo(
int index);
1670 void stealGlobalErrors();
1678 myErrorManager, myErrorManagerLock);
1681 virtual void permissionError(
const char *chname = 0);
1689 int err = ev_GetErrNo(thread);
1692 evaluationError(parm, err, thread);
1696 void resetParmEventHandler();
1698 int *allocIndirect(
int size=64);
1717 static bool isReservedOpName(
const char *
name);
1719 virtual int rename(
const char *newname);
1720 virtual bool createSpareParameterFromChannel(
const char *chname);
1721 virtual bool createSpareParametersFromChannels(
1731 bool compiled,
bool selected,
1732 bool pending_state);
1733 OP_ERROR saveParmChannels(
int parm_index, std::ostream &os,
1734 int binary,
bool compiled);
1778 virtual void updateSpareParmTemplates(
1780 bool leavedefaultsunchanged) = 0;
1788 void evaluationError(
const PRM_Parm *parm,
int err,
1793 void setFullInt(
int parmi,
int vectori,
fpreal t,
1795 void setFullInt(
const char *parmname,
int vectori,
fpreal t,
1797 void setFullInt(
const char *parmname,
int &parmi,
1803 void setFullFloat(
const char *pn,
int vi,
fpreal t,
1806 void setFullFloat(
const char *pn,
int &
pi,
int vi,
1816 int vi,
fpreal t,
bool propagate);
1823 void setFullData(
int pi,
int vi,
fpreal t,
1825 void setFullData(
const char *pn,
int vi,
fpreal t,
1827 void setFullData(
const char *pn,
int &
pi,
int vi,
fpreal t,
1830 void setFullIntInst(
exint value,
const char *parmname,
1831 const int *inst,
int vectori,
fpreal t,
1832 int nestlevel,
bool propagate);
1834 const int *inst,
int vi,
fpreal t,
1835 int nestlevel,
bool propagate);
1839 const int *inst,
int vi,
fpreal t,
1840 int nestlevel,
bool propagate);
1842 const char *
name,
const int *inst,
1843 int vi,
fpreal t,
int nestlevel,
1862 bool determineParmVisibility(
const char *parmname,
1869 static void addLayerFromScopedChannels(
1874 mutable OP_Lock myErrorManagerLock;
1879 uint myTakeReferences;
1881 unsigned myUndoAllParmSavedFlag:1,
1882 myUndoScopedSavedFlag:1,
1884 myIsGettingSaveError:1;
1889 bool myChangingSpareParms;
1894 friend class OP_UndoParm;
1895 friend class OP_UndoSpareParm;
OP_API void OPtakeAutoActivateChannel(CH_Channel *chp)
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)
const UT_String & getName() const
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
GLuint const GLchar * name
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
GLenum GLsizei GLsizei GLint * values
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
GLsizei GLsizei GLchar * source
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
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
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
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.
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.
OP_Operator * getOperator() const
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
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