[−]Struct druid::piet::kurbo::CubicBez
A single cubic Bézier segment.
Fields
p0: Point
p1: Point
p2: Point
p3: Point
Methods
impl CubicBez
pub fn new<P>(p0: P, p1: P, p2: P, p3: P) -> CubicBez where
P: Into<Point>,
P: Into<Point>,
Create a new cubic Bézier segment.
pub fn to_quads(
&self,
accuracy: f64
) -> impl Iterator<Item = (f64, f64, QuadBez)>
&self,
accuracy: f64
) -> impl Iterator<Item = (f64, f64, QuadBez)>
Convert to quadratic Béziers.
The iterator returns the start and end parameter in the cubic of each quadratic segment, along with the quadratic.
Note that the resulting quadratic Béziers are not in general G1 continuous; they are optimized for minimizing distance error.
Trait Implementations
impl Clone for CubicBez
fn clone(&self) -> CubicBez
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for CubicBez
impl Data for CubicBez
[src]
impl Debug for CubicBez
impl From<CubicBez> for PathSeg
impl Mul<CubicBez> for TranslateScale
type Output = CubicBez
The resulting type after applying the *
operator.
fn mul(self, other: CubicBez) -> CubicBez
impl Mul<CubicBez> for Affine
type Output = CubicBez
The resulting type after applying the *
operator.
fn mul(self, c: CubicBez) -> CubicBez
impl ParamCurve for CubicBez
fn eval(&self, t: f64) -> Point
fn start(&self) -> Point
fn end(&self) -> Point
fn subsegment(&self, range: Range<f64>) -> CubicBez
fn subdivide(&self) -> (CubicBez, CubicBez)
Subdivide into halves, using de Casteljau.
impl ParamCurveArclen for CubicBez
fn arclen(&self, accuracy: f64) -> f64
Arclength of a cubic Bézier segment.
This is an adaptive subdivision approach using Legendre-Gauss quadrature in the base case, and an error estimate to decide when to subdivide.
fn inv_arclen(&self, arclen: f64, accuracy: f64) -> f64
impl ParamCurveArea for CubicBez
fn signed_area(&self) -> f64
impl ParamCurveCurvature for CubicBez
impl ParamCurveDeriv for CubicBez
type DerivResult = QuadBez
The parametric curve obtained by taking the derivative of this one.
fn deriv(&self) -> QuadBez
fn gauss_arclen(&self, coeffs: &[(f64, f64)]) -> f64
impl ParamCurveExtrema for CubicBez
fn extrema(&self) -> ArrayVec<[f64; 4]>
fn extrema_ranges(&self) -> ArrayVec<[Range<f64>; 5]>
fn bounding_box(&self) -> Rect
impl ParamCurveNearest for CubicBez
impl PartialEq<CubicBez> for CubicBez
impl StructuralPartialEq for CubicBez
Auto Trait Implementations
impl RefUnwindSafe for CubicBez
impl Send for CubicBez
impl Sync for CubicBez
impl Unpin for CubicBez
impl UnwindSafe for CubicBez
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> AnyEq for T where
T: PartialEq<T> + Any,
[src]
T: PartialEq<T> + Any,
fn equals(&self, other: &(dyn Any + 'static)) -> bool
[src]
fn as_any(&self) -> &(dyn Any + 'static)
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> RoundFrom<T> for T
fn round_from(x: T) -> T
impl<T, U> RoundInto<U> for T where
U: RoundFrom<T>,
U: RoundFrom<T>,
fn round_into(self) -> U
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,