summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget/canvas/path/arc.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2020-02-20 05:51:18 +0100
committerLibravatar GitHub <noreply@github.com>2020-02-20 05:51:18 +0100
commit17271eae671a933a862dc85aa5b9956a7da70b28 (patch)
tree1a24e3eebb544b0bc8b0ebf2d92f330141f699bf /wgpu/src/widget/canvas/path/arc.rs
parent8d63c49ba1aa43407e0dab0a8e69d3f316a79279 (diff)
parent6f7247ca13181bcdfe1a3065215c1b3204723b84 (diff)
downloadiced-17271eae671a933a862dc85aa5b9956a7da70b28.tar.gz
iced-17271eae671a933a862dc85aa5b9956a7da70b28.tar.bz2
iced-17271eae671a933a862dc85aa5b9956a7da70b28.zip
Merge pull request #193 from hecrj/feature/canvas
Canvas widget for 2D graphics
Diffstat (limited to 'wgpu/src/widget/canvas/path/arc.rs')
-rw-r--r--wgpu/src/widget/canvas/path/arc.rs44
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,
+ }
+ }
+}