Skip to main content

SegmentCollector

Struct SegmentCollector 

Source
pub struct SegmentCollector<'a> { /* private fields */ }
Expand description

State for processing glyph’s outline segment.

This can process incoming glyph segment by splitting quadratic and cubic bezier into flat lines, and also tag each segment with at least two R, G or B color (according to Chlumsky’s algorithm).

It is necessary to store collected segments in a Vec. This type does not allocate the vec directly, but instead accepts an exclusive reference to the Vec, so the vec can be reused between different glyphs.

Implementations§

Source§

impl<'a> SegmentCollector<'a>

Source

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

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

Source

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

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

Source

pub 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

pub 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

pub fn close(&mut self)

Emit a command to close the current subpath.

Source

pub fn set_reversed(&mut self, reversed: bool)

Reverse the direction of all subsequently collected subpaths.

Set this before collecting the outline. Pass in true for CFF/CFF2 glyphs and false for GLYF.

Trait Implementations§

Source§

impl OutlinePen for SegmentCollector<'_>

Available on crate feature skrifa only.
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> !UnwindSafe for SegmentCollector<'a>

§

impl<'a> Freeze for SegmentCollector<'a>

§

impl<'a> RefUnwindSafe for SegmentCollector<'a>

§

impl<'a> Send for SegmentCollector<'a>

§

impl<'a> Sync for SegmentCollector<'a>

§

impl<'a> Unpin for SegmentCollector<'a>

§

impl<'a> UnsafeUnpin for SegmentCollector<'a>

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<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.