Tags: mobius3/tweeny
Tags
The Great Rewrite (#49) * remove string-based `via` overloads for easing * remove enum-based `via` overloads for easing * simplify `via` method templates and adjust type usage * remove unnecessary `inline` specifiers from tween template methods * use nested namespace syntax for `tweeny::detail` * remove `enumerated` easing enum from easing class * update easing implementations, simplify logic and adopt modern C++ features * refactor: remove redundant `inline` specifiers, adopt `const` for parameters, and simplify template methods * use nested namespace syntax for `tweeny::detail` in int2type header * simplify `easingresolve` implementation and adopt modern C++ syntax * adopt modern C++ features in tween class templates Refactored to use `const`, removed redundant `inline`, and simplified methods. * adopt modern C++ features in tweenpoint templates Changed to use `const`, `constexpr`, and `nodiscard`, simplified method implementations and adopted nested namespace syntax. * adopt modern C++ features in traits and header Simplified `equal` struct, replaced `std::is_same` with `std::is_same_v`, and updated template parameter syntax. * use modern CMake features and enforce C++17 standards Updated `CMakeLists.txt` to enforce C++17, replaced custom C++11 feature flags with `cxx_std_17`, and utilized namespaced target aliases. Enhanced scripts to utilize modern CMake practices, improved Python/quom checks, and updated installation/export configurations. * add testing infrastructure with Catch2 Enabled testing setup via CMake with `TWEENY_BUILD_TESTS` option. This includes integration of Catch2 v3, a basic sanity test, and configuration for automatic test discovery. * refactor: rename `stacked` to `start`, add time-based seek overload Replaced `stacked` with `start` across the tween and tweenpoint classes for clarity and consistency. Added an overload for `seek` to support `uint32_t` time-based arguments. Extended tests to cover new functionality and ensure correctness. * The great refactoring * enhance precision, modernize methods, and enforce strict warnings * use lambda for `return_value` logic in `interpolate` * add `seek` and `jump` methods to `tween` * add multiple easing functions as individual headers * make `step`, `jump` and `seek` independent of each other * add an event system with step listener support Introduced an `event` namespace with the ` step_t ` type and accompanying response enum. Enhanced `tween` class with `on()` for registering `step` listeners. Updated internal `step` logic to trigger callbacks and added tests to validate `step` events. * add `seek` and `jump` event listener support * unsubscribe support for event listeners * improve builder with compile-time safety, preventing `build()` without `to()` * update tween constructor and reorder frame updates * clean up redundant line and correct spacing in headers * add `peek` and `progress` methods to `tween` * move easing files to detail namespace * remove non-const `render` method from `tween` * migrate easing definitions to tweeny/easing.h * document tweeny.h * add complete event listener and update callbacks * migrate tests into categorized directories * update cmake target sources * add keyframeEnter and keyframeLeave events * reorganize project structure and bump version to 4.0.0 * update include paths to match new project structure * document tweeny::easing namespace and its purpose * document backIn, backOut, and backInOut easing functions * document bounceIn, bounceOut, and bounceInOut easing functions * document circularIn, circularOut, and circularInOut easing functions * document cubic, elastic, and default easing functions * document elasticInOut, exponentialIn, and exponentialOut easings * document exponentialInOut, linear, and quadratic easings * document quarticIn, quarticOut, and quarticInOut easings * document quinticIn, quinticOut, and quinticInOut easings * document sinusoidalIn, sinusoidalOut, sinusoidalInOut, and stepped easings * establish mainpage, update input paths, and refine doxygen layout * update manual and examples to reflect builder pattern * add links to visualize easing functions at easings.net * clarify manual wording and improve formatting for consistency * update event documentation and clarify usage examples * add update event type, tests, and handlers * add v3-to-v4 migration guide and update documentation * update link text for easing visualizations in mainpage doc * remove sandbox example code and adjust CMake configuration * update copyright notice * use quom directly from uvx * dedupe license header from single-header target * adjust dox return_values to be unique * update readme to 4.0.0 and backup old readme * update docs and changelog * Fix CMake install layout so find_package works again. * add custom Doxygen styling and fonts for documentation * update Doxygen styling to match tweeny-gh-pages theme Added light/dark color schemes, updated layout styles, fonts, and improved element spacing for consistency. * match Doxygen font styles with landing page * add easing function precomputed reference values for tests * add linear easing unit test * handle edge cases in exponential easing functions * add unit tests for cubic, quadratic, quartic, quintic, sinusoidal, and exponential easings * add circular easing unit tests * add elastic easing unit tests * add back and bounce easing unit tests * remove swing easing reference values * remove sandbox target from build system * update documentation with new event system details * expand README with update event example and details * update documentation with during(0U), progress, and update event * document `event::update` for position changes * add tween-based unit tests for linear and quadratic easings * rename parameters for clarity in tweeny_builder and from functions * add tween-based unit tests for quintic, sinusoidal, exponential, circular, cubic, and quartic easings * add tween-based unit tests for back and bounce easings * add tween-based unit tests for def and stepped easings * ensure seek, step, and jump behavior match peek across easings. * add CI workflow with tests on push and pull requests * update CMake install and expand README with usage details * add release script * update changelog for recent fixes, tests, and docs improvements
Version 3.1.0: - From now on, tweeny will be using a more traditional versioning scheme - Remove some extraneous semicolons (@Omegastick) - Adds `easing::stepped` and `easing::def` for arithmetic-like values (@ArnCarveris) - Fix point progress calculation in multi-duration tweens (#15) - Fix deduction of same-type values (#14) - Use `auto` to deduce return values of operations inside various easings