JUCE  v5.1.1-3-g1a0b28c73
JUCE API
AnimatedPositionBehaviours::ContinuousWithMomentum Struct Reference

A non-snapping behaviour that allows the content to be freely flicked in either direction, with momentum based on the velocity at which it was released, and variable friction to make it come to a halt. More...

#include <juce_AnimatedPositionBehaviours.h>

Collaboration diagram for AnimatedPositionBehaviours::ContinuousWithMomentum:

Public Member Functions

 ContinuousWithMomentum () noexcept
 
double getNextPosition (double oldPos, double elapsedSeconds) noexcept
 Called by the AnimatedPosition class to get the new position, after the given time has elapsed. More...
 
bool isStopped (double) const noexcept
 Called by the AnimatedPosition class to check whether the object is now stationary. More...
 
void releasedWithVelocity (double, double releaseVelocity) noexcept
 Called by the AnimatedPosition class. More...
 
void setFriction (double newFriction) noexcept
 Sets the friction that damps the movement of the value. More...
 

Private Attributes

double damping = 0.92
 
double velocity = 0
 

Detailed Description

A non-snapping behaviour that allows the content to be freely flicked in either direction, with momentum based on the velocity at which it was released, and variable friction to make it come to a halt.

This class is intended to be used as a template parameter to the AnimatedPosition class.

See also
AnimatedPosition

Constructor & Destructor Documentation

◆ ContinuousWithMomentum()

AnimatedPositionBehaviours::ContinuousWithMomentum::ContinuousWithMomentum ( )
inlinenoexcept

Member Function Documentation

◆ getNextPosition()

double AnimatedPositionBehaviours::ContinuousWithMomentum::getNextPosition ( double  oldPos,
double  elapsedSeconds 
)
inlinenoexcept

Called by the AnimatedPosition class to get the new position, after the given time has elapsed.

References damping, and velocity.

◆ isStopped()

bool AnimatedPositionBehaviours::ContinuousWithMomentum::isStopped ( double  ) const
inlinenoexcept

Called by the AnimatedPosition class to check whether the object is now stationary.

References velocity.

Referenced by AnimatedPositionBehaviours::SnapToPageBoundaries::getNextPosition().

◆ releasedWithVelocity()

void AnimatedPositionBehaviours::ContinuousWithMomentum::releasedWithVelocity ( double  ,
double  releaseVelocity 
)
inlinenoexcept

Called by the AnimatedPosition class.

This tells us the position and velocity at which the user is about to release the object. The velocity is measured in units/second.

References velocity.

◆ setFriction()

void AnimatedPositionBehaviours::ContinuousWithMomentum::setFriction ( double  newFriction)
inlinenoexcept

Sets the friction that damps the movement of the value.

A typical value is 0.08; higher values indicate more friction.

References damping.

Member Data Documentation

◆ damping

double AnimatedPositionBehaviours::ContinuousWithMomentum::damping = 0.92
private

Referenced by getNextPosition(), and setFriction().

◆ velocity

double AnimatedPositionBehaviours::ContinuousWithMomentum::velocity = 0
private

The documentation for this struct was generated from the following file: