From a94354df04d188d9c1d3baa25e31bb7dc64bc533 Mon Sep 17 00:00:00 2001 From: kythyria Date: Wed, 16 Apr 2025 02:07:34 +0100 Subject: [PATCH] New node: Dimensions (#2576) * Add node for size of bounding box * Keep rustfmt happy --------- Co-authored-by: Keavon Chambers --- node-graph/gcore/src/vector/vector_nodes.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/node-graph/gcore/src/vector/vector_nodes.rs b/node-graph/gcore/src/vector/vector_nodes.rs index daf84882..7eef8855 100644 --- a/node-graph/gcore/src/vector/vector_nodes.rs +++ b/node-graph/gcore/src/vector/vector_nodes.rs @@ -954,6 +954,16 @@ async fn bounding_box(_: impl Ctx, vector_data: VectorDataTable) -> VectorDataTa result } +#[node_macro::node(category("Vector"), path(graphene_core::vector))] +async fn dimensions(_: impl Ctx, vector_data: VectorDataTable) -> DVec2 { + let vector_data_transform = vector_data.transform(); + let vector_data = vector_data.one_instance().instance; + vector_data + .bounding_box_with_transform(vector_data_transform) + .map(|[top_left, bottom_right]| bottom_right - top_left) + .unwrap_or_default() +} + #[node_macro::node(category("Vector"), path(graphene_core::vector), properties("offset_path_properties"))] async fn offset_path(_: impl Ctx, vector_data: VectorDataTable, distance: f64, line_join: LineJoin, #[default(4.)] miter_limit: f64) -> VectorDataTable { let vector_data_transform = vector_data.transform();