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;
104 virtual const char *getDataTypeToken()
const = 0;
124 virtual const char *getDataType()
const = 0;
125 virtual int64 getMemoryUsage()
const = 0;
132 UT_SMALLOBJECT_CLEANPAGES_DEFAULT,
133 UT_SMALLOBJECT_PAGESIZE_DEFAULT,
134 UT_SMALLOBJECT_THREADSAFE_OFF>
146 void adoptOverrides(
PRM_Parm &srcparm);
149 void revertToDefault(
fpreal time,
int index,
bool propagate=
true);
150 void restoreFactoryDefaults();
151 void restoreFactoryDefault(
int index);
154 {
return myDestructiveRevertToDefaultFlag; }
156 { myDestructiveRevertToDefaultFlag =
v; }
159 {
return myRevertInvisibleToDefaultsFlag; }
161 { myRevertInvisibleToDefaultsFlag =
v; }
164 {
return myMakeSpareParmsForUnknownChannelsFlag; }
166 { myMakeSpareParmsForUnknownChannelsFlag =
v; }
169 static bool isStringThatCanExpand(
const char *str);
170 static bool isOrdinalExpression(
const char *str,
172 static bool isOrdinalExpression(
const PRM_Default &dflt,
177 static void convertStringToExprLanguage(
const char *str,
180 static void convertStringFromExprLanguage(
const char *str,
184 static bool getIsAddingOrRemovingMultiParms();
187 static void instanceMultiString(
UT_String &token,
189 bool fill_remaining=
true);
190 static void instanceMultiString(
UT_String &token,
191 const int *indexlist,
int num,
192 bool fill_remaining=
true);
197 int isDefault()
const;
198 int isDefault(
int index)
const;
199 int isFactoryDefault()
const;
200 int isFactoryDefault(
int index)
const;
206 int isTrueFactoryDefault(
int index)
const;
207 int isTrueFactoryDefault()
const;
212 int isFactoryDefaultUI(
int index)
const;
213 int isFactoryDefaultUI()
const;
215 void overwriteDefaults(
fpreal time);
216 void overwriteDefault(
fpreal time,
int index);
219 void changeOpRef(
const char *new_fullpath,
const char *old_fullpath,
220 const char *old_cwd,
const char *chan_name,
221 const char *old_chan_name,
222 void (*undo_callback)(
void *),
void *undo_data,
232 bool expand,
int thread)
const;
234 bool expand,
int thread)
const;
241 bool expand,
int thread)
const;
247 void getDefaultValue(
fpreal &
value,
int index)
const;
254 int index,
int thread)
const;
259 int index,
int thread)
const;
261 int index,
int thread)
const;
266 int index,
int thread)
const;
270 int index,
bool evaluate =
true,
271 bool rmchannel =
false,
bool propagate =
true);
281 bool kill_expr =
false,
int index = 0,
283 bool propagate =
true);
286 bool kill_expr =
false,
int index = 0,
288 bool propagate =
true);
291 bool kill_expr =
false,
int index = 0,
293 bool propagate =
true);
296 bool kill_expr =
false,
int index = 0,
298 bool propagate =
true);
301 bool kill_expr =
false,
int index = 0,
303 bool propagate =
true);
311 bool kill_expr =
false,
313 bool propagate =
true);
315 bool kill_expr =
false,
317 bool propagate =
true);
319 bool kill_expr =
false,
321 bool propagate =
true);
324 bool kill_expr =
false,
326 bool propagate =
true);
333 bool isMultiParm()
const;
340 void insertMultiParmItem(
int index,
bool propagate = 1);
343 void removeMultiParmItem(
int index,
bool propagate = 1);
346 void revertMultiParmItem(
int index);
350 void revertAllMultiParmItems();
354 void assignMultiParmItem(
int from,
int to);
358 void swapMultiParmItem(
int from,
int to);
363 void moveMultiParmItems(
364 const UT_Array<std::pair<int,int>> &moves);
367 int getMultiParmNumItems()
const;
373 int getMultiParmInstancesPerItem()
const;
377 const char* getMultiParmToken(
int p,
int index)
const;
382 int getMultiParmUIEntries()
const;
385 const PRM_Template *getMultiParmTemplate(
int idx)
const;
390 PRM_Parm *getMultiParm(
int idx)
const;
391 int getMultiParmCount()
const;
399 { privateValueChanged(vec_idx, propagate,
401 void sendValueChanged(
int vec_idx,
bool propagate);
402 void indirectChange(
int vec_idx,
bool expr_changed,
403 bool update_multi =
true);
406 int setOverride(
int index,
int data_idx,
const char *
source,
408 const char *getOverride(
int index)
const;
409 int getOverrideDataIndex(
int index)
const;
411 bool getOverrideTrackName(
int index,
UT_String &trackname)
const;
413 int setOverrideDisable(
int index,
int onoff);
414 int getIsOverrideActive(
int index)
const;
426 void copyValue(
fpreal t,
int dest_vi,
427 const PRM_Parm &src_parm,
int src_vi,
429 bool current_value_only,
430 bool set_value_to_default =
false,
435 void addChannel(
int index,
bool propagate =
true);
436 void addChannel(
int index,
const char *theexpr,
438 int addChannel(
const char *
name);
439 int addChannel(
const char *
name,
const char *expr,
442 void clearAndDestroyChannels(
bool force =
false);
443 void removeChannel(
int index,
bool propagage =
true);
447 void clearAndDestroyUnrefChannels(
const PRM_Parm &repl_parm);
450 int getChannelCount()
const;
452 void reloadChannelPtrs();
453 int channelPtrModified(
const char *
name);
455 int isTimeDependent()
const;
456 bool isTimeDependent(
int subindex)
const;
457 int isDataDependent(
fpreal gtime)
const;
458 bool isDataDependent(
fpreal gtime,
int subindex)
const;
459 void forceTimeDependent(
int subindex);
461 bool hasContextOptionDeps(
int subindex)
const;
463 void forceContextOptionDep(
int subindex,
469 fpreal getMultiSize()
const;
470 int getMultiStartOffset()
const;
472 bool isRampType()
const;
473 bool isRampTypeColor()
const;
476 {
return getTemplatePtr()->getVectorSize(); }
477 void getChannelToken(
UT_String &thestrref,
int index = 0)
const;
478 void getChannelLabel(
UT_String &thestrref,
int index = 0)
const;
480 void getLabel(
UT_String &thestrref)
const;
481 void getHelpText(
UT_String &helptext)
const;
482 void getHelpUrl(
UT_String &helptext)
const;
483 void getHelpTitle(
UT_String &helptext)
const;
486 const char *getLabel()
const;
490 {
return getTemplatePtr()->getTokenRef(); }
494 {
return getTemplatePtr()->getChannelToken(vi); }
498 {
return getTemplatePtr()->getDecodedChannelToken(vi); }
500 void getChannelLabelForUI(
UT_String &thestrref,
int vec_idx)
const;
504 unsigned getTokenHash()
const;
506 bool hasChannelAlias(
int subindex)
const ;
507 void getChannelAlias(
UT_String &stringref,
int subindex)
const;
509 getChannelAlias(
int subindex)
const;
517 bool setChannelAlias(
const char *token_alias,
int subindex);
525 void createInputNotifyValue();
528 bool hasMicroNodes()
const;
531 int isDirty(
int vector_idx=0)
const;
532 int areAllFlagsClean()
const;
533 void clearAllDirtyFlags();
537 bool isSendExtra(
int vi)
const;
538 bool hasAnySendExtraFlags()
const;
540 int findSubIndex(
const char *thechannelname,
bool allow_alias)
const;
550 unsigned getEnableState(
int comp = -1)
const;
551 unsigned getInstanceEnableState(
int comp = -1)
const;
552 int setEnableState(
int thestate,
int comp = -1);
554 bool getActiveTakeFlag()
const;
555 bool getAlwaysTakeFlag()
const;
556 void setActiveTakeFlag(
int onoff);
557 bool getBypassFlag()
const;
558 void setBypassFlag(
bool v);
560 bool getVisibleState(
int comp = -1)
const;
561 bool setVisibleState(
bool f,
int comp = -1);
563 int getExpressionState();
564 void setExpressionState(
int state);
566 void setValueState(
int state);
571 bool isValueEditableByUI(
fpreal time,
int index)
const;
576 bool isExpressionEditableByUI(
fpreal time,
int index)
const;
579 void hardenChanges(
fpreal time,
bool forceflag = 0,
580 const char *patt = 0,
582 void hardenChanges(
fpreal time,
int index,
bool forceflag = 0,
583 const char *patt = 0,
586 void setKey(
fpreal time,
int index);
587 void setKey(
fpreal time,
int index,
const char *
exp,
592 bool accel_ratios =
true);
604 bool isLanguageOldExprOrLiteral(
fpreal time,
int index);
606 int changePending(
int index);
610 void save(std::ostream &os,
int binary,
bool compiled)
const;
616 void saveCommand(std::ostream &os,
int values=0,
int index=-1)
const;
617 int loadCommand(
int argc,
const char *
const argv[],
int index,
623 int findString(
const char *str,
bool fullword,
624 bool usewildcards)
const;
625 int changeString(
const char *from,
const char *to,
bool fullword);
627 bool notifyVarChange(
const char *varname);
629 bool getUndoSavedFlag();
633 void setUndoSavedFlag(
bool f);
635 bool getAutoTakeUndoSavedFlag();
639 void setAutoTakeUndoSavedFlag(
bool f);
641 bool getLockedFlag(
int vec_idx)
const;
642 bool areAllComponentsLocked()
const;
643 void setLockedFlag(
int vec_idx,
bool f);
644 unsigned int getLockedField()
const;
645 bool getAutoScopedFlag(
int vec_idx)
const;
646 void setAutoScopedFlag(
int vec_idx,
bool f);
647 unsigned int getAutoScopedField()
const;
651 int parm_group_mask ,
652 bool add_if_default ,
656 void destroyChildParms();
666 bool isCompatible(
const PRM_Parm &other_parm)
const;
670 bool isOfBasicType(
PRM_Type check_type)
const;
675 bool isParmValueEqual(
PRM_Parm &other_parm,
int vec_index,
677 bool isParmValueEqual(
int vec_index,
PRM_Parm &other_parm,
678 int other_index,
fpreal time,
686 int vec_index)
const;
690 void getAllChannelAliases(
UT_String &aliasstring,
691 char sep =
'/')
const;
694 bool isActive(
const int index)
const;
695 void setActive(
const int index,
const bool active);
697 int64 getMemoryUsage(
bool inclusive)
const;
699 bool isSpareParm()
const;
700 void setSpareParm(
bool sp)
const;
703 void setMultiParmOwner(
const PRM_Multi *multiparmowner);
721 bool instance_index=
true)
const;
723 void rebuildParmDependency();
725 bool isRotationParm()
const;
729 void setChannelReference(
fpreal time,
732 const char *ch_name=
nullptr,
734 bool rmchannel=
false);
744 const char *ch_name=
nullptr);
746 static bool isChanRefString(
const char *str,
bool is_expr,
749 bool getHaveCompiledExpressions()
const;
754 void setSaveLabelFlag(
bool f);
757 bool hasChannelCustomColor(
int index)
const;
758 const UT_Color &getChannelCustomColor(
int index)
const;
759 void setChannelCustomColor(
int index,
const UT_Color &
c);
760 void resetChannelCustomColor(
int index);
762 bool getAutoSelectFlag(
int vec_idx)
const;
763 void setAutoSelectFlag(
int vec_idx,
bool f);
764 unsigned int getAutoSelectField()
const;
766 void setTimeDependentMicroNode(
int subindex,
bool timedep)
const;
768 void privateValueChanged(
773 template <
typename DstT,
typename SrcT>
787 static bool myAlwaysHardenFlag;
788 static bool myDestructiveRevertToDefaultFlag;
789 static bool myRevertInvisibleToDefaultsFlag;
790 static bool myMakeSpareParmsForUnknownChannelsFlag;
GLsizei GLenum const void * indices
UT_JSONValueMap stores a map/dictionary of UT_JSONValue objects.
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
const GLuint GLenum const void * binary
UT_ConcurrentSet< UT_StringHolder > DEP_ContextOptionDeps
UT_Array< std::pair< UT_StringHolder, PRM_UndoDataHandle > > PRM_UndoDataList
GLsizei const GLchar *const * path
virtual bool canSaveAsUnprotectedString() const
static void setMakeSpareParmsForUnknownChannelsFlag(bool v)
__hostdev__ void setValue(uint32_t offset, bool v)
virtual UT_JSONValueMap * getKeyValueDict() const
static bool getRevertInvisibleToDefaultsFlag()
__hostdev__ float getValue(uint32_t i) const
const UT_StringHolder & getDecodedChannelToken(int vi=0) const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
static void setAlwaysHardenFlag(bool o)
GLsizei GLsizei GLchar * source
void valueChanged(int vec_idx, bool propagate)
PRM_Callback getCallback()
GLuint const GLchar * name
const UT_StringHolder & getChannelToken(int vi=0) const
static void setRevertInvisibleToDefaultsFlag(bool v)
SYS_FORCE_INLINE UT_StringHolder getToken(Add enum_value)
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate active
static bool getAlwaysHardenFlag()
**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
SIM_API const UT_StringHolder force
GLenum GLsizei GLsizei GLint * values
PRM_ParmList * getOwner() const
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate and *a name There is also one special expression reference
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.