diff --git a/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs b/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs index 729334dc5..d0be22688 100644 --- a/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs +++ b/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs @@ -316,7 +316,7 @@ fn static_nodes() -> Vec { DocumentNodeMetadata { persistent_metadata: DocumentNodePersistentMetadata { display_name: "Layer".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(1, -3)), + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, -3)), ..Default::default() }, ..Default::default() @@ -333,7 +333,7 @@ fn static_nodes() -> Vec { ..Default::default() }, }, - description: Cow::Borrowed("The Merge node combines graphical data through composition."), + description: Cow::Borrowed("Merge attaches a layer to the stack's group."), properties: None, }, DocumentNodeDefinition { @@ -429,7 +429,7 @@ fn static_nodes() -> Vec { DocumentNodeMetadata { persistent_metadata: DocumentNodePersistentMetadata { display_name: "To Artboard".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(-10, -3)), + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(-14, -3)), ..Default::default() }, ..Default::default() @@ -437,7 +437,7 @@ fn static_nodes() -> Vec { DocumentNodeMetadata { persistent_metadata: DocumentNodePersistentMetadata { display_name: "Monitor".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(-2, -3)), + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(-7, -3)), ..Default::default() }, ..Default::default() @@ -445,7 +445,7 @@ fn static_nodes() -> Vec { DocumentNodeMetadata { persistent_metadata: DocumentNodePersistentMetadata { display_name: "Append Artboards".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(6, -4)), + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, -4)), ..Default::default() }, ..Default::default() diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 0ad1a7d08..c09fbb92a 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -1076,7 +1076,6 @@ impl MessageHandler> for PortfolioMes } if reference == "Sample Points" && inputs_count == 5 { - // TODO: Rename to "Sample Polyline", also remove segment generation from "Scatter Points" let node_definition = resolve_document_node_type("Sample Polyline").unwrap(); let new_node_template = node_definition.default_node_template(); let document_node = new_node_template.document_node; @@ -1096,7 +1095,6 @@ impl MessageHandler> for PortfolioMes document.network_interface.set_input(&InputConnector::node(*node_id, 5), old_inputs[3].clone(), network_path); document.network_interface.set_input(&InputConnector::node(*node_id, 6), old_inputs[4].clone(), network_path); - // TODO: Rename to "Sample Polyline", also remove segment generation from "Scatter Points" document.network_interface.replace_reference_name(node_id, network_path, "Sample Polyline".to_string()); } } diff --git a/node-graph/gcore/src/graphic_element.rs b/node-graph/gcore/src/graphic_element.rs index 44fb22c1d..3ca4f43e0 100644 --- a/node-graph/gcore/src/graphic_element.rs +++ b/node-graph/gcore/src/graphic_element.rs @@ -340,7 +340,12 @@ pub fn migrate_artboard_group<'de, D: serde::Deserializer<'de>>(deserializer: D) pub type ArtboardGroupTable = Instances; #[node_macro::node(category(""))] -async fn layer(_: impl Ctx, mut stack: GraphicGroupTable, element: GraphicElement, node_path: Vec) -> GraphicGroupTable { +async fn layer( + _: impl Ctx, + #[implementations(GraphicGroupTable, VectorDataTable, RasterDataTable, RasterDataTable)] mut stack: Instances, + #[implementations(GraphicElement, VectorData, Raster, Raster)] element: I, + node_path: Vec, +) -> Instances { // Get the penultimate element of the node path, or None if the path is too short let source_node_id = node_path.get(node_path.len().wrapping_sub(2)).copied(); diff --git a/node-graph/gcore/src/vector/vector_nodes.rs b/node-graph/gcore/src/vector/vector_nodes.rs index b6eabc192..857f7e8ec 100644 --- a/node-graph/gcore/src/vector/vector_nodes.rs +++ b/node-graph/gcore/src/vector/vector_nodes.rs @@ -9,7 +9,7 @@ use crate::raster_types::{CPU, GPU, RasterDataTable}; use crate::registry::types::{Angle, Fraction, IntegerCount, Length, Multiplier, Percentage, PixelLength, PixelSize, SeedValue}; use crate::renderer::GraphicElementRendered; use crate::transform::{Footprint, ReferencePoint, Transform}; -use crate::vector::misc::{MergeByDistanceAlgorithm, PointSpacingType, dvec2_to_point}; +use crate::vector::misc::{MergeByDistanceAlgorithm, PointSpacingType}; use crate::vector::style::{PaintOrder, StrokeAlign, StrokeCap, StrokeJoin}; use crate::vector::{FillId, PointDomain, RegionId}; use crate::{CloneVarArgs, Color, Context, Ctx, ExtractAll, GraphicElement, GraphicGroupTable, OwnedContextImpl}; @@ -1413,7 +1413,6 @@ async fn poisson_disk_points( .stroke_bezpath_iter() .map(|mut bezpath| { // TODO: apply transform to points instead of modifying the paths - bezpath.apply_affine(Affine::new(vector_data_instance.transform.to_cols_array())); bezpath.close_path(); let bbox = bezpath.bounding_box(); (bezpath, bbox) @@ -1425,16 +1424,9 @@ async fn poisson_disk_points( continue; } - let mut poisson_disk_bezpath = BezPath::new(); - for point in bezpath_algorithms::poisson_disk_points(i, &path_with_bounding_boxes, separation_disk_diameter, || rng.random::()) { - if poisson_disk_bezpath.elements().is_empty() { - poisson_disk_bezpath.move_to(dvec2_to_point(point)); - } else { - poisson_disk_bezpath.line_to(dvec2_to_point(point)); - } + result.point_domain.push(PointId::generate(), point); } - result.append_bezpath(poisson_disk_bezpath); } // Transfer the style from the input vector data to the result.