[]Struct druid::piet::kurbo::CubicBez

pub struct CubicBez {
    pub p0: Point,
    pub p1: Point,
    pub p2: Point,
    pub p3: Point,
}

A single cubic Bézier segment.

Fields

p0: Pointp1: Pointp2: Pointp3: Point

Methods

impl CubicBez

pub fn new<P>(p0: P, p1: P, p2: P, p3: P) -> CubicBez where
    P: Into<Point>, 

Create a new cubic Bézier segment.

pub fn to_quads(
    &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

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.

impl Mul<CubicBez> for Affine

type Output = CubicBez

The resulting type after applying the * operator.

impl ParamCurve for 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.

impl ParamCurveArea for CubicBez

impl ParamCurveCurvature for CubicBez

impl ParamCurveDeriv for CubicBez

type DerivResult = QuadBez

The parametric curve obtained by taking the derivative of this one.

impl ParamCurveExtrema for CubicBez

impl ParamCurveNearest for CubicBez

fn nearest(&self, p: Point, accuracy: f64) -> (f64, f64)

Find nearest point, using subdivision.

impl PartialEq<CubicBez> for CubicBez

impl StructuralPartialEq for CubicBez

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AnyEq for T where
    T: PartialEq<T> + Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> RoundFrom<T> for T

impl<T, U> RoundInto<U> for T where
    U: RoundFrom<T>, 

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.