11 #ifndef __PRM_Conditional__
12 #define __PRM_Conditional__
69 mem += myControlParms.getMemoryUsage(
false);
70 mem += myControlValues.getMemoryUsage(
false);
71 mem += myTestOperators.getMemoryUsage(
false);
81 myControlParms.clear();
82 myControlValues.clear();
83 myTestOperators.clear();
89 myControlParms.append(parm);
90 myControlValues.append(value);
91 myTestOperators.append(op);
95 {
return myControlParms; }
97 {
return myControlValues; }
99 {
return myTestOperators; }
133 virtual int64 getMemoryUsage(
bool inclusive)
const = 0;
177 void getStringFromList(
181 void getStringFromList(
UT_String &str)
const;
184 bool setListFromString(
const char *conditional,
192 static bool verifyConditionalString(
const char *conditional,
195 static bool getOperatorFromString(
const char *testoperator,
198 static bool isValidOperator(
const char *testoperator);
205 static bool parseOperatorString(
const char *&testoperator,
208 static bool parseConditionalString(
const char *str,
215 void evalFunction(
const PRM_Parm &prm,
251 void addConditional(
const char *conditional,
263 void instanceIndices(
268 using prm_ConditionalMap
271 prm_ConditionalMap myConditionals;
279 , myConditional(conditional)
303 int64 getMemoryUsage(
bool inclusive) const override;
315 void setTabConditional(
318 void addTabConditional(
325 prm_SwitcherMap myTabConditionals;
GLsizei GLenum const void * indices
GLuint GLsizei const GLchar * label
#define SYS_DEPRECATED(__V__)
GLsizei const GLfloat * value
virtual PRM_Conditional * getConditional(PRM_ConditionalType type)=0
UT_UniquePtr< PRM_ConditionalBase > PRM_ConditionalBasePtr
**But if you need a result
const UT_StringArray & getControlValues() const
PRM_ConditionalType myType
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
virtual int64 getMemoryUsage(bool inclusive) const =0
UT_UniquePtr< PRM_ConditionalInfo > PRM_ConditionalInfoPtr
GLint GLint GLsizei GLint GLenum GLenum type
PRM_ConditionalBasePtr instance(const UT_IntArray &indices) const override
UT_VariadicT< PRM_ConditionalSwitcherItem > PRM_ConditionalSwitcherArgs
const UT_StringArray & getControlParms() const
std::pair< const char *, PRM_ConditionalType > PRM_ConditionalGroupItem
PRM_ConditionalSwitcherItem(int index, const char *conditional, PRM_ConditionalType type)
const UT_Array< PRM_ConditionalOperator > & getTestOperators() const
PXL_API const char * getName(const ColorSpace *space)
Return the name of the color space.
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
PRM_ConditionalGroupType groupType() const override
PRM_ConditionalSwitcher()
UT_UniquePtr< PRM_Conditional > PRM_ConditionalPtr
HUSD_API bool eval(VtValue &val, T &ret_val)
virtual PRM_ConditionalBasePtr instance(const UT_IntArray &index_list) const =0
UT_VariadicT< PRM_ConditionalGroupItem > PRM_ConditionalGroupArgs
void addCondition(const UT_StringHolder &parm, const UT_StringHolder &value, PRM_ConditionalOperator op)
PRM_ConditionalGroupType groupType() const override
int64 getMemoryUsage(bool inclusive) const
LeafData & operator=(const LeafData &)=delete
This class allow setting multiple conditionals for a PRM_Template.
**If you just want to fire and args
const char * myConditional
PRM_ConditionalType getType() const