81 virtual const char *getDataTypeToken()
const = 0;
82 virtual bool saveAscii(std::ostream &os)
const = 0;
83 virtual bool saveBinary(std::ostream &os)
const = 0;
84 virtual int64 getMemoryUsage()
const = 0;
96 virtual const char *getDataTypeToken()
const = 0;
110 virtual const char *getDataType()
const = 0;
111 virtual int64 getMemoryUsage()
const = 0;
118 UT_SMALLOBJECT_CLEANPAGES_DEFAULT,
119 UT_SMALLOBJECT_PAGESIZE_DEFAULT,
120 UT_SMALLOBJECT_THREADSAFE_OFF>
132 void adoptOverrides(
PRM_Parm &srcparm);
135 void revertToDefault(
fpreal time,
int index,
bool propagate=
true);
136 void restoreFactoryDefaults();
137 void restoreFactoryDefault(
int index);
140 {
return myDestructiveRevertToDefaultFlag; }
142 { myDestructiveRevertToDefaultFlag =
v; }
145 {
return myRevertInvisibleToDefaultsFlag; }
147 { myRevertInvisibleToDefaultsFlag =
v; }
150 {
return myMakeSpareParmsForUnknownChannelsFlag; }
152 { myMakeSpareParmsForUnknownChannelsFlag =
v; }
155 static bool isStringThatCanExpand(
const char *str);
156 static bool isOrdinalExpression(
const char *str,
158 static bool isOrdinalExpression(
const PRM_Default &dflt,
163 static void convertStringToExprLanguage(
const char *str,
166 static void convertStringFromExprLanguage(
const char *str,
170 static bool getIsAddingOrRemovingMultiParms();
176 static bool replaceRemainingMultiNumbers(
UT_String &str);
179 static void instanceMultiString(
UT_String &token,
181 bool fill_remaining=
true);
182 static void instanceMultiString(
UT_String &token,
183 const int *indexlist,
int num,
184 bool fill_remaining=
true);
189 int isDefault()
const;
190 int isDefault(
int index)
const;
191 int isFactoryDefault()
const;
192 int isFactoryDefault(
int index)
const;
198 int isTrueFactoryDefault(
int index)
const;
199 int isTrueFactoryDefault()
const;
204 int isFactoryDefaultUI(
int index)
const;
205 int isFactoryDefaultUI()
const;
207 void overwriteDefaults(
fpreal time);
208 void overwriteDefault(
fpreal time,
int index);
211 void changeOpRef(
const char *new_fullpath,
const char *old_fullpath,
212 const char *old_cwd,
const char *chan_name,
213 const char *old_chan_name,
214 void (*undo_callback)(
void *),
void *undo_data,
224 bool expand,
int thread)
const;
226 bool expand,
int thread)
const;
233 bool expand,
int thread)
const;
239 void getDefaultValue(
fpreal &
value,
int index)
const;
246 int index,
int thread)
const;
251 int index,
int thread)
const;
253 int index,
int thread)
const;
258 int index,
int thread)
const;
262 int index,
bool evaluate =
true,
263 bool rmchannel =
false,
bool propagate =
true);
268 bool kill_expr =
false,
int index = 0,
270 bool propagate =
true);
273 bool kill_expr =
false,
int index = 0,
275 bool propagate =
true);
278 bool kill_expr =
false,
int index = 0,
280 bool propagate =
true);
283 bool kill_expr =
false,
int index = 0,
285 bool propagate =
true);
288 bool kill_expr =
false,
int index = 0,
290 bool propagate =
true);
297 bool kill_expr =
false,
299 bool propagate =
true);
302 bool kill_expr =
false,
304 bool propagate =
true);
307 bool kill_expr =
false,
309 bool propagate =
true);
316 bool isMultiParm()
const;
323 void insertMultiParmItem(
int index,
bool propagate = 1);
326 void removeMultiParmItem(
int index,
bool propagate = 1);
329 void revertMultiParmItem(
int index);
333 void revertAllMultiParmItems();
337 void assignMultiParmItem(
int from,
int to);
341 void swapMultiParmItem(
int from,
int to);
344 int getMultiParmNumItems()
const;
350 int getMultiParmInstancesPerItem()
const;
354 const char* getMultiParmToken(
int p,
int index)
const;
359 int getMultiParmUIEntries()
const;
362 const PRM_Template *getMultiParmTemplate(
int idx)
const;
367 PRM_Parm *getMultiParm(
int idx)
const;
368 int getMultiParmCount()
const;
376 { privateValueChanged(vec_idx, propagate,
378 void sendValueChanged(
int vec_idx,
bool propagate);
379 void indirectChange(
int vec_idx,
bool expr_changed,
380 bool update_multi =
true);
383 int setOverride(
int index,
int data_idx,
const char *
source,
385 const char *getOverride(
int index)
const;
386 int getOverrideDataIndex(
int index)
const;
388 bool getOverrideTrackName(
int index,
UT_String &trackname)
const;
390 int setOverrideDisable(
int index,
int onoff);
391 int getIsOverrideActive(
int index)
const;
403 void copyValue(
fpreal t,
int dest_vi,
404 const PRM_Parm &src_parm,
int src_vi,
406 bool current_value_only,
407 bool set_value_to_default =
false,
412 void addChannel(
int index,
bool propagate =
true);
413 void addChannel(
int index,
const char *theexpr,
415 int addChannel(
const char *
name);
416 int addChannel(
const char *
name,
const char *expr,
419 void clearAndDestroyChannels(
bool force =
false);
420 void removeChannel(
int index,
bool propagage =
true);
424 void clearAndDestroyUnrefChannels(
const PRM_Parm &repl_parm);
427 int getChannelCount()
const;
429 void reloadChannelPtrs();
430 int channelPtrModified(
const char *
name);
432 int isTimeDependent()
const;
433 bool isTimeDependent(
int subindex)
const;
434 int isDataDependent(
fpreal gtime)
const;
435 bool isDataDependent(
fpreal gtime,
int subindex)
const;
436 void forceTimeDependent(
int subindex);
438 bool hasContextOptionDeps(
int subindex)
const;
440 void forceContextOptionDep(
int subindex,
446 fpreal getMultiSize()
const;
447 int getMultiStartOffset()
const;
449 bool isRampType()
const;
450 bool isRampTypeColor()
const;
453 {
return getTemplatePtr()->getVectorSize(); }
454 void getChannelToken(
UT_String &thestrref,
int index = 0)
const;
455 void getChannelLabel(
UT_String &thestrref,
int index = 0)
const;
456 void getToken(
UT_String &thestrref)
const;
457 void getLabel(
UT_String &thestrref)
const;
458 void getHelpText(
UT_String &helptext)
const;
459 void getHelpUrl(
UT_String &helptext)
const;
460 void getHelpTitle(
UT_String &helptext)
const;
462 const char *getToken()
const;
463 const char *getLabel()
const;
467 {
return getTemplatePtr()->getTokenRef(); }
471 {
return getTemplatePtr()->getChannelToken(vi); }
475 {
return getTemplatePtr()->getDecodedChannelToken(vi); }
477 void getChannelLabelForUI(
UT_String &thestrref,
int vec_idx)
const;
481 unsigned getTokenHash()
const;
483 bool hasChannelAlias(
int subindex)
const ;
484 void getChannelAlias(
UT_String &stringref,
int subindex)
const;
486 getChannelAlias(
int subindex)
const;
494 bool setChannelAlias(
const char *token_alias,
int subindex);
502 void createInputNotifyValue();
505 bool hasMicroNodes()
const;
508 int isDirty(
int vector_idx=0)
const;
509 int areAllFlagsClean()
const;
510 void clearAllDirtyFlags();
514 bool isSendExtra(
int vi)
const;
515 bool hasAnySendExtraFlags()
const;
517 int findSubIndex(
const char *thechannelname,
bool allow_alias)
const;
526 unsigned getEnableState(
int comp = -1)
const;
527 unsigned getInstanceEnableState(
int comp = -1)
const;
528 int setEnableState(
int thestate,
int comp = -1);
530 bool getActiveTakeFlag()
const;
531 bool getAlwaysTakeFlag()
const;
532 void setActiveTakeFlag(
int onoff);
533 bool getBypassFlag()
const;
534 void setBypassFlag(
bool v);
536 bool getVisibleState(
int comp = -1)
const;
537 bool setVisibleState(
bool f,
int comp = -1);
539 int getExpressionState();
540 void setExpressionState(
int state);
542 void setValueState(
int state);
547 bool isValueEditableByUI(
fpreal time,
int index)
const;
552 bool isExpressionEditableByUI(
fpreal time,
int index)
const;
555 void hardenChanges(
fpreal time,
bool forceflag = 0,
556 const char *patt = 0,
558 void hardenChanges(
fpreal time,
int index,
bool forceflag = 0,
559 const char *patt = 0,
562 void setKey(
fpreal time,
int index);
563 void setKey(
fpreal time,
int index,
const char *
exp,
568 bool accel_ratios =
true);
581 bool languageIsNodesLanguage(
fpreal time,
int index);
583 int changePending(
int index);
587 void save(std::ostream &os,
int binary,
bool compiled)
const;
593 void saveCommand(std::ostream &os,
int values=0,
int index=-1)
const;
594 int loadCommand(
int argc,
const char *
const argv[],
int index,
600 int findString(
const char *str,
bool fullword,
601 bool usewildcards)
const;
602 int changeString(
const char *from,
const char *to,
bool fullword);
604 bool notifyVarChange(
const char *varname);
606 bool getUndoSavedFlag();
610 void setUndoSavedFlag(
bool f);
612 bool getAutoTakeUndoSavedFlag();
616 void setAutoTakeUndoSavedFlag(
bool f);
618 bool getLockedFlag(
int vec_idx)
const;
619 bool areAllComponentsLocked()
const;
620 void setLockedFlag(
int vec_idx,
bool f);
621 unsigned int getLockedField()
const;
622 bool getAutoScopedFlag(
int vec_idx)
const;
623 void setAutoScopedFlag(
int vec_idx,
bool f);
624 unsigned int getAutoScopedField()
const;
628 int parm_group_mask ,
629 bool add_if_default ,
633 void destroyChildParms();
643 bool isCompatible(
const PRM_Parm &other_parm)
const;
647 bool isOfBasicType(
PRM_Type check_type)
const;
652 bool isParmValueEqual(
PRM_Parm &other_parm,
int vec_index,
654 bool isParmValueEqual(
int vec_index,
PRM_Parm &other_parm,
655 int other_index,
fpreal time,
663 int vec_index)
const;
667 void getAllChannelAliases(
UT_String &aliasstring,
668 char sep =
'/')
const;
671 bool isActive(
const int index)
const;
672 void setActive(
const int index,
const bool active);
674 int64 getMemoryUsage(
bool inclusive)
const;
676 bool isSpareParm()
const;
677 void setSpareParm(
bool sp)
const;
680 void setMultiParmOwner(
const PRM_Multi *multiparmowner);
698 bool instance_index=
true)
const;
700 void rebuildParmDependency();
702 bool isRotationParm()
const;
706 void setChannelReference(
fpreal time,
709 const char *ch_name=
nullptr,
711 bool rmchannel=
false);
721 const char *ch_name=
nullptr);
723 static bool isChanRefString(
const char *str,
bool is_expr,
726 bool getHaveCompiledExpressions()
const;
731 void setSaveLabelFlag(
bool f);
734 bool hasChannelCustomColor(
int index)
const;
735 const UT_Color &getChannelCustomColor(
int index)
const;
736 void setChannelCustomColor(
int index,
const UT_Color &
c);
737 void resetChannelCustomColor(
int index);
739 bool getAutoSelectFlag(
int vec_idx)
const;
740 void setAutoSelectFlag(
int vec_idx,
bool f);
741 unsigned int getAutoSelectField()
const;
743 void setTimeDependentMicroNode(
int subindex,
bool timedep)
const;
745 void privateValueChanged(
756 static bool myAlwaysHardenFlag;
757 static bool myDestructiveRevertToDefaultFlag;
758 static bool myRevertInvisibleToDefaultsFlag;
759 static bool myMakeSpareParmsForUnknownChannelsFlag;
UT_JSONValueMap stores a map/dictionary of UT_JSONValue objects.
GLuint const GLchar * name
const UT_StringRef & getTokenRef() const
static bool getDestructiveRevertToDefaultFlag()
GT_API const UT_StringHolder time
static bool getMakeSpareParmsForUnknownChannelsFlag()
PRM_API size_t format(char *buffer, size_t buffer_size, const PRM_Parm &v)
UT_SharedPtr< PRM_UndoData > PRM_UndoDataHandle
int getVectorSize() const
UT_ConcurrentSet< UT_StringHolder > DEP_ContextOptionDeps
UT_Array< std::pair< UT_StringHolder, PRM_UndoDataHandle > > PRM_UndoDataList
GLint GLsizei const GLuint64 * values
GLsizei GLsizei GLchar * source
static void setMakeSpareParmsForUnknownChannelsFlag(bool v)
virtual UT_JSONValueMap * getKeyValueDict() const
static bool getRevertInvisibleToDefaultsFlag()
const UT_StringHolder & getDecodedChannelToken(int vi=0) const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
std::string OIIO_API replace(string_view str, string_view pattern, string_view replacement, bool global=false)
GLint GLenum GLsizei GLint GLsizei const void * data
const GLuint GLenum const void * binary
static void setAlwaysHardenFlag(bool o)
GLuint GLuint GLsizei GLenum const void * indices
void valueChanged(int vec_idx, bool propagate)
PRM_Callback getCallback()
*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
GLuint GLuint GLsizei GLenum type
const UT_StringHolder & getChannelToken(int vi=0) const
static void setRevertInvisibleToDefaultsFlag(bool v)
static bool getAlwaysHardenFlag()
GLsizei const GLchar *const * path
PRM_ParmList * getOwner() const
GLenum const void GLuint GLint reference
GLsizei const GLfloat * value
virtual ~PRM_DataFactory()
static void setDestructiveRevertToDefaultFlag(bool v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
PRM_MultiType
This type enum defines the different types of multi (dynamic) parameters.