8 #include <parameternumeric.h>
9 #include <parametervec.h>
10 #include <parametercolor.h>
11 #include <parametersimple.h>
12 #include <parameterquat.h>
21 class BaseParameterBlender;
67 void blend(
float value);
89 bool hasTarget()
const;
105 const T& getTarget()
const;
119 virtual void onBlend(
float value) = 0;
125 virtual void onSync() = 0;
130 virtual void onTargetSet() = 0;
149 template<
typename ParamType,
typename ValueType>
173 virtual void onBlend(
float value)
override;
178 virtual void onSync()
override;
186 ValueType mSourceValue;
215 assert(mTarget !=
nullptr);
216 assert(mTarget->get_type().is_derived_from(RTTI_OF(T)));
217 return static_cast<const T&
>(*mTarget);
223 assert(mParameter !=
nullptr);
224 assert(mParameter->get_type().is_derived_from(RTTI_OF(T)));
225 return static_cast<T&
>(*mParameter);
228 template<
typename ParamType,
typename ValueType>
231 this->mSourceValue = parameter.mValue;
234 template<
typename ParamType,
typename ValueType>
237 assert(parameter.get_type().is_derived_from(RTTI_OF(ParamType)));
238 this->mSourceValue = this->getParameter<ParamType>().mValue;
241 template<
typename ParamType,
typename ValueType>
244 ValueType lval = math::lerp<ValueType>(mSourceValue, getTarget<ParamType>().mValue, value);
245 getParameter<ParamType>().setValue(lval);
248 template<
typename ParamType,
typename ValueType>
254 template<
typename ParamType,
typename ValueType>
257 const ParamType& source = getParameter<ParamType>();
258 this->mSourceValue = source.mValue;
Definition: parameter.h:20
ParameterBlender(ParamType ¶meter)
Definition: parameterblender.h:229
virtual void onSync() override
Definition: parameterblender.h:255
virtual void onBlend(float value) override
Definition: parameterblender.h:242
Definition: parameterblender.h:48
std::unique_ptr< BaseParameterBlender > NAPAPI getParameterBlender(nap::Parameter ¶m)
bool NAPAPI registerParameterBlender(rtti::TypeInfo inParameterType, rtti::TypeInfo inBlenderType)
Definition: templateapp.h:17
const Parameter & getParameter() const
rttr::type TypeInfo
Definition: typeinfo.h:140
const Parameter & getTarget() const
Definition: parameterblender.h:150
virtual void onTargetSet() override
Definition: parameterblender.h:249