Struct tiny_skia_path::stroker::PathStroker

source ·
pub struct PathStroker {
Show 24 fields radius: f32, inv_miter_limit: f32, res_scale: f32, inv_res_scale: f32, inv_res_scale_squared: f32, first_normal: Point, prev_normal: Point, first_unit_normal: Point, prev_unit_normal: Point, first_pt: Point, prev_pt: Point, first_outer_pt: Point, first_outer_pt_index_in_contour: usize, segment_count: i32, prev_is_line: bool, capper: fn(pivot: Point, normal: Point, stop: Point, other_path: Option<&PathBuilder>, path: &mut PathBuilder), joiner: fn(before_unit_normal: Point, pivot: Point, after_unit_normal: Point, radius: f32, inv_miter_limit: f32, prev_is_line: bool, curr_is_line: bool, builders: SwappableBuilders<'_>), inner: PathBuilder, outer: PathBuilder, cusper: PathBuilder, stroke_type: StrokeType, recursion_depth: i32, found_tangents: bool, join_completed: bool,
}
Expand description

A path stroker.

Fields§

§radius: f32§inv_miter_limit: f32§res_scale: f32§inv_res_scale: f32§inv_res_scale_squared: f32§first_normal: Point§prev_normal: Point§first_unit_normal: Point§prev_unit_normal: Point§first_pt: Point§prev_pt: Point§first_outer_pt: Point§first_outer_pt_index_in_contour: usize§segment_count: i32§prev_is_line: bool§capper: fn(pivot: Point, normal: Point, stop: Point, other_path: Option<&PathBuilder>, path: &mut PathBuilder)§joiner: fn(before_unit_normal: Point, pivot: Point, after_unit_normal: Point, radius: f32, inv_miter_limit: f32, prev_is_line: bool, curr_is_line: bool, builders: SwappableBuilders<'_>)§inner: PathBuilder§outer: PathBuilder§cusper: PathBuilder§stroke_type: StrokeType§recursion_depth: i32§found_tangents: bool§join_completed: bool

Implementations§

source§

impl PathStroker

source

pub fn new() -> Self

Creates a new PathStroker.

source

pub fn compute_resolution_scale(ts: &Transform) -> f32

Computes a resolution scale.

Resolution scale is the “intended” resolution for the output. Default is 1.0.

Larger values (res > 1) indicate that the result should be more precise, since it will be zoomed up, and small errors will be magnified.

Smaller values (0 < res < 1) indicate that the result can be less precise, since it will be zoomed down, and small errors may be invisible.

source

pub fn stroke( &mut self, path: &Path, stroke: &Stroke, resolution_scale: f32, ) -> Option<Path>

Stokes the path.

Can be called multiple times to reuse allocated buffers.

resolution_scale can be obtained via compute_resolution_scale.

source

fn stroke_inner( &mut self, path: &Path, width: NonZeroPositiveF32, miter_limit: f32, line_cap: LineCap, line_join: LineJoin, res_scale: f32, ) -> Option<Path>

source

fn builders(&mut self) -> SwappableBuilders<'_>

source

fn move_to_pt(&self) -> Point

source

fn move_to(&mut self, p: Point)

source

fn line_to(&mut self, p: Point, iter: Option<&PathSegmentsIter<'_>>)

source

fn quad_to(&mut self, p1: Point, p2: Point)

source

fn cubic_to(&mut self, pt1: Point, pt2: Point, pt3: Point)

source

fn cubic_stroke( &mut self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> bool

source

fn cubic_mid_on_line( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> bool

source

fn cubic_quad_mid( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, mid: &mut Point, )

source

fn cubic_perp_ray( &self, cubic: &[Point; 4], t: NormalizedF32, t_pt: &mut Point, on_pt: &mut Point, tangent: Option<&mut Point>, )

source

fn set_cubic_end_normal( &mut self, cubic: &[Point; 4], normal_ab: Point, unit_normal_ab: Point, normal_cd: &mut Point, unit_normal_cd: &mut Point, )

source

fn compare_quad_cubic( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> ResultType

source

fn cubic_quad_ends(&self, cubic: &[Point; 4], quad_points: &mut QuadConstruct)

source

fn close(&mut self, is_line: bool)

source

fn finish_contour(&mut self, close: bool, curr_is_line: bool)

source

fn pre_join_to( &mut self, p: Point, curr_is_line: bool, normal: &mut Point, unit_normal: &mut Point, ) -> bool

source

fn post_join_to(&mut self, p: Point, normal: Point, unit_normal: Point)

source

fn init_quad( &mut self, stroke_type: StrokeType, start: NormalizedF32, end: NormalizedF32, quad_points: &mut QuadConstruct, )

source

fn quad_stroke( &mut self, quad: &[Point; 3], quad_points: &mut QuadConstruct, ) -> bool

source

fn compare_quad_quad( &mut self, quad: &[Point; 3], quad_points: &mut QuadConstruct, ) -> ResultType

source

fn set_ray_points( &self, tp: Point, dxy: &mut Point, on_p: &mut Point, tangent: Option<&mut Point>, )

source

fn quad_perp_ray( &self, quad: &[Point; 3], t: NormalizedF32, tp: &mut Point, on_p: &mut Point, tangent: Option<&mut Point>, )

source

fn add_degenerate_line(&mut self, quad_points: &QuadConstruct)

source

fn stroke_close_enough( &self, stroke: &[Point; 3], ray: &[Point; 2], quad_points: &mut QuadConstruct, ) -> ResultType

source

fn intersect_ray( &self, intersect_ray_type: IntersectRayType, quad_points: &mut QuadConstruct, ) -> ResultType

source

fn tangents_meet( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> ResultType

source

fn finish(&mut self, is_line: bool) -> Option<Path>

source

fn has_only_move_to(&self) -> bool

source

fn is_current_contour_empty(&self) -> bool

Trait Implementations§

source§

impl Clone for PathStroker

source§

fn clone(&self) -> PathStroker

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Default for PathStroker

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.