2 releases
0.1.1 | Sep 1, 2024 |
---|---|
0.1.0 | Aug 18, 2024 |
#561 in Algorithms
250 downloads per month
Used in cushy
23KB
536 lines
easing-function
A Rusty implementation of easing functions.
What is an Easing Function?
An easing function is a function that describes how to apply a change of a value over time. This library's easing functions expect input values between 0.0 and 1.0 and will return values corresponding to that range but may be outside of the range depending on the function.
Easing functions are typically used in animation systems to customize values produced between keyframes (tweening).
Why another easing functions crate?
When creating Cushy, no maintained library seemed to offer a trait-based solution to allow for custom easing functions in addition to the standard ones inspired by Robert Penner's original collection.
Using this crate
The EasingFunction
type is the central type of this crate. It allows
defining an easing function in two ways:
EasingFunction::from_fn
: Creates an easing function from afn(f32) -> f32
function.EasingFunction::new
: Creates an easing function from anEasing
implementor.
This crate also provides the standard set of easing functions in the
[easings][easings] module (e.g., EaseInOutSine
). Finally, the
StandardEasings
enum provides access to the standard easing
functions through an enumeration. This enum also supports serde
when enabling
the serde
feature of this crate.
Open-source Licenses
This project, like all projects from Khonsu Labs, is open-source. This repository is available under the MIT License or the Apache License 2.0.
To learn more about contributing, please see CONTRIBUTING.md.
Dependencies
~165KB