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()); }
565 return evalStringT(val, pn, pi, vi, t,
569 const char *pn,
int *
pi,
572 return evalStringT(val, pn, pi, vi, t,
584 return evalStringT(val, parm, vi, t,
590 return evalStringT(val, parm, vi, t,
602 return evalStringRawT(val, pi, vi, t,
611 return evalStringRawT(val, pn, vi, t,
620 return evalStringRawT(val, pn, pi, vi, t,
629 return evalStringRawT(val, parm, vi, t,
636 {
return evalDataT(pi, vi, t,
SYSgetSTID()); }
640 {
return evalDataT(pn, vi, t,
SYSgetSTID()); }
645 {
return evalDataT(pn, pi, vi, t,
SYSgetSTID()); }
649 {
return evalDataT(parm, vi, t,
SYSgetSTID()); }
657 {
return evalJSONMapT(
664 {
return evalJSONMapT(
695 return evalJSONMapRawT(
704 return evalJSONMapRawT(
714 return evalJSONMapRawT(
725 return evalJSONMapRawT(
743 const int *inst,
int vi,
744 fpreal t,
int nestlevel = 1)
const
746 return evalIntInstT(name, inst, vi, t,
750 const int *inst,
int vi,
752 int nestlevel = 1)
const;
754 const int *inst,
int vi,
755 fpreal t,
int nestlevel = 1)
const
757 return evalFloatInstT(name, inst, vi, t,
761 const int *inst,
int vi,
763 int nestlevel = 1)
const;
767 int nestlevel = 1)
const
769 return evalFloatsInstT(name, inst, v, t,
775 int nestlevel = 1)
const;
779 int nestlevel = 1)
const
781 return evalStringInstT(name, inst, val, vi,
787 int nestlevel = 1)
const
789 return evalStringInstT(name, inst, val, vi,
795 int thread,
int nestlevel = 1)
const;
799 int thread,
int nestlevel = 1)
const;
803 int nestlevel = 1)
const
805 return evalStringInstRawT(name, inst, val, vi,
812 int nestlevel = 1)
const;
814 const int *inst,
int vi,
815 fpreal t,
int nestlevel = 1)
const
817 return evalDataInstT(name, inst, vi, t,
821 const int *inst,
int vi,
823 int nestlevel = 1)
const;
842 return evalParameterOrPropertyT(parm_name,
846 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
858 return evalParameterOrPropertyT(parm_name,
862 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
873 return evalParameterOrPropertyT(parm_name,
877 bool evalParameterOrPropertyT(
const UT_StringRef &parm_name,
890 return evalParameterOrPropertyRawT(parm_name,
894 bool evalParameterOrPropertyRawT(
908 return evalParameterOrPropertyExprT(parm_name,
912 bool evalParameterOrPropertyExprT(
926 return evalVectorPropertyT(parm_name,
942 return evalVectorPropertyT(parm_name,
969 void setInt(
const char *parmname,
int &parmi,
int vectori,
fpreal t,
971 void setFloat(
int parmi,
int vectori,
fpreal t,
974 void setFloat(
const char *parmname,
int vectori,
fpreal t,
977 void setFloat(
const char *parmname,
int &parmi,
int vectori,
982 int parmi,
int vectori,
986 const char *parmname,
int vectori,
fpreal t);
989 const char *parmname,
990 int &parmi,
int vectori,
fpreal t);
991 void setData(
int parmi,
int vectori,
fpreal t,
993 void setData(
const char *parmname,
int vectori,
fpreal t,
995 void setData(
const char *parmname,
int &parmi,
int vectori,
fpreal t,
1020 bool propagate=
true);
1023 bool propagate=
true);
1027 bool propagate=
true);
1028 void setChRefFloat(
const char *pn,
int vi,
fpreal t,
1032 bool propagate=
true);
1039 bool propagate=
true);
1046 bool propagate=
true)
1048 setChRefString(val, meaning, pi, vi, t,
1049 add_key, propagate);
1057 bool propagate=
true);
1064 bool propagate=
true)
1066 setChRefString(val, meaning, pn, vi, t,
1067 add_key, propagate);
1073 bool propagate=
true);
1075 void setChRefData(
const char *pn,
int vi,
fpreal t,
1079 bool propagate=
true);
1104 bool setParameterOrProperty(
const char *parm_name,
1109 bool propagate=
true);
1110 bool setParameterOrProperty(
const char *parm_name,
1115 bool propagate=
true);
1116 bool setParameterOrProperty(
const char *parm_name,
1121 bool propagate=
true);
1122 bool setParameterOrProperty(
const char *parm_name,
1128 bool propagate=
true);
1140 void setIntInst(
exint value,
const char *parmname,
1141 const int *inst,
int vectori,
fpreal t,
1143 void setFloatInst(
fpreal value,
const char *parmname,
1144 const int *inst,
int vectori,
fpreal t,
1148 const char *parmname,
1149 const int *inst,
int vectori,
fpreal t,
1152 const char *parmname,
const int *inst,
1153 int vectori,
fpreal t,
int nestlevel = 1);
1167 void setSilentInt(
int parmi,
int vectori,
fpreal t,
1169 void setSilentInt(
const char *parmname,
int vectori,
1171 void setSilentInt(
const char *parmname,
int &parmi,
1174 void setSilentFloat(
int parmi,
int vectori,
fpreal t,
1177 void setSilentFloat(
const char *parmname,
int vectori,
1180 void setSilentFloat(
const char *parmname,
1181 int &parmi,
int vectori,
1187 int parmi,
int vectori,
fpreal t);
1190 const char *parmname,
int vectori,
fpreal t);
1193 const char *parmname,
1194 int &parmi,
int vectori,
fpreal t);
1195 void setSilentData(
int parmi,
int vectori,
fpreal t,
1197 void setSilentData(
const char *parmname,
int vectori,
1199 void setSilentData(
const char *parmname,
1200 int &parmi,
int vectori,
fpreal t,
1203 void setSilentIntInst(
exint value,
const char *parmname,
1204 const int *inst,
int vectori,
1206 void setSilentFloatInst(
fpreal value,
const char *parmname,
1207 const int *inst,
int vectori,
1211 const char *parmname,
1212 const int *inst,
int vectori,
1215 const char *parmname,
const int *inst,
1216 int vectori,
fpreal t,
int nestlevel = 1);
1223 int vi,
fpreal t,
int nest_level = 1)
const;
1231 bool create_channels=
false);
1240 void insertMultiParmItem(
const char *pn,
int i);
1241 void removeMultiParmItem(
const char *pn,
int i);
1249 UT_Ramp &ramp,
bool *time_dep = NULL,
1261 bool convertObsAnimatedToStringExpression(
1263 const char *pn,
int vi,
fpreal t,
1278 const char *channel_name = 0);
1280 virtual int findString(
const char *str,
bool fullword,
1281 bool usewildcards)
const;
1282 virtual int changeString(
const char *from,
const char *to,
1296 bool isParmDirty(
int idx,
fpreal t);
1297 bool isParmDirty(
const char *
n,
fpreal t);
1298 bool isParmDirtyInst(
const char *
name,
const int *inst,
1300 void cacheParmValues(
const OP_Context &context);
1301 void clearParmCache();
1306 bool isParmTimeDependent(
int idx,
int comp = -1)
const;
1311 bool isParmTimeDependent(
const char *
name,
1312 int comp = -1)
const;
1319 ensureErrorsAreUpdatedSubclass();
1322 stealGlobalErrors();
1323 return myErrorManager.getErrorMessages(messages,
1332 return myErrorManager.findError(type, code);
1338 return myErrorManager.removeError(idx);
1344 myErrorManager.pruneDuplicates();
1359 myErrorManager.addError(
"OP", code,
m);
1364 myErrorManager.addWarning(
"OP",code,
m);
1369 myErrorManager.addDeadlockError();
1375 int code,
const char *
m,
1381 myErrorManager.addGeneric(type, code, m, sev);
1389 myErrorManager.clearAndDestroyErrors();
1396 myErrorManager.clearAndDestroyErrors();
1399 virtual OP_ERROR getErrorSeverity();
1401 exint getErrorVersion();
1406 return myErrorManager.hasDeadlockError();
1411 ensureErrorsAreUpdatedSubclass();
1416 stealGlobalErrors();
1423 myErrorManager.updateSeverity(
1426 return myErrorManager.getSeverity();
1430 ensureErrorsAreUpdatedSubclass();
1435 stealGlobalErrors();
1442 myErrorManager.updateSeverity(
1445 return myErrorManager.getSeverity();
1448 bool borrow_only =
false);
1451 {
return myIsGettingSaveError; }
1454 void addChannelError(
const char *
type,
int code,
1455 const char *msg = 0);
1459 virtual void saveParmsForUndo(
bool scopedOnly =
false,
1461 void saveSingleParmForUndo(
PRM_Parm *parm);
1466 virtual void clearUndoFlags();
1467 virtual void setAnyUndoFlag();
1470 int canAccess(
unsigned mask)
const;
1471 bool canAccess(
unsigned mask,
const PRM_Parm *parm)
const;
1474 void updateUserMask();
1476 bool canModifyFromUI(
const PRM_Parm *parm,
int vi)
const;
1481 virtual int reloadNewFiles(
fpreal time_now);
1485 void parmChanged(
int parm_index );
1486 void parmExprChanged(
int parm_index);
1489 void operatorDeleted();
1492 void saveParmCommand(std::ostream &os,
int values = 0,
1493 int defaultstoo = 1,
1494 bool spareparms =
true)
const;
1495 int loadParmCommand(
int argc,
const char *
const argv[],
1496 int docallbacks,
void *
data,
1497 fpreal now,
bool followchrefs,
1499 void commandParmCallback(
void *
data,
fpreal now,
1500 int argc,
char *argv[],
1502 void saveMultiParmInstanceCommand(
1505 bool spareparms)
const;
1517 { myTakeReferences += dir; }
1519 {
return myTakeReferences; }
1527 void createChannelGroupsFromFolders(
CH_Group &parent_group,
1529 bool leaf_channels_only =
false,
1530 bool only_unlocked =
true);
1534 bool getAutoScopedChannel(
PRM_Parm *parm,
int vector_index,
1541 bool follow_layer_overrides=
true,
1542 bool include_animated=
false,
1543 bool follow_channel_refs=
true,
1544 bool include_autoscope=
true
1558 bool getParmIsVisible(
const char *parmname);
1566 const PRM_Template *getSpareParmLayoutTemplates()
const;
1568 int getSpareParmTemplatesId()
const;
1572 int numSpareInputs()
const;
1575 bool hasMultiparmInfo()
const;
1587 static void buildMParmInst(
const PRM_Template *templates,
1591 static bool isMParmInstance(
const char *chname,
1596 static void getLayersFromScopedChannels(
1604 bool propagate=
true);
1608 bool propagate=
true);
1611 const char *parmname,
int &
pi,
int vi,
1615 bool propagate=
true);
1618 bool propagate=
true);
1635 bool updateParmDisableConditional(
1640 bool updateParmHideConditional(
1651 bool updateParmDisableIfInactive(
PRM_Parm &parm,
1652 bool disable =
true);
1658 virtual
unsigned disableParms();
1663 virtual
bool updateParmsFlags() {
return false; }
1667 void saveMultiParmForUndo(
int index);
1669 void stealGlobalErrors();
1677 myErrorManager, myErrorManagerLock);
1680 virtual void permissionError(
const char *chname = 0);
1688 int err = ev_GetErrNo(thread);
1691 evaluationError(parm, err, thread);
1695 void resetParmEventHandler();
1697 int *allocIndirect(
int size=64);
1716 static bool isReservedOpName(
const char *
name);
1718 virtual int rename(
const char *newname);
1719 virtual bool createSpareParameterFromChannel(
const char *chname);
1720 virtual bool createSpareParametersFromChannels(
1730 bool compiled,
bool selected,
1731 bool pending_state);
1732 OP_ERROR saveParmChannels(
int parm_index, std::ostream &os,
1733 int binary,
bool compiled);
1777 virtual void updateSpareParmTemplates(
1779 bool leavedefaultsunchanged) = 0;
1787 void evaluationError(
const PRM_Parm *parm,
int err,
1792 void setFullInt(
int parmi,
int vectori,
fpreal t,
1794 void setFullInt(
const char *parmname,
int vectori,
fpreal t,
1796 void setFullInt(
const char *parmname,
int &parmi,
1802 void setFullFloat(
const char *pn,
int vi,
fpreal t,
1805 void setFullFloat(
const char *pn,
int &
pi,
int vi,
1815 int vi,
fpreal t,
bool propagate);
1822 void setFullData(
int pi,
int vi,
fpreal t,
1824 void setFullData(
const char *pn,
int vi,
fpreal t,
1826 void setFullData(
const char *pn,
int &
pi,
int vi,
fpreal t,
1829 void setFullIntInst(
exint value,
const char *parmname,
1830 const int *inst,
int vectori,
fpreal t,
1831 int nestlevel,
bool propagate);
1833 const int *inst,
int vi,
fpreal t,
1834 int nestlevel,
bool propagate);
1838 const int *inst,
int vi,
fpreal t,
1839 int nestlevel,
bool propagate);
1841 const char *
name,
const int *inst,
1842 int vi,
fpreal t,
int nestlevel,
1861 bool determineParmVisibility(
const char *parmname,
1868 static void addLayerFromScopedChannels(
1873 mutable OP_Lock myErrorManagerLock;
1878 uint myTakeReferences;
1880 unsigned myUndoAllParmSavedFlag:1,
1881 myUndoScopedSavedFlag:1,
1883 myIsGettingSaveError:1;
1888 bool myChangingSpareParms;
1893 friend class OP_UndoParm;
1894 friend class OP_UndoSpareParm;
OP_API void OPtakeAutoActivateChannel(CH_Channel *chp)
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
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)
OIIO_API bool rename(string_view from, string_view to, std::string &err)
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
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()
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)
GLint GLint GLsizei GLint GLenum GLenum type
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)
bool hasParm(const char *name) 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
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
PRM_Parm & getParm(const char *name)
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
virtual void resolveObsoleteParms(PRM_ParmList *)
bool getParameterOrPropertyConst(const UT_StringRef &name, fpreal now, OP_Node *&op, PRM_Parm *&parm, PRM_ParmList *obsolete) const
void evalString(UT_StringHolder &val, const char *pn, int *pi, int vi, fpreal t) const
Utility class for containing a color ramp.
void evalJSONMap(UT_JSONValueMap &val, const UT_StringRef &pn, int vi, fpreal t) const
const PRM_Parm & getParm(const char *name) 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)
void evalString(UT_String &val, const char *pn, int *pi, int vi, fpreal t) const
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)
GLsizei const GLfloat * value
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
int getParmIndex(const char *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)
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