This commit is contained in:
indierusty 2025-06-26 14:30:40 +05:30
parent 4c6e5da2a8
commit db141046a3
3 changed files with 6 additions and 5 deletions

View file

@ -1481,7 +1481,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
..Default::default()
},
DocumentNode {
inputs: vec![NodeInput::node(NodeId(0), 0), NodeInput::network(concrete!(graphene_std::vector::VectorTableModification), 1)],
inputs: vec![NodeInput::node(NodeId(0), 0), NodeInput::network(concrete!(graphene_std::vector::VectorDataInstancesModification), 1)],
manual_composition: Some(generic!(T)),
implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::vector::vector_data::modification::PathModifyNode")),
..Default::default()
@ -1495,7 +1495,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
}),
inputs: vec![
NodeInput::value(TaggedValue::VectorData(VectorDataTable::default()), true),
NodeInput::value(TaggedValue::VectorModification(Default::default()), false),
NodeInput::value(TaggedValue::VectorDataInstancesModification(Default::default()), false),
],
..Default::default()
},

View file

@ -418,11 +418,11 @@ impl Hash for VectorModification {
}
}
pub type VectorTableModification = HashMap<usize, VectorModification>;
pub type VectorDataInstancesModification = HashMap<usize, VectorModification>;
/// A node that applies a procedural modification to some [`VectorData`].
#[node_macro::node(category(""))]
async fn path_modify(_ctx: impl Ctx, mut vector_data: VectorDataTable, modification: VectorTableModification) -> VectorDataTable {
async fn path_modify(_ctx: impl Ctx, mut vector_data: VectorDataTable, modification: VectorDataInstancesModification) -> VectorDataTable {
for (index, vector_data_instance) in vector_data.instance_mut_iter().enumerate() {
if let Some(vector_modification) = modification.get(&index) {
vector_modification.apply(vector_data_instance.instance);

View file

@ -11,6 +11,7 @@ use graphene_core::raster_types::CPU;
use graphene_core::renderer::RenderMetadata;
use graphene_core::transform::ReferencePoint;
use graphene_core::uuid::NodeId;
use graphene_core::vector::VectorDataInstancesModification;
use graphene_core::vector::style::Fill;
use graphene_core::{Color, MemoHash, Node, Type};
use std::fmt::Display;
@ -214,7 +215,7 @@ tagged_value! {
DocumentNode(DocumentNode),
Curve(graphene_core::raster::curve::Curve),
Footprint(graphene_core::transform::Footprint),
VectorModification(Box<graphene_core::vector::VectorModification>),
VectorDataInstancesModification(VectorDataInstancesModification),
FontCache(Arc<graphene_core::text::FontCache>),
// ==========
// ENUM TYPES