[−][src]Struct piet_common::kurbo::CubicBez
A single cubic Bézier segment.
Fields
p0: Pointp1: Pointp2: Pointp3: PointMethods
impl CubicBez[src]
pub fn new<P>(p0: P, p1: P, p2: P, p3: P) -> CubicBez where
P: Into<Point>, [src]
P: Into<Point>,
Create a new cubic Bézier segment.
pub fn to_quads(
&self,
accuracy: f64
) -> impl Iterator<Item = (f64, f64, QuadBez)>[src]
&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[src]
fn clone(&self) -> CubicBez[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Copy for CubicBez[src]
impl Debug for CubicBez[src]
impl From<CubicBez> for PathSeg[src]
impl Mul<CubicBez> for Affine[src]
type Output = CubicBez
The resulting type after applying the * operator.
fn mul(self, c: CubicBez) -> CubicBez[src]
impl Mul<CubicBez> for TranslateScale[src]
type Output = CubicBez
The resulting type after applying the * operator.
fn mul(self, other: CubicBez) -> CubicBez[src]
impl ParamCurve for CubicBez[src]
fn eval(&self, t: f64) -> Point[src]
fn start(&self) -> Point[src]
fn end(&self) -> Point[src]
fn subsegment(&self, range: Range<f64>) -> CubicBez[src]
fn subdivide(&self) -> (CubicBez, CubicBez)[src]
Subdivide into halves, using de Casteljau.
impl ParamCurveArclen for CubicBez[src]
fn arclen(&self, accuracy: f64) -> f64[src]
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[src]
impl ParamCurveArea for CubicBez[src]
fn signed_area(&self) -> f64[src]
impl ParamCurveCurvature for CubicBez[src]
impl ParamCurveDeriv for CubicBez[src]
type DerivResult = QuadBez
fn deriv(&self) -> QuadBez[src]
fn gauss_arclen(&self, coeffs: &[(f64, f64)]) -> f64[src]
impl ParamCurveExtrema for CubicBez[src]
fn extrema(&self) -> ArrayVec<[f64; 4]>[src]
fn extrema_ranges(&self) -> ArrayVec<[Range<f64>; 5]>[src]
fn bounding_box(&self) -> Rect[src]
impl ParamCurveNearest for CubicBez[src]
impl PartialEq<CubicBez> for CubicBez[src]
impl StructuralPartialEq for CubicBez[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
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[src]
fn round_from(x: T) -> T[src]
impl<T, U> RoundInto<U> for T where
U: RoundFrom<T>, [src]
U: RoundFrom<T>,
fn round_into(self) -> U[src]
impl<T> Same<T> for T[src]
type Output = T
Should always be Self
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>,