bevy/crates
Matty 8bcda3d2e8
Basic integration of cubic spline curves with the Curve API (#15469)
# Objective

We introduced the fancy Curve API earlier in this version. The goal of
this PR is to provide a level of integration between that API and the
existing spline constructions in `bevy_math`.

Note that this PR only covers the integration of position-sampling via
the `Curve` API. Other (substantially more complex) planned work will
introduce general facilities for handling derivatives.

## Solution

`CubicSegment`, `CubicCurve`, `RationalSegment`, and `RationalCurve` all
now implement `Curve`, using their `position` function to sample the
output.

Additionally, some documentation has been updated/corrected, and
`Serialize`/`Deserialize` derives have been added for all the curve
structs. (Note that there are some barriers to automatic registration of
`ReflectSerialize`/`ReflectSerialize` involving generics that have not
been resolved in this PR.)

---

## Migration Guide

The `RationalCurve::domain` method has been renamed to
`RationalCurve::length`. Calling `.domain()` on a `RationalCurve` now
returns its entire domain as an `Interval`.
2024-09-30 17:52:07 +00:00
..
bevy_a11y Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_animation Add VisitEntities for generic and reflectable Entity iteration (#15425) 2024-09-30 17:32:03 +00:00
bevy_app Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_asset Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_audio Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_color Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_core Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_core_pipeline Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_derive Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_dev_tools Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_diagnostic Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_dylib Generate links to definition in source code pages on docs.rs and dev-docs.bevyengine.org (#12965) 2024-07-29 23:10:16 +00:00
bevy_ecs Add VisitEntities for generic and reflectable Entity iteration (#15425) 2024-09-30 17:32:03 +00:00
bevy_encase_derive Update `glam to 0.29, encase` to 0.10. (#15249) 2024-09-23 19:44:02 +00:00
bevy_gilrs Implement gamepads as entities (#12770) 2024-09-27 20:07:20 +00:00
bevy_gizmos Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_gltf feat(gltf): add name component to gltf mesh primitive (#13912) 2024-09-30 16:51:52 +00:00
bevy_hierarchy Add VisitEntities for generic and reflectable Entity iteration (#15425) 2024-09-30 17:32:03 +00:00
bevy_input Implement gamepads as entities (#12770) 2024-09-27 20:07:20 +00:00
bevy_internal Split TextureAtlasSources out of TextureAtlasLayout and make TextureAtlasLayout serializable (#15344) 2024-09-30 17:11:56 +00:00
bevy_log Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_macro_utils Modify derive_label to support no_std environments (#15465) 2024-09-27 20:23:26 +00:00
bevy_math Basic integration of cubic spline curves with the Curve API (#15469) 2024-09-30 17:52:07 +00:00
bevy_mikktspace Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_pbr Implement volumetric fog support for both point lights and spotlights (#15361) 2024-09-29 21:30:53 +00:00
bevy_picking Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_ptr Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_reflect Make drain take a mutable borrow instead of Box<Self> for reflected Map, List, and Set. (#15406) 2024-09-30 17:19:13 +00:00
bevy_remote Refactor BRP to allow for 3rd-party transports (#15438) 2024-09-27 20:09:46 +00:00
bevy_render Remove render_resource_wrapper (#15441) 2024-09-30 17:37:07 +00:00
bevy_scene Add VisitEntities for generic and reflectable Entity iteration (#15425) 2024-09-30 17:32:03 +00:00
bevy_sprite Split TextureAtlasSources out of TextureAtlasLayout and make TextureAtlasLayout serializable (#15344) 2024-09-30 17:11:56 +00:00
bevy_state Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_tasks bump async-channel to 2.3.0 (#15497) 2024-09-28 19:21:59 +00:00
bevy_text Make CosmicFontSystem and SwashCache pub resources. (#15479) 2024-09-28 00:00:27 +00:00
bevy_time Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_transform Migrate visibility to required components (#15474) 2024-09-27 19:06:16 +00:00
bevy_ui System param validation for observers, system registry and run once (#15526) 2024-09-30 01:00:39 +00:00
bevy_utils Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
bevy_window Add VisitEntities for generic and reflectable Entity iteration (#15425) 2024-09-30 17:32:03 +00:00
bevy_winit Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00