Implement canvas::Path::rectangle helper method
This commit is contained in:
parent
5c923fce48
commit
c545af3577
3 changed files with 23 additions and 17 deletions
|
|
@ -7,6 +7,8 @@ mod builder;
|
|||
pub use arc::Arc;
|
||||
pub use builder::Builder;
|
||||
|
||||
use iced_native::{Point, Size};
|
||||
|
||||
/// An immutable set of points that may or may not be connected.
|
||||
///
|
||||
/// A single [`Path`] can represent different kinds of 2D shapes!
|
||||
|
|
@ -33,6 +35,14 @@ impl Path {
|
|||
builder.build()
|
||||
}
|
||||
|
||||
/// Creates a new [`Path`] representing a rectangle given its top-left
|
||||
/// corner coordinate and its `Size`.
|
||||
///
|
||||
/// [`Path`]: struct.Path.html
|
||||
pub fn rectangle(top_left: Point, size: Size) -> Self {
|
||||
Self::new(|p| p.rectangle(top_left, size))
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn raw(&self) -> &lyon::path::Path {
|
||||
&self.raw
|
||||
|
|
|
|||
|
|
@ -133,11 +133,14 @@ impl Builder {
|
|||
///
|
||||
/// [`Path`]: struct.Path.html
|
||||
#[inline]
|
||||
pub fn rectangle(&mut self, p: Point, size: Size) {
|
||||
self.move_to(p);
|
||||
self.line_to(Point::new(p.x + size.width, p.y));
|
||||
self.line_to(Point::new(p.x + size.width, p.y + size.height));
|
||||
self.line_to(Point::new(p.x, p.y + size.height));
|
||||
pub fn rectangle(&mut self, top_left: Point, size: Size) {
|
||||
self.move_to(top_left);
|
||||
self.line_to(Point::new(top_left.x + size.width, top_left.y));
|
||||
self.line_to(Point::new(
|
||||
top_left.x + size.width,
|
||||
top_left.y + size.height,
|
||||
));
|
||||
self.line_to(Point::new(top_left.x, top_left.y + size.height));
|
||||
self.close();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue