ImFusion SDK 4.3
ImFusion::Animations Namespace Reference

Animating objects within the ImFusion SDK. More...

Detailed Description

Animating objects within the ImFusion SDK.

See also
Animations

Classes

class  Animation
 Helper class to define an animation, that is an interpolated transition between two states. More...
 
class  AnimationBackendBase
 Base interface for managing and dispatching animations. More...
 
class  AnimationBackendDummy
 Dummy implementation of the AnimationBackendBase interface that will not execute any animation but only call its update() function exactly once with t=1.0. More...
 
class  AnimationBackendQt
 Concrete implementation of AnimationBackendBase using the Qt event loop for dispatching the animation updates. More...
 
class  BlendingAnimation
 Animates the blendFactor of an ImageView2D. More...
 
class  ScopedEnabler
 A scope guard to set the globally available enabled property for animations. More...
 
struct  UniqueId
 Helper struct to uniquely describe a type of annotation. More...
 

Enumerations

enum class  EasingCurve {
  Linear , InCubic , OutCubic , InOutCubic ,
  Sinusoid
}
 Enumeration of built-in easing curves describing the rate of change of the interpolation between 0.0 and 1.0. More...
 

Functions

std::unique_ptr< AnimationBackendBasesetBackend (std::unique_ptr< AnimationBackendBase > backend)
 Install a global animation backend that is used by the set of free functions in this namespace.
 
void runAnimation (std::shared_ptr< Animation > animation, const std::optional< UniqueId > &uniqueId=std::nullopt)
 Run the given animation on the globally installed backend.
 
std::shared_ptr< AnimationrunAnimation (std::function< void(double t)> &&updateFunc, std::chrono::milliseconds duration=std::chrono::milliseconds(500), EasingCurve easingCurve=EasingCurve::InOutCubic, const std::optional< UniqueId > &uniqueId=std::nullopt)
 Create and run a one-shot animation with the given configuration on the globally installed backend.
 
std::shared_ptr< AnimationrunLoopedAnimation (std::function< void(double)> &&updateFunc, std::chrono::milliseconds duration=std::chrono::milliseconds(500), EasingCurve easingCurve=EasingCurve::InOutCubic, const std::optional< UniqueId > &uniqueId=std::nullopt)
 Create and run a looped animation with the given configuration on the globally installed backend.
 
bool animationsEnabled ()
 Check whether the animations are globally enabled within the application.
 
void enableAnimations (bool enabled)
 Globally enable or disable animations within the application.
 
double animationDurationFactor ()
 Returns the duration multiplier for run animations; enables you to change the speed of all animations consistently.
 
void setAnimationDurationFactor (double value)
 Sets the duration multiplier for run animations, must be >= 0; enables you to change the speed of all animations consistently.
 
void cancelAnimation (const UniqueId &id)
 Cancels the animation with the given id.
 
void cancelAllAnimations ()
 Cancels all animations currently in flight.
 

Enumeration Type Documentation

◆ EasingCurve

enum class EasingCurve
strong

Enumeration of built-in easing curves describing the rate of change of the interpolation between 0.0 and 1.0.

Enumerator
Linear 

Constant velocity.

InCubic 

Cubic function accelerating from zero velocity.

OutCubic 

Cubic function decelerating to zero velocity.

InOutCubic 

Cubic function accelerating from zero velocity until halfway, then decelerating to zero velocity.

Sinusoid 

Sinusoid acceleration from zero velocity until halfway, then sinusoid deceleration to zero velocity.

Search Tab / S to search, Esc to close