Struct tiny_skia_path::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
impl PathStroker
sourcepub fn compute_resolution_scale(ts: &Transform) -> f32
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.
sourcepub fn stroke(
&mut self,
path: &Path,
stroke: &Stroke,
resolution_scale: f32,
) -> Option<Path>
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
.
fn stroke_inner( &mut self, path: &Path, width: NonZeroPositiveF32, miter_limit: f32, line_cap: LineCap, line_join: LineJoin, res_scale: f32, ) -> Option<Path>
fn builders(&mut self) -> SwappableBuilders<'_>
fn move_to_pt(&self) -> Point
fn move_to(&mut self, p: Point)
fn line_to(&mut self, p: Point, iter: Option<&PathSegmentsIter<'_>>)
fn quad_to(&mut self, p1: Point, p2: Point)
fn cubic_to(&mut self, pt1: Point, pt2: Point, pt3: Point)
fn cubic_stroke( &mut self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> bool
fn cubic_mid_on_line( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> bool
fn cubic_quad_mid( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, mid: &mut Point, )
fn cubic_perp_ray( &self, cubic: &[Point; 4], t: NormalizedF32, t_pt: &mut Point, on_pt: &mut Point, tangent: Option<&mut Point>, )
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, )
fn compare_quad_cubic( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> ResultType
fn cubic_quad_ends(&self, cubic: &[Point; 4], quad_points: &mut QuadConstruct)
fn close(&mut self, is_line: bool)
fn finish_contour(&mut self, close: bool, curr_is_line: bool)
fn pre_join_to( &mut self, p: Point, curr_is_line: bool, normal: &mut Point, unit_normal: &mut Point, ) -> bool
fn post_join_to(&mut self, p: Point, normal: Point, unit_normal: Point)
fn init_quad( &mut self, stroke_type: StrokeType, start: NormalizedF32, end: NormalizedF32, quad_points: &mut QuadConstruct, )
fn quad_stroke( &mut self, quad: &[Point; 3], quad_points: &mut QuadConstruct, ) -> bool
fn compare_quad_quad( &mut self, quad: &[Point; 3], quad_points: &mut QuadConstruct, ) -> ResultType
fn set_ray_points( &self, tp: Point, dxy: &mut Point, on_p: &mut Point, tangent: Option<&mut Point>, )
fn quad_perp_ray( &self, quad: &[Point; 3], t: NormalizedF32, tp: &mut Point, on_p: &mut Point, tangent: Option<&mut Point>, )
fn add_degenerate_line(&mut self, quad_points: &QuadConstruct)
fn stroke_close_enough( &self, stroke: &[Point; 3], ray: &[Point; 2], quad_points: &mut QuadConstruct, ) -> ResultType
fn intersect_ray( &self, intersect_ray_type: IntersectRayType, quad_points: &mut QuadConstruct, ) -> ResultType
fn tangents_meet( &self, cubic: &[Point; 4], quad_points: &mut QuadConstruct, ) -> ResultType
fn finish(&mut self, is_line: bool) -> Option<Path>
fn has_only_move_to(&self) -> bool
fn is_current_contour_empty(&self) -> bool
Trait Implementations§
source§impl Clone for PathStroker
impl Clone for PathStroker
source§fn clone(&self) -> PathStroker
fn clone(&self) -> PathStroker
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for PathStroker
impl RefUnwindSafe for PathStroker
impl Send for PathStroker
impl Sync for PathStroker
impl Unpin for PathStroker
impl UnwindSafe for PathStroker
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)