79 virtual const char *getDataTypeToken()
const = 0;
80 virtual bool saveAscii(std::ostream &os)
const = 0;
81 virtual bool saveBinary(std::ostream &os)
const = 0;
82 virtual int64 getMemoryUsage()
const = 0;
94 virtual const char *getDataTypeToken()
const = 0;
108 virtual const char *getDataType()
const = 0;
109 virtual int64 getMemoryUsage()
const = 0;
116 UT_SMALLOBJECT_CLEANPAGES_DEFAULT,
117 UT_SMALLOBJECT_PAGESIZE_DEFAULT,
118 UT_SMALLOBJECT_THREADSAFE_OFF>
130 void adoptOverrides(
PRM_Parm &srcparm);
132 void revertToDefaults(
fpreal time);
133 void revertToDefault(
fpreal time,
int index,
bool propagate=
true);
134 void restoreFactoryDefaults();
135 void restoreFactoryDefault(
int index);
138 {
return myDestructiveRevertToDefaultFlag; }
140 { myDestructiveRevertToDefaultFlag =
v; }
143 {
return myRevertInvisibleToDefaultsFlag; }
145 { myRevertInvisibleToDefaultsFlag =
v; }
148 {
return myMakeSpareParmsForUnknownChannelsFlag; }
150 { myMakeSpareParmsForUnknownChannelsFlag =
v; }
153 static bool isStringThatCanExpand(
const char *str);
154 static bool isOrdinalExpression(
const char *str,
156 static bool isOrdinalExpression(
const PRM_Default &dflt,
161 static void convertStringToExprLanguage(
const char *str,
164 static void convertStringFromExprLanguage(
const char *str,
168 static bool getIsAddingOrRemovingMultiParms();
171 static bool replaceMultiNumber(
UT_String &str,
const char *replace);
174 static bool replaceRemainingMultiNumbers(
UT_String &str);
177 static void instanceMultiString(
UT_String &token,
179 bool fill_remaining=
true);
180 static void instanceMultiString(
UT_String &token,
181 const int *indexlist,
int num,
182 bool fill_remaining=
true);
187 int isDefault()
const;
188 int isDefault(
int index)
const;
189 int isFactoryDefault()
const;
190 int isFactoryDefault(
int index)
const;
196 int isTrueFactoryDefault(
int index)
const;
197 int isTrueFactoryDefault()
const;
202 int isFactoryDefaultUI(
int index)
const;
203 int isFactoryDefaultUI()
const;
205 void overwriteDefaults(
fpreal time);
206 void overwriteDefault(
fpreal time,
int index);
208 void buildOpDependencies(
const PRM_RefId &ref_id,
int thread);
209 void changeOpRef(
const char *new_fullpath,
const char *old_fullpath,
210 const char *old_cwd,
const char *chan_name,
211 const char *old_chan_name,
212 void (*undo_callback)(
void *),
void *undo_data,
222 bool expand,
int thread)
const;
229 bool expand,
int thread)
const;
235 void getDefaultValue(
fpreal &
value,
int index)
const;
241 int index,
int thread)
const;
246 int index,
int thread)
const;
251 int index,
int thread)
const;
255 int index,
bool evaluate =
true,
256 bool rmchannel =
false,
bool propagate =
true);
261 bool kill_expr =
false,
int index = 0,
263 bool propagate =
true);
266 bool kill_expr =
false,
int index = 0,
268 bool propagate =
true);
271 bool kill_expr =
false,
int index = 0,
273 bool propagate =
true);
276 bool kill_expr =
false,
int index = 0,
278 bool propagate =
true);
281 bool kill_expr =
false,
int index = 0,
283 bool propagate =
true);
290 bool kill_expr =
false,
292 bool propagate =
true);
295 bool kill_expr =
false,
297 bool propagate =
true);
300 bool kill_expr =
false,
302 bool propagate =
true);
309 bool isMultiParm()
const;
314 void insertMultiParmItem(
int index,
bool propagate = 1);
317 void removeMultiParmItem(
int index,
bool propagate = 1);
320 void revertMultiParmItem(
int index);
324 void revertAllMultiParmItems();
327 void assignMultiParmItem(
int from,
int to);
331 void swapMultiParmItem(
int from,
int to);
334 int getMultiParmNumItems()
const;
339 int getMultiParmInstancesPerItem()
const;
342 const char* getMultiParmToken(
int p,
int index)
const;
347 int getMultiParmUIEntries()
const;
350 const PRM_Template *getMultiParmTemplate(
int idx)
const;
355 PRM_Parm *getMultiParm(
int idx)
const;
356 int getMultiParmCount()
const;
364 { privateValueChanged(vec_idx, propagate,
366 void sendValueChanged(
int vec_idx,
bool propagate);
367 void indirectChange(
int vec_idx,
bool expr_changed,
368 bool update_multi =
true);
372 const char *getOverride(
int index)
const;
373 int getOverrideDataIndex(
int index)
const;
375 bool getOverrideTrackName(
int index,
UT_String &trackname)
const;
377 int setOverrideDisable(
int index,
int onoff);
378 int getIsOverrideActive(
int index)
const;
390 void copyValue(
fpreal t,
int dest_vi,
391 const PRM_Parm &src_parm,
int src_vi,
393 bool current_value_only);
396 void addChannel(
int index,
bool propagate =
true);
397 void addChannel(
int index,
const char *theexpr,
399 int addChannel(
const char *
name);
400 int addChannel(
const char *
name,
const char *expr,
403 void clearAndDestroyChannels(
bool force =
false);
404 void removeChannel(
int index,
bool propagage =
true);
408 void clearAndDestroyUnrefChannels(
const PRM_Parm &repl_parm);
411 int getChannelCount()
const;
413 void reloadChannelPtrs();
414 int channelPtrModified(
const char *
name);
416 int isTimeDependent()
const;
417 bool isTimeDependent(
int subindex)
const;
418 int isDataDependent(
fpreal gtime)
const;
419 bool isDataDependent(
fpreal gtime,
int subindex)
const;
420 void forceTimeDependent(
int subindex);
425 fpreal getMultiSize()
const;
426 int getMultiStartOffset()
const;
428 bool isRampType()
const;
429 bool isRampTypeColor()
const;
432 {
return getTemplatePtr()->getVectorSize(); }
433 void getChannelToken(
UT_String &thestrref,
int index = 0)
const;
434 void getChannelLabel(
UT_String &thestrref,
int index = 0)
const;
435 void getToken(
UT_String &thestrref)
const;
436 void getLabel(
UT_String &thestrref)
const;
437 void getHelpText(
UT_String &helptext)
const;
438 void getHelpUrl(
UT_String &helptext)
const;
439 void getHelpTitle(
UT_String &helptext)
const;
441 const char *getToken()
const;
442 const char *getLabel()
const;
444 void getChannelLabelForUI(
UT_String &thestrref,
int vec_idx)
const;
448 unsigned getTokenHash()
const;
450 bool hasChannelAlias(
int subindex)
const ;
451 void getChannelAlias(
UT_String &stringref,
int subindex)
const;
459 bool setChannelAlias(
const char *token_alias,
int subindex);
467 void createInputNotifyValue();
470 bool hasMicroNodes()
const;
473 int isDirty(
int vector_idx=0)
const;
474 int areAllFlagsClean()
const;
475 void clearAllDirtyFlags();
479 bool isSendExtra(
int vi)
const;
480 bool hasAnySendExtraFlags()
const;
482 int findSubIndex(
const char *thechannelname,
bool allow_alias);
491 unsigned getEnableState(
int comp = -1)
const;
492 unsigned getInstanceEnableState(
int comp = -1)
const;
493 int setEnableState(
int thestate,
int comp = -1);
495 bool getActiveTakeFlag()
const;
496 bool getAlwaysTakeFlag()
const;
497 void setActiveTakeFlag(
int onoff);
498 bool getBypassFlag()
const;
499 void setBypassFlag(
bool v);
501 bool getVisibleState(
int comp = -1)
const;
502 bool setVisibleState(
bool f,
int comp = -1);
504 int getExpressionState();
505 void setExpressionState(
int state);
507 void setValueState(
int state);
512 bool isValueEditableByUI(
fpreal time,
int index)
const;
517 bool isExpressionEditableByUI(
fpreal time,
int index)
const;
520 void hardenChanges(
fpreal time,
bool forceflag = 0,
521 const char *patt = 0,
523 void hardenChanges(
fpreal time,
int index,
bool forceflag = 0,
524 const char *patt = 0,
527 void setKey(
fpreal time,
int index);
528 void setKey(
fpreal time,
int index,
const char *
exp,
533 bool accel_ratios =
true);
546 bool languageIsNodesLanguage(
fpreal time,
int index);
548 int changePending(
int index);
552 void save(std::ostream &os,
int binary,
bool compiled)
const;
558 void saveCommand(std::ostream &os,
int values=0,
int index=-1)
const;
559 int loadCommand(
int argc,
const char *
const argv[],
int index,
565 int findString(
const char *str,
bool fullword,
566 bool usewildcards)
const;
567 int changeString(
const char *from,
const char *to,
bool fullword);
569 bool notifyVarChange(
const char *varname);
571 bool getUndoSavedFlag();
575 void setUndoSavedFlag(
bool f);
577 bool getAutoTakeUndoSavedFlag();
581 void setAutoTakeUndoSavedFlag(
bool f);
583 bool getLockedFlag(
int vec_idx)
const;
584 bool areAllComponentsLocked()
const;
585 void setLockedFlag(
int vec_idx,
bool f);
586 unsigned int getLockedField()
const;
587 bool getAutoScopedFlag(
int vec_idx)
const;
588 void setAutoScopedFlag(
int vec_idx,
bool f);
589 unsigned int getAutoScopedField()
const;
592 int parm_group_mask ,
593 bool add_if_default ,
597 void destroyChildParms();
607 bool isCompatible(
const PRM_Parm &other_parm)
const;
611 bool isOfBasicType(
PRM_Type check_type)
const;
616 bool isParmValueEqual(
PRM_Parm &other_parm,
int vec_index,
617 fpreal time,
int thread)
const;
618 bool isParmValueEqual(
int vec_index,
PRM_Parm &other_parm,
619 int other_index,
fpreal time,
626 bool hasChannelName(
const char *channame,
int vec_index)
const;
627 bool hasChannelName(
const char *channame,
int vec_index,
int channamelen)
const;
631 void getAllChannelAliases(
UT_String &aliasstring,
632 char sep =
'/')
const;
635 bool isActive(
const int index)
const;
636 void setActive(
const int index,
const bool active);
638 int64 getMemoryUsage(
bool inclusive)
const;
640 bool isSpareParm()
const;
641 void setSpareParm(
bool sp)
const;
644 void setMultiParmOwner(
const PRM_Multi *multiparmowner);
658 bool instance_index=
true)
const;
660 void rebuildParmDependency();
662 bool isRotationParm()
const;
666 void setChannelReference(
fpreal time,
669 const char *ch_name=NULL,
671 bool rmchannel=
false);
678 void constructChannelReference(
UT_String &reference,
681 const char *ch_name=NULL);
683 static bool isChanRefString(
const char *str,
bool is_expr,
686 bool getHaveCompiledExpressions()
const;
691 void setSaveLabelFlag(
bool f);
694 bool hasChannelCustomColor(
int index)
const;
695 const UT_Color &getChannelCustomColor(
int index)
const;
696 void setChannelCustomColor(
int index,
const UT_Color &c);
697 void resetChannelCustomColor(
int index);
700 void privateValueChanged(
711 static bool myAlwaysHardenFlag;
712 static bool myDestructiveRevertToDefaultFlag;
713 static bool myRevertInvisibleToDefaultsFlag;
714 static bool myMakeSpareParmsForUnknownChannelsFlag;
GLsizei GLenum const void * indices
UT_JSONValueMap stores a map/dictionary of UT_JSONValue objects.
static bool getDestructiveRevertToDefaultFlag()
static bool getMakeSpareParmsForUnknownChannelsFlag()
UT_SharedPtr< PRM_UndoData > PRM_UndoDataHandle
int getVectorSize() const
const GLuint GLenum const void * binary
UT_Array< std::pair< UT_StringHolder, PRM_UndoDataHandle > > PRM_UndoDataList
GLsizei const GLchar *const * path
static void setMakeSpareParmsForUnknownChannelsFlag(bool v)
virtual UT_JSONValueMap * getKeyValueDict() const
static bool getRevertInvisibleToDefaultsFlag()
static void setAlwaysHardenFlag(bool o)
GLsizei GLsizei GLchar * source
SYS_API double exp(double x)
void valueChanged(int vec_idx, bool propagate)
PRM_Callback getCallback()
GLenum GLsizei GLsizei GLint * values
GLuint const GLchar * name
static void setRevertInvisibleToDefaultsFlag(bool v)
static bool getAlwaysHardenFlag()
GLsizei const GLfloat * value
GLint GLint GLsizei GLint GLenum GLenum type
PRM_ParmList * getOwner() const
png_infop png_uint_32 int num
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.