friz
An animation control system for JUCE
Loading...
Searching...
No Matches
friz::Parametric Class Reference

A class that can generate different parametric easing curves. More...

#include <parametric.h>

Inheritance diagram for friz::Parametric:

Public Types

enum  CurveType {
  kLinear = 0 , kEaseInSine , kEaseOutSine , kEaseInOutSine ,
  kEaseInQuad , kEaseOutQuad , kEaseInOutQuad , kEaseInCubic ,
  kEaseOutCubic , kEaseInOutCubic , kEaseInQuartic , kEaseOutQuartic ,
  kEaseInOutQuartic , kEaseInQuintic , kEaseOutQuintic , kEaseInOutQuintic ,
  kEaseInExpo , kEaseOutExpo , kEaseInOutExpo , kEaseInCirc ,
  kEaseOutCirc , kEaseInOutCirc , kEaseInBack , kEaseOutBack ,
  kEaseInOutBack , kEaseInElastic , kEaseOutElastic , kEaseInOutElastic ,
  kEaseInBounce , kEaseOutBounce , kEaseInOutBounce
}
 
using CurveFn = std::function< float(float)>
 

Public Member Functions

 Parametric (CurveType type, float startVal, float endVal, int duration)
 Construct a new Parametric object As of version 2.1, this ctor is deprecated; prefer to use the constructor that has the CurveType argument last.
 
 Parametric (float startVal, float endVal, int duration, CurveType type)
 Construct a new Parametric object As of version 2.1, this ctor is deprecated; prefer to use the constructor that has the CurveType argument last.
 
void SetCurve (CurveFn curve)
 Set a new curve function for the generator.
 
- Public Member Functions inherited from friz::TimedValue
 TimedValue (float startVal, float endVal, int duration_)
 
float getNextValue (int msElapsed, int) override
 
bool isFinished () override
 
- Public Member Functions inherited from friz::AnimatedValue
 AnimatedValue (float startVal_, float endVal_)
 Base class init for the animated value classes.
 
virtual float getNextValue (int msElapsed, int msSinceLastUpdate)=0
 
float getEndValue () const
 get the ending state of this value object. When we cancel an in-progress animation, we may need to snap to the end value, and this gives a way to get there immediately.
 
virtual bool isFinished ()=0
 
virtual bool updateTarget (float)
 Attempt to change the end value of an animation that's currently in process.
 
void cancel (bool moveToEndPosition)
 Cancel an in-progress animation.
 

Private Member Functions

float generateNextValue (float progress) override
 generate the value according to progress in time.
 

Private Attributes

CurveFn curve
 

Additional Inherited Members

- Protected Member Functions inherited from friz::TimedValue
float scale (float curvePoint)
 Given a fractional curve point (typically) in the range (0.f..1.f), interpolate this point between this value's start and end points.
 
- Protected Attributes inherited from friz::TimedValue
int duration
 duration of the event in ms.
 
- Protected Attributes inherited from friz::AnimatedValue
float startVal
 
float endVal
 
float currentVal
 
bool canceled { false }
 
bool finished { false }
 

Detailed Description

A class that can generate different parametric easing curves.

   We use formulas that are available (and demonstrated!) on
   https://easings.net

Constructor & Destructor Documentation

◆ Parametric() [1/2]

friz::Parametric::Parametric ( CurveType  type,
float  startVal,
float  endVal,
int  duration 
)

Construct a new Parametric object As of version 2.1, this ctor is deprecated; prefer to use the constructor that has the CurveType argument last.

Parameters
typeType of curve to use.
startVal
endVal
durationin ms

◆ Parametric() [2/2]

friz::Parametric::Parametric ( float  startVal,
float  endVal,
int  duration,
CurveType  type 
)

Construct a new Parametric object As of version 2.1, this ctor is deprecated; prefer to use the constructor that has the CurveType argument last.

Parameters
startVal
endVal
durationin ms
typeType of curve to use.

Member Function Documentation

◆ generateNextValue()

float friz::Parametric::generateNextValue ( float  progress)
overrideprivatevirtual

generate the value according to progress in time.

Parameters
progressposition in the animation (0.0..1.0)
Returns
next value.

Implements friz::TimedValue.

◆ SetCurve()

void friz::Parametric::SetCurve ( CurveFn  curve)

Set a new curve function for the generator.

Parameters
curve

The documentation for this class was generated from the following files: