Skip to content

Commit

Permalink
Add Cubic prefix to all cubic curve generators (bevyengine#10299)
Browse files Browse the repository at this point in the history
# Objective

- Fixes bevyengine#10258 

## Solution

- Renamed.

---

## Changelog

- Changed: `BSpline` -> `CubicBSpline`
- Changed: `CardinalSpline` -> `CubicCardinalSpline`
- Changed: `Hermite` -> `CubicHermite`

## Migration Guide

- Rename: `BSpline` -> `CubicBSpline`
- Rename: `CardinalSpline` -> `CubicCardinalSpline`
- Rename: `Hermite` -> `CubicHermite`
  • Loading branch information
aevyrie authored and ameknite committed Nov 6, 2023
1 parent 7580b3c commit bd9d0cd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
24 changes: 12 additions & 12 deletions crates/bevy_math/src/cubic_splines.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,13 @@ impl<P: Point> CubicGenerator<P> for CubicBezier<P> {
/// vec2(0.0, 1.0),
/// vec2(0.0, 1.0),
/// ];
/// let hermite = Hermite::new(points, tangents).to_curve();
/// let hermite = CubicHermite::new(points, tangents).to_curve();
/// let positions: Vec<_> = hermite.iter_positions(100).collect();
/// ```
pub struct Hermite<P: Point> {
pub struct CubicHermite<P: Point> {
control_points: Vec<(P, P)>,
}
impl<P: Point> Hermite<P> {
impl<P: Point> CubicHermite<P> {
/// Create a new Hermite curve from sets of control points.
pub fn new(
control_points: impl IntoIterator<Item = P>,
Expand All @@ -137,7 +137,7 @@ impl<P: Point> Hermite<P> {
}
}
}
impl<P: Point> CubicGenerator<P> for Hermite<P> {
impl<P: Point> CubicGenerator<P> for CubicHermite<P> {
#[inline]
fn to_curve(&self) -> CubicCurve<P> {
let char_matrix = [
Expand Down Expand Up @@ -184,15 +184,15 @@ impl<P: Point> CubicGenerator<P> for Hermite<P> {
/// vec2(5.0, 3.0),
/// vec2(9.0, 8.0),
/// ];
/// let cardinal = CardinalSpline::new(0.3, points).to_curve();
/// let cardinal = CubicCardinalSpline::new(0.3, points).to_curve();
/// let positions: Vec<_> = cardinal.iter_positions(100).collect();
/// ```
pub struct CardinalSpline<P: Point> {
pub struct CubicCardinalSpline<P: Point> {
tension: f32,
control_points: Vec<P>,
}

impl<P: Point> CardinalSpline<P> {
impl<P: Point> CubicCardinalSpline<P> {
/// Build a new Cardinal spline.
pub fn new(tension: f32, control_points: impl Into<Vec<P>>) -> Self {
Self {
Expand All @@ -209,7 +209,7 @@ impl<P: Point> CardinalSpline<P> {
}
}
}
impl<P: Point> CubicGenerator<P> for CardinalSpline<P> {
impl<P: Point> CubicGenerator<P> for CubicCardinalSpline<P> {
#[inline]
fn to_curve(&self) -> CubicCurve<P> {
let s = self.tension;
Expand Down Expand Up @@ -252,21 +252,21 @@ impl<P: Point> CubicGenerator<P> for CardinalSpline<P> {
/// vec2(5.0, 3.0),
/// vec2(9.0, 8.0),
/// ];
/// let b_spline = BSpline::new(points).to_curve();
/// let b_spline = CubicBSpline::new(points).to_curve();
/// let positions: Vec<_> = b_spline.iter_positions(100).collect();
/// ```
pub struct BSpline<P: Point> {
pub struct CubicBSpline<P: Point> {
control_points: Vec<P>,
}
impl<P: Point> BSpline<P> {
impl<P: Point> CubicBSpline<P> {
/// Build a new Cardinal spline.
pub fn new(control_points: impl Into<Vec<P>>) -> Self {
Self {
control_points: control_points.into(),
}
}
}
impl<P: Point> CubicGenerator<P> for BSpline<P> {
impl<P: Point> CubicGenerator<P> for CubicBSpline<P> {
#[inline]
fn to_curve(&self) -> CubicCurve<P> {
let char_matrix = [
Expand Down
3 changes: 2 additions & 1 deletion crates/bevy_math/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ pub mod prelude {
#[doc(hidden)]
pub use crate::{
cubic_splines::{
BSpline, CardinalSpline, CubicBezier, CubicGenerator, CubicSegment, Hermite,
CubicBSpline, CubicBezier, CubicCardinalSpline, CubicGenerator, CubicHermite,
CubicSegment,
},
BVec2, BVec3, BVec4, EulerRot, IRect, IVec2, IVec3, IVec4, Mat2, Mat3, Mat4, Quat, Ray,
Rect, URect, UVec2, UVec3, UVec4, Vec2, Vec2Swizzles, Vec3, Vec3Swizzles, Vec4,
Expand Down

0 comments on commit bd9d0cd

Please sign in to comment.