35 #ifndef IE_CORE_PARAMETER_H
36 #define IE_CORE_PARAMETER_H
42 #include "IECore/Export.h"
43 #include "IECore/Object.h"
48 IE_CORE_FORWARDDECLARE( CompoundObject );
61 typedef std::pair<std::string, ObjectPtr>
Preset;
67 Parameter(
const std::string &name,
const std::string &description, ObjectPtr defaultValue,
68 const PresetsContainer &presets = PresetsContainer(),
bool presetsOnly =
false, ConstCompoundObjectPtr userData=
nullptr );
75 const std::string &name()
const;
79 const std::string &description()
const;
81 virtual const Object *defaultValue()
const;
83 virtual const PresetsContainer &getPresets()
const;
85 virtual void setPresets(
const PresetsContainer &presets );
88 virtual bool presetsOnly()
const;
104 virtual bool valueValid(
const Object *value, std::string *reason =
nullptr )
const;
117 bool valueValid( std::string *reason =
nullptr )
const;
120 void validate()
const;
123 void validate(
const Object *value )
const;
134 virtual void setValue( ObjectPtr value );
140 void setValidatedValue( ObjectPtr value );
144 void setValue(
const std::string &presetName );
156 virtual Object *getValue();
161 virtual const Object *getValue()
const;
164 Object *getValidatedValue();
167 const Object *getValidatedValue()
const;
173 const T *getTypedValue()
const;
177 T *getTypedValidatedValue();
181 const T *getTypedValidatedValue()
const;
184 std::string getCurrentPresetName()
const;
193 ConstObjectPtr m_defaultValue;
195 PresetsContainer m_presets;
198 mutable CompoundObjectPtr m_userData;
206 #include "IECore/Parameter.inl"
208 #endif // IE_CORE_PARAMETER_H
Definition: Parameter.h:53
std::vector< Preset > PresetsContainer
A type to store a bunch of preset values for the Parameter.
Definition: Parameter.h:63
std::pair< std::string, ObjectPtr > Preset
Definition: Parameter.h:61
Definition: CompoundObject.h:46
Definition: InternedString.h:55
Definition: RunTimeTyped.h:211
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43