use crate as bevy_reflect; use bevy_math::{cubic_splines::*, VectorSpace}; use bevy_reflect::std_traits::ReflectDefault; use bevy_reflect_derive::impl_reflect; impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct CubicBezier { control_points: Vec<[P; 4]>, } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct CubicHermite { control_points: Vec<(P, P)>, } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct CubicCardinalSpline { tension: f32, control_points: Vec

, } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct CubicBSpline { control_points: Vec

, } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct CubicNurbs { control_points: Vec

, weights: Vec, knots: Vec, } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct LinearSpline { points: Vec

, } ); impl_reflect!( #[reflect(Debug, Default)] #[type_path = "bevy_math::cubic_splines"] struct CubicSegment { coeff: [P; 4], } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct CubicCurve { segments: Vec>, } ); impl_reflect!( #[reflect(Debug, Default)] #[type_path = "bevy_math::cubic_splines"] struct RationalSegment { coeff: [P; 4], weight_coeff: [f32; 4], knot_span: f32, } ); impl_reflect!( #[reflect(Debug)] #[type_path = "bevy_math::cubic_splines"] struct RationalCurve { segments: Vec>, } );