Skip to main content

PointsFromPath

Struct PointsFromPath 

Source
pub(crate) struct PointsFromPath<'a, S: ?Sized> {
    sink: &'a mut S,
    open: bool,
    last_start: Option<(f32, f32)>,
    pending: Option<PendingElement>,
}
Expand description

A PathSink that converts a path into points and sends them to an UnscaledOutlineSink.

This is used for sources that can only draw a path. The path must be in font units. Each segment’s end point is held until the next command. When a contour closes at its start point, that point is not repeated. This matches how FreeType builds a TrueType outline from a charstring.

Fields§

§sink: &'a mut S§open: bool

True while a contour is open.

§last_start: Option<(f32, f32)>§pending: Option<PendingElement>

Implementations§

Source§

impl<'a, S: ?Sized> PointsFromPath<'a, S>

Source

pub(crate) fn new(sink: &'a mut S) -> Self

Source§

impl<S: UnscaledOutlineSink + ?Sized> PointsFromPath<'_, S>

Source

fn push(&mut self, x: f32, y: f32, flags: PointFlags)

Source

fn flush_pending(&mut self, for_close: bool)

Source

fn close_contour(&mut self)

Source

pub(crate) fn finish(self)

Ends the open contour, if any.

Trait Implementations§

Source§

impl<S: UnscaledOutlineSink + ?Sized> PathSink for PointsFromPath<'_, S>

Source§

fn move_to(&mut self, x: f32, y: f32)

Emit a command to begin a new subpath at (x, y).
Source§

fn line_to(&mut self, x: f32, y: f32)

Emit a line segment from the current point to (x, y).
Source§

fn quad_to(&mut self, cx0: f32, cy0: f32, x: f32, y: f32)

Emit a quadratic bezier segment from the current point with a control point at (cx0, cy0) and ending at (x, y).
Source§

fn curve_to(&mut self, cx0: f32, cy0: f32, cx1: f32, cy1: f32, x: f32, y: f32)

Emit a cubic bezier segment from the current point with control points at (cx0, cy0) and (cx1, cy1) and ending at (x, y).
Source§

fn close(&mut self)

Emit a command to close the current subpath.

Auto Trait Implementations§

§

impl<'a, S> !UnwindSafe for PointsFromPath<'a, S>

§

impl<'a, S> Freeze for PointsFromPath<'a, S>
where S: ?Sized,

§

impl<'a, S> RefUnwindSafe for PointsFromPath<'a, S>
where S: RefUnwindSafe + ?Sized,

§

impl<'a, S> Send for PointsFromPath<'a, S>
where S: Send + ?Sized,

§

impl<'a, S> Sync for PointsFromPath<'a, S>
where S: Sync + ?Sized,

§

impl<'a, S> Unpin for PointsFromPath<'a, S>
where S: ?Sized,

§

impl<'a, S> UnsafeUnpin for PointsFromPath<'a, S>
where S: ?Sized,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<P> CommandSink for P
where P: PathSink,

Source§

fn move_to(&mut self, x: Fixed, y: Fixed)

Source§

fn line_to(&mut self, x: Fixed, y: Fixed)

Source§

fn curve_to( &mut self, cx0: Fixed, cy0: Fixed, cx1: Fixed, cy1: Fixed, x: Fixed, y: Fixed, )

Source§

fn close(&mut self)

Source§

fn hstem(&mut self, y: Fixed, dy: Fixed)

Horizontal stem hint at y with height dy.
Source§

fn vstem(&mut self, x: Fixed, dx: Fixed)

Vertical stem hint at x with width dx.
Source§

fn hint_mask(&mut self, mask: &[u8])

Bitmask defining the hints that should be made active for the commands that follow.
Source§

fn counter_mask(&mut self, mask: &[u8])

Bitmask defining the counter hints that should be made active for the commands that follow.
Source§

fn clear_hints(&mut self)

Clear accumulated stem hints and all data derived from them.
Source§

fn finish(&mut self)

Called when charstring evaluation is complete.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.