1.10
easing.h
1/*
2 * Copyright (C) 2018 Microchip Technology Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#ifndef EGT_EASING_H
7#define EGT_EASING_H
8
14#include <egt/detail/meta.h>
15
16namespace egt
17{
18inline namespace v1
19{
20using EasingScalar = float;
21
231
241{
242
249 explicit constexpr easing_cubic_bezier(EasingScalar p0 = 0.42,
250 EasingScalar p1 = 0,
251 EasingScalar p2 = 0.58,
252 EasingScalar p3 = 1) noexcept
253 : m_p0(p0),
254 m_p1(p1),
255 m_p2(p2),
256 m_p3(p3)
257 {}
258
261
270};
271
274}
275}
276
277#endif
EGT_API EasingScalar easing_quadratic_easeinout(EasingScalar p)
<style>div.image img[src="quadratic_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_sine_easeout(EasingScalar p)
<style>div.image img[src="sine_easeout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_drop_slow(EasingScalar p)
<style>div.image img[src="drop_slow.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quartic_easeout(EasingScalar p)
<style>div.image img[src="quartic_easeout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_circular_easeout(EasingScalar p)
<style>div.image img[src="circular_easeout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_circular_easeinout(EasingScalar p)
<style>div.image img[src="circular_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quartic_easeinout(EasingScalar p)
<style>div.image img[src="quartic_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_extend(EasingScalar p)
<style>div.image img[src="extend.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quintic_easeinout(EasingScalar p)
<style>div.image img[src="quintic_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quadratic_easein(EasingScalar p)
<style>div.image img[src="quadratic_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_cubic_easein(EasingScalar p)
<style>div.image img[src="cubic_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quintic_easein(EasingScalar p)
<style>div.image img[src="quintic_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quintic_easeout(EasingScalar p)
<style>div.image img[src="quintic_easeout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_exponential_easein(EasingScalar p)
<style>div.image img[src="exponential_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_sine_easein(EasingScalar p)
<style>div.image img[src="sine_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_rubber(EasingScalar p)
<style>div.image img[src="rubber.png"]{width:320px;}</style>
EGT_API EasingScalar easing_exponential_easeout(EasingScalar p)
<style>div.image img[src="exponential_easeout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_spring(EasingScalar p)
<style>div.image img[src="spring.png"]{width:320px;}</style>
EGT_API EasingScalar easing_boing(EasingScalar p)
<style>div.image img[src="boing.png"]{width:320px;}</style>
EGT_API EasingScalar easing_easy(EasingScalar p)
<style>div.image img[src="easy.png"]{width:320px;}</style>
EGT_API EasingScalar easing_drop(EasingScalar p)
<style>div.image img[src="drop.png"]{width:320px;}</style>
EGT_API EasingScalar easing_cubic_easeout(EasingScalar p)
<style>div.image img[src="cubic_easeout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_bounce(EasingScalar p)
<style>div.image img[src="bounce.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quartic_easein(EasingScalar p)
<style>div.image img[src="quartic_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_sine_easeinout(EasingScalar p)
<style>div.image img[src="sine_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_circular_easein(EasingScalar p)
<style>div.image img[src="circular_easein.png"]{width:320px;}</style>
EGT_API EasingScalar easing_exponential_easeinout(EasingScalar p)
<style>div.image img[src="exponential_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_bouncy(EasingScalar p)
<style>div.image img[src="bouncy.png"]{width:320px;}</style>
EGT_API EasingScalar easing_cubic_easeinout(EasingScalar p)
<style>div.image img[src="cubic_easeinout.png"]{width:320px;}</style>
EGT_API EasingScalar easing_snap(EasingScalar p)
<style>div.image img[src="snap.png"]{width:320px;}</style>
EGT_API EasingScalar easing_linear(EasingScalar p)
<style>div.image img[src="linear.png"]{width:320px;}</style>
EGT_API EasingScalar easing_easy_slow(EasingScalar p)
<style>div.image img[src="easy_slow.png"]{width:320px;}</style>
EGT_API EasingScalar easing_quadratic_easeout(EasingScalar p)
<style>div.image img[src="quadratic_easeout.png"]{width:320px;}</style>
float EasingScalar
Easing function value type.
Definition animation.h:30
EGT framework namespace.
Definition animation.h:24
Cubic Bezier equation easing function.
Definition easing.h:241
constexpr easing_cubic_bezier(EasingScalar p0=0.42, EasingScalar p1=0, EasingScalar p2=0.58, EasingScalar p3=1) noexcept
Definition easing.h:249
EasingScalar operator()(EasingScalar p)
Get the easing value.