diff options
author | 2020-02-18 08:48:54 +0100 | |
---|---|---|
committer | 2020-02-18 08:48:54 +0100 | |
commit | 9c067562fa765cfc49d09cd9b12fbba96d5619fa (patch) | |
tree | 7e0a37c5f2a867ec62260b934af91a7473f7b7bb /wgpu/src/widget/canvas/path/arc.rs | |
parent | 570f769744aabce2d9d9618feadb47e4b92f50ca (diff) | |
download | iced-9c067562fa765cfc49d09cd9b12fbba96d5619fa.tar.gz iced-9c067562fa765cfc49d09cd9b12fbba96d5619fa.tar.bz2 iced-9c067562fa765cfc49d09cd9b12fbba96d5619fa.zip |
Write documentation for new `canvas` module
Diffstat (limited to 'wgpu/src/widget/canvas/path/arc.rs')
-rw-r--r-- | wgpu/src/widget/canvas/path/arc.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/wgpu/src/widget/canvas/path/arc.rs b/wgpu/src/widget/canvas/path/arc.rs new file mode 100644 index 00000000..343191f1 --- /dev/null +++ b/wgpu/src/widget/canvas/path/arc.rs @@ -0,0 +1,44 @@ +//! Build and draw curves. +use iced_native::{Point, Vector}; + +/// A segment of a differentiable curve. +#[derive(Debug, Clone, Copy)] +pub struct Arc { + /// The center of the arc. + pub center: Point, + /// The radius of the arc. + pub radius: f32, + /// The start of the segment's angle, clockwise rotation. + pub start_angle: f32, + /// The end of the segment's angle, clockwise rotation. + pub end_angle: f32, +} + +/// An elliptical [`Arc`]. +/// +/// [`Arc`]: struct.Arc.html +#[derive(Debug, Clone, Copy)] +pub struct Elliptical { + /// The center of the arc. + pub center: Point, + /// The radii of the arc's ellipse, defining its axes. + pub radii: Vector, + /// The rotation of the arc's ellipse. + pub rotation: f32, + /// The start of the segment's angle, clockwise rotation. + pub start_angle: f32, + /// The end of the segment's angle, clockwise rotation. + pub end_angle: f32, +} + +impl From<Arc> for Elliptical { + fn from(arc: Arc) -> Elliptical { + Elliptical { + center: arc.center, + radii: Vector::new(arc.radius, arc.radius), + rotation: 0.0, + start_angle: arc.start_angle, + end_angle: arc.end_angle, + } + } +} |