mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-18 18:38:05 +08:00
Add a document method that returns a layer's bounding box (#273)
* Add a document method that returns a layer's bounding box * Moved `use` to the top of the file * Add layer local bounding box method
This commit is contained in:
@@ -6,6 +6,7 @@ pub use ellipse::Ellipse;
|
||||
pub mod line;
|
||||
use glam::{DMat2, DVec2};
|
||||
use kurbo::BezPath;
|
||||
use kurbo::Shape as KurboShape;
|
||||
pub use line::Line;
|
||||
|
||||
pub mod rect;
|
||||
@@ -100,6 +101,12 @@ impl LayerDataTypes {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn bounding_box(&self, transform: glam::DAffine2, style: style::PathStyle) -> [DVec2; 2] {
|
||||
let bez_path = self.to_kurbo_path(transform, style);
|
||||
let bbox = bez_path.bounding_box();
|
||||
[DVec2::new(bbox.x0, bbox.y0), DVec2::new(bbox.x1, bbox.y1)]
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
@@ -168,6 +175,10 @@ impl Layer {
|
||||
self.data.to_kurbo_path(self.transform, self.style)
|
||||
}
|
||||
|
||||
pub fn bounding_box(&self, transform: glam::DAffine2, style: style::PathStyle) -> [DVec2; 2] {
|
||||
self.data.bounding_box(transform, style)
|
||||
}
|
||||
|
||||
pub fn as_folder_mut(&mut self) -> Result<&mut Folder, DocumentError> {
|
||||
match &mut self.data {
|
||||
LayerDataTypes::Folder(f) => Ok(f),
|
||||
|
||||
Reference in New Issue
Block a user