Loading...
Searching...
No Matches
StaticAnimationLimits< ValueType > Class Template Reference

Helper class for using linear interpolation between a begin and an end value. More...

#include <juce_StaticAnimationLimits.h>

Public Member Functions

 StaticAnimationLimits (const ValueType &endIn)
 Constructor.
 
 StaticAnimationLimits (const ValueType &beginIn, const ValueType &endIn)
 Constructor.
 
ValueType operator() (float value) const
 Evaluation operator.
 
ValueType lerp (float value) const
 Returns a value that is a linear interpolation of the beginning and end state.
 

Detailed Description

template<typename ValueType>
class StaticAnimationLimits< ValueType >

Helper class for using linear interpolation between a begin and an end value.

The ValueType could be any numerical type, or a std::tuple containing numerical types. This class is mainly intended to be used with the latter.

This way you can interpolate multiple values by supplying a single float value, which you can access in an Animator's value change callback.

E.g.

const auto boundsToTuple = [] (auto b)
{
return std::make_tuple (b.getX(), b.getY(), b.getWidth(), b.getHeight());
};
const auto begin = boundsToTuple (component.getBoundsInParent());
const auto end = boundsToTuple (targetBounds);
const auto limits = makeAnimationLimits (begin, end);
// This is the value change callback of an Animator, where you will transition a Component from
// one bounds to the next. See the AnimatorsDemo for a more detailed example.
const auto valueChanged = [&component, limits] (auto v)
{
const auto [x, y, w, h] = limits.lerp (v);
component.setBounds (x, y, w, h);
};
StaticAnimationLimits< ValueType > makeAnimationLimits(const ValueType &end)
Creates an instance of StaticAnimationLimits, deducing ValueType from the function argument.
Definition juce_StaticAnimationLimits.h:120
void int int h
Definition juce_UnityPluginInterface.h:198
void int w
Definition juce_UnityPluginInterface.h:198
float x
Definition juce_UnityPluginInterface.h:200
float float y
Definition juce_UnityPluginInterface.h:200
@ valueChanged
Indicates that the UI element's value has changed.
See also
ValueAnimatorBuilder::ValueChangedCallback

Constructor & Destructor Documentation

◆ StaticAnimationLimits() [1/2]

template<typename ValueType >
StaticAnimationLimits< ValueType >::StaticAnimationLimits ( const ValueType & endIn)
explicit

Constructor.

You can use it to interpolate between a 0 initialised numerical value or tuple and the provided end state.

◆ StaticAnimationLimits() [2/2]

template<typename ValueType >
StaticAnimationLimits< ValueType >::StaticAnimationLimits ( const ValueType & beginIn,
const ValueType & endIn )

Constructor.

Creates an object that will interpolate between the two provided beginning and end states. The ValueType can be a numerical type or a std::tuple containing numerical types.

Member Function Documentation

◆ operator()()

template<typename ValueType >
ValueType StaticAnimationLimits< ValueType >::operator() ( float value) const

Evaluation operator.

Returns a value that is a linear interpolation of the beginning and end state. It's a shorthand for the lerp() function.

◆ lerp()

template<typename ValueType >
ValueType StaticAnimationLimits< ValueType >::lerp ( float value) const

Returns a value that is a linear interpolation of the beginning and end state.

References begin(), and end().


The documentation for this class was generated from the following file:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram