mirror of
https://github.com/bevyengine/bevy
synced 2024-11-10 07:04:33 +00:00
Remove Default
impl for CubicCurve
(#11335)
# Objective - Implementing `Default` for [`CubicCurve`](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html) does not make sense because it cannot be mutated after creation. - Closes #11209. - Alternative to #11211. ## Solution - Remove `Default` from `CubicCurve`'s derive statement. Based off of @mockersf comment (https://github.com/bevyengine/bevy/pull/11211#issuecomment-1880088036): > CubicCurve can't be updated once created... I would prefer to remove the Default impl as it doesn't make sense --- ## Changelog - Removed the `Default` implementation for `CubicCurve`. ## Migration Guide - Remove `CubicCurve` from any structs that implement `Default`. - Wrap `CubicCurve` in a new type and provide your own default. ```rust #[derive(Deref)] struct MyCubicCurve<P: Point>(pub CubicCurve<P>); impl Default for MyCubicCurve<Vec2> { fn default() -> Self { let points = [[ vec2(-1.0, -20.0), vec2(3.0, 2.0), vec2(5.0, 3.0), vec2(9.0, 8.0), ]]; Self(CubicBezier::new(points).to_curve()) } } ```
This commit is contained in:
parent
cd12e7c836
commit
6f6269e195
1 changed files with 4 additions and 1 deletions
|
@ -431,7 +431,10 @@ impl CubicSegment<Vec2> {
|
|||
}
|
||||
|
||||
/// A collection of [`CubicSegment`]s chained into a curve.
|
||||
#[derive(Clone, Debug, Default, PartialEq)]
|
||||
///
|
||||
/// Use any struct that implements the [`CubicGenerator`] trait to create a new curve, such as
|
||||
/// [`CubicBezier`].
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
pub struct CubicCurve<P: Point> {
|
||||
segments: Vec<CubicSegment<P>>,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue