11 #include <parameter.h>
12 #include <nap/signalslot.h>
47 void setRange(
typename T::value_type minimum,
typename T::value_type maximum);
52 typename T::value_type
mMinimum =
static_cast<typename T::value_type
>(0);
53 typename T::value_type
mMaximum =
static_cast<typename T::value_type
>(1);
78 const ParameterVec<T>* derived_type = rtti_cast<const ParameterVec<T>>(&value);
79 assert(derived_type !=
nullptr);
80 setValue(derived_type->
mValue);
91 for (
int i = 0; i != mValue.length(); ++i)
92 mValue[i] =
math::clamp(value[i], mMinimum, mMaximum);
99 if (oldValue != mValue)
100 valueChanged(mValue);
116 #define DEFINE_VECTOR_PARAMETER(Type) \
117 RTTI_BEGIN_CLASS(Type) \
118 RTTI_PROPERTY("Value", &Type::mValue, nap::rtti::EPropertyMetaData::Default) \
119 RTTI_PROPERTY("Clamp", &Type::mClamp, nap::rtti::EPropertyMetaData::Default) \
120 RTTI_PROPERTY("Minimum", &Type::mMinimum, nap::rtti::EPropertyMetaData::Default) \
121 RTTI_PROPERTY("Maximum", &Type::mMaximum, nap::rtti::EPropertyMetaData::Default) \
122 RTTI_FUNCTION("setValue", static_cast<void (Type::*)(decltype(Type::mValue))>(&Type::setValue)) \
Definition: parameter.h:20
T mValue
Property: 'Value' the value of this parameter.
Definition: parametervec.h:50
void setRange(typename T::value_type minimum, typename T::value_type maximum)
Definition: parametervec.h:105
virtual void setValue(const Parameter &value) override
Definition: parametervec.h:76
bool mClamp
Property: 'Clamp' if the vector is clamped to the min / max value.
Definition: parametervec.h:51
Definition: parametervec.h:21
Signal< T > valueChanged
Signal that's raised when the value changes.
Definition: parametervec.h:55
T::value_type mMaximum
Property: 'Maximum' the maximum value of this parameter.
Definition: parametervec.h:53
Definition: templateapp.h:17
T::value_type mMinimum
Property: 'Minimum' the minimum value of this parameter.
Definition: parametervec.h:52
T clamp(T value, T min, T max)
Definition: mathutils.h:318