Rename DocumentNodeType to DocumentNodeBlueprint for clarity

This commit is contained in:
Keavon Chambers
2023-11-05 01:24:53 -08:00
parent 377d85e46f
commit 09743dcdc4
7 changed files with 123 additions and 130 deletions
@@ -480,7 +480,7 @@ impl MessageHandler<DocumentMessage, DocumentInputs<'_>> for DocumentMessageHand
// Set a random seed input // Set a random seed input
responses.add(NodeGraphMessage::SetInputValue { responses.add(NodeGraphMessage::SetInputValue {
node_id: *imaginate_node.last().unwrap(), node_id: *imaginate_node.last().unwrap(),
// Needs to match the index of the seed parameter in `pub const IMAGINATE_NODE: DocumentNodeType` in `document_node_type.rs` // Needs to match the index of the seed parameter in `pub const IMAGINATE_NODE: DocumentNodeBlueprint` in `document_node_type.rs`
input_index: 3, input_index: 3,
value: graph_craft::document::value::TaggedValue::F64(random_value), value: graph_craft::document::value::TaggedValue::F64(random_value),
}); });
@@ -95,7 +95,7 @@ impl NodeImplementation {
/// Acts as a description for a [DocumentNode] before it gets instantiated as one. /// Acts as a description for a [DocumentNode] before it gets instantiated as one.
#[derive(Clone)] #[derive(Clone)]
pub struct DocumentNodeType { pub struct DocumentNodeBlueprint {
pub name: &'static str, pub name: &'static str,
pub category: &'static str, pub category: &'static str,
pub identifier: NodeImplementation, pub identifier: NodeImplementation,
@@ -106,7 +106,7 @@ pub struct DocumentNodeType {
pub manual_composition: Option<graphene_core::Type>, pub manual_composition: Option<graphene_core::Type>,
} }
impl Default for DocumentNodeType { impl Default for DocumentNodeBlueprint {
fn default() -> Self { fn default() -> Self {
Self { Self {
name: Default::default(), name: Default::default(),
@@ -123,14 +123,14 @@ impl Default for DocumentNodeType {
// We use the once cell for lazy initialization to avoid the overhead of reconstructing the node list every time. // We use the once cell for lazy initialization to avoid the overhead of reconstructing the node list every time.
// TODO: make document nodes not require a `'static` lifetime to avoid having to split the construction into const and non-const parts. // TODO: make document nodes not require a `'static` lifetime to avoid having to split the construction into const and non-const parts.
static DOCUMENT_NODE_TYPES: once_cell::sync::Lazy<Vec<DocumentNodeType>> = once_cell::sync::Lazy::new(static_nodes); static DOCUMENT_NODE_TYPES: once_cell::sync::Lazy<Vec<DocumentNodeBlueprint>> = once_cell::sync::Lazy::new(static_nodes);
// TODO: Dynamic node library // TODO: Dynamic node library
/// Defines the "signature" or "header file"-like metadata for the document nodes, but not the implementation (which is defined in the node registry). /// Defines the "signature" or "header file"-like metadata for the document nodes, but not the implementation (which is defined in the node registry).
/// The document node is the instance while these are the "class" (or "blueprint"). /// The document node is the instance while these are the "class" (or "blueprint").
fn static_nodes() -> Vec<DocumentNodeType> { fn static_nodes() -> Vec<DocumentNodeBlueprint> {
vec![ vec![
DocumentNodeType { DocumentNodeBlueprint {
name: "Boolean", name: "Boolean",
category: "Inputs", category: "Inputs",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -139,7 +139,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::boolean_properties, properties: node_properties::boolean_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Number", name: "Number",
category: "Inputs", category: "Inputs",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -148,7 +148,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::number_properties, properties: node_properties::number_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Color", name: "Color",
category: "Inputs", category: "Inputs",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -157,7 +157,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::color_properties, properties: node_properties::color_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Identity", name: "Identity",
category: "Structural", category: "Structural",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -170,7 +170,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: |_document_node, _node_id, _context| node_properties::string_properties("The identity node simply returns the input"), properties: |_document_node, _node_id, _context| node_properties::string_properties("The identity node simply returns the input"),
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Monitor", name: "Monitor",
category: "Structural", category: "Structural",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -183,7 +183,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: |_document_node, _node_id, _context| node_properties::string_properties("The Monitor node stores the value of its last evaluation"), properties: |_document_node, _node_id, _context| node_properties::string_properties("The Monitor node stores the value of its last evaluation"),
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Layer", name: "Layer",
category: "General", category: "General",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -247,7 +247,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::layer_properties, properties: node_properties::layer_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Artboard", name: "Artboard",
category: "General", category: "General",
identifier: NodeImplementation::proto("graphene_core::ConstructArtboardNode<_, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::ConstructArtboardNode<_, _, _, _>"),
@@ -262,7 +262,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::artboard_properties, properties: node_properties::artboard_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Input Frame", name: "Input Frame",
category: "Ignore", category: "Ignore",
identifier: NodeImplementation::proto("graphene_core::ExtractImageFrame"), identifier: NodeImplementation::proto("graphene_core::ExtractImageFrame"),
@@ -278,7 +278,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::input_properties, properties: node_properties::input_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Load Image", name: "Load Image",
category: "Structural", category: "Structural",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -323,7 +323,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::load_image_properties, properties: node_properties::load_image_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Create Canvas", name: "Create Canvas",
category: "Structural", category: "Structural",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -362,7 +362,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
}], }],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Draw Canvas", name: "Draw Canvas",
category: "Structural", category: "Structural",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -420,7 +420,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
}], }],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Begin Scope", name: "Begin Scope",
category: "Ignore", category: "Ignore",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -472,7 +472,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: |_document_node, _node_id, _context| node_properties::string_properties("Binds the input in a local scope as a variable"), properties: |_document_node, _node_id, _context| node_properties::string_properties("Binds the input in a local scope as a variable"),
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "End Scope", name: "End Scope",
category: "Ignore", category: "Ignore",
identifier: NodeImplementation::proto("graphene_core::memo::EndLetNode<_, _>"), identifier: NodeImplementation::proto("graphene_core::memo::EndLetNode<_, _>"),
@@ -495,7 +495,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: |_document_node, _node_id, _context| node_properties::string_properties("Consumes the scope opened by the Begin Scope node and evaluates the contained node network"), properties: |_document_node, _node_id, _context| node_properties::string_properties("Consumes the scope opened by the Begin Scope node and evaluates the contained node network"),
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Output", name: "Output",
category: "Ignore", category: "Ignore",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -557,7 +557,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::output_properties, properties: node_properties::output_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Image Frame", name: "Image Frame",
category: "General", category: "General",
identifier: NodeImplementation::proto("graphene_std::raster::ImageFrameNode<_, _>"), identifier: NodeImplementation::proto("graphene_std::raster::ImageFrameNode<_, _>"),
@@ -569,7 +569,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: |_document_node, _node_id, _context| node_properties::string_properties("Creates an embedded image with the given transform"), properties: |_document_node, _node_id, _context| node_properties::string_properties("Creates an embedded image with the given transform"),
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Pixel Noise", name: "Pixel Noise",
category: "General", category: "General",
identifier: NodeImplementation::proto("graphene_std::raster::PixelNoiseNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_std::raster::PixelNoiseNode<_, _, _>"),
@@ -583,7 +583,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::pixel_noise_properties, properties: node_properties::pixel_noise_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Mask", name: "Mask",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_std::raster::MaskImageNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_std::raster::MaskImageNode<_, _, _>"),
@@ -595,7 +595,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::mask_properties, properties: node_properties::mask_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Insert Channel", name: "Insert Channel",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_std::raster::InsertChannelNode<_, _, _, _>"), identifier: NodeImplementation::proto("graphene_std::raster::InsertChannelNode<_, _, _, _>"),
@@ -608,7 +608,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::insert_channel_properties, properties: node_properties::insert_channel_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Combine Channels", name: "Combine Channels",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_std::raster::CombineChannelsNode"), identifier: NodeImplementation::proto("graphene_std::raster::CombineChannelsNode"),
@@ -625,7 +625,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
}], }],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Blend", name: "Blend",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::BlendNode<_, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::BlendNode<_, _, _, _>"),
@@ -639,7 +639,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::blend_properties, properties: node_properties::blend_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Levels", name: "Levels",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::LevelsNode<_, _, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::LevelsNode<_, _, _, _, _>"),
@@ -679,7 +679,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::levels_properties, properties: node_properties::levels_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Black & White", name: "Black & White",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::BlackAndWhiteNode<_, _, _, _, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::BlackAndWhiteNode<_, _, _, _, _, _, _>"),
@@ -729,7 +729,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::black_and_white_properties, properties: node_properties::black_and_white_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Color Channel", name: "Color Channel",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -738,7 +738,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::color_channel_properties, properties: node_properties::color_channel_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Blend Mode", name: "Blend Mode",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -747,7 +747,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::blend_mode_properties, properties: node_properties::blend_mode_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Luminance", name: "Luminance",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::LuminanceNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::LuminanceNode<_>"),
@@ -759,7 +759,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::luminance_properties, properties: node_properties::luminance_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Extract Channel", name: "Extract Channel",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::ExtractChannelNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::ExtractChannelNode<_>"),
@@ -771,7 +771,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::extract_channel_properties, properties: node_properties::extract_channel_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Extract Alpha", name: "Extract Alpha",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::ExtractAlphaNode<>"), identifier: NodeImplementation::proto("graphene_core::raster::ExtractAlphaNode<>"),
@@ -779,7 +779,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Image", FrontendGraphDataType::Raster)], outputs: vec![DocumentOutputType::new("Image", FrontendGraphDataType::Raster)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Extract Opaque", name: "Extract Opaque",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::ExtractOpaqueNode<>"), identifier: NodeImplementation::proto("graphene_core::raster::ExtractOpaqueNode<>"),
@@ -787,7 +787,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Image", FrontendGraphDataType::Raster)], outputs: vec![DocumentOutputType::new("Image", FrontendGraphDataType::Raster)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Split Channels", name: "Split Channels",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -845,7 +845,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
has_primary_output: false, has_primary_output: false,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Brush", name: "Brush",
category: "Brush", category: "Brush",
identifier: NodeImplementation::proto("graphene_std::brush::BrushNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_std::brush::BrushNode<_, _, _>"),
@@ -861,7 +861,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
}], }],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Extract Vector Points", name: "Extract Vector Points",
category: "Brush", category: "Brush",
identifier: NodeImplementation::proto("graphene_std::brush::VectorPointsNode"), identifier: NodeImplementation::proto("graphene_std::brush::VectorPointsNode"),
@@ -872,7 +872,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
}], }],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Memoize", name: "Memoize",
category: "Structural", category: "Structural",
identifier: NodeImplementation::proto("graphene_core::memo::MemoNode<_, _>"), identifier: NodeImplementation::proto("graphene_core::memo::MemoNode<_, _>"),
@@ -881,7 +881,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
manual_composition: Some(concrete!(())), manual_composition: Some(concrete!(())),
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Image", name: "Image",
category: "Ignore", category: "Ignore",
identifier: NodeImplementation::proto("graphene_core::ops::IdNode"), identifier: NodeImplementation::proto("graphene_core::ops::IdNode"),
@@ -891,7 +891,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "Uniform", name: "Uniform",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -943,7 +943,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "Storage", name: "Storage",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -995,7 +995,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "CreateOutputBuffer", name: "CreateOutputBuffer",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1053,7 +1053,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "CreateComputePass", name: "CreateComputePass",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1121,7 +1121,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "CreatePipelineLayout", name: "CreatePipelineLayout",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::proto("gpu_executor::CreatePipelineLayoutNode<_, _, _, _>"), identifier: NodeImplementation::proto("gpu_executor::CreatePipelineLayoutNode<_, _, _, _>"),
@@ -1155,7 +1155,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "ExecuteComputePipeline", name: "ExecuteComputePipeline",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1207,7 +1207,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "ReadOutputBuffer", name: "ReadOutputBuffer",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1259,7 +1259,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "CreateGpuSurface", name: "CreateGpuSurface",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1298,7 +1298,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "RenderTexture", name: "RenderTexture",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1352,7 +1352,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "UploadTexture", name: "UploadTexture",
category: "Gpu", category: "Gpu",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -1404,7 +1404,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "GpuImage", name: "GpuImage",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_std::executor::MapGpuSingleImageNode<_>"), identifier: NodeImplementation::proto("graphene_std::executor::MapGpuSingleImageNode<_>"),
@@ -1425,7 +1425,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "gpu")] #[cfg(feature = "gpu")]
DocumentNodeType { DocumentNodeBlueprint {
name: "Blend (GPU)", name: "Blend (GPU)",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_std::executor::BlendGpuImageNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_std::executor::BlendGpuImageNode<_, _, _>"),
@@ -1439,7 +1439,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::blend_properties, properties: node_properties::blend_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Extract", name: "Extract",
category: "Macros", category: "Macros",
identifier: NodeImplementation::Extract, identifier: NodeImplementation::Extract,
@@ -1452,7 +1452,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "quantization")] #[cfg(feature = "quantization")]
DocumentNodeType { DocumentNodeBlueprint {
name: "Generate Quantization", name: "Generate Quantization",
category: "Quantization", category: "Quantization",
identifier: NodeImplementation::proto("graphene_std::quantization::GenerateQuantizationNode<_, _>"), identifier: NodeImplementation::proto("graphene_std::quantization::GenerateQuantizationNode<_, _>"),
@@ -1478,7 +1478,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "quantization")] #[cfg(feature = "quantization")]
DocumentNodeType { DocumentNodeBlueprint {
name: "Quantize Image", name: "Quantize Image",
category: "Quantization", category: "Quantization",
identifier: NodeImplementation::proto("graphene_core::quantization::QuantizeNode<_>"), identifier: NodeImplementation::proto("graphene_core::quantization::QuantizeNode<_>"),
@@ -1499,7 +1499,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
#[cfg(feature = "quantization")] #[cfg(feature = "quantization")]
DocumentNodeType { DocumentNodeBlueprint {
name: "DeQuantize Image", name: "DeQuantize Image",
category: "Quantization", category: "Quantization",
identifier: NodeImplementation::proto("graphene_core::quantization::DeQuantizeNode<_>"), identifier: NodeImplementation::proto("graphene_core::quantization::DeQuantizeNode<_>"),
@@ -1519,7 +1519,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::quantize_properties, properties: node_properties::quantize_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Invert RGB", name: "Invert RGB",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::InvertRGBNode"), identifier: NodeImplementation::proto("graphene_core::raster::InvertRGBNode"),
@@ -1527,7 +1527,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Image", FrontendGraphDataType::Raster)], outputs: vec![DocumentOutputType::new("Image", FrontendGraphDataType::Raster)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Hue/Saturation", name: "Hue/Saturation",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::HueSaturationNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::HueSaturationNode<_, _, _>"),
@@ -1541,7 +1541,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::adjust_hsl_properties, properties: node_properties::adjust_hsl_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Brightness/Contrast", name: "Brightness/Contrast",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::BrightnessContrastNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::BrightnessContrastNode<_, _, _>"),
@@ -1555,7 +1555,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::brightness_contrast_properties, properties: node_properties::brightness_contrast_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Curves", name: "Curves",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::CurvesNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::CurvesNode<_>"),
@@ -1567,7 +1567,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::curves_properties, properties: node_properties::curves_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Threshold", name: "Threshold",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::ThresholdNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::ThresholdNode<_, _, _>"),
@@ -1581,7 +1581,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::adjust_threshold_properties, properties: node_properties::adjust_threshold_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Vibrance", name: "Vibrance",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::VibranceNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::VibranceNode<_>"),
@@ -1593,7 +1593,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::adjust_vibrance_properties, properties: node_properties::adjust_vibrance_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Channel Mixer", name: "Channel Mixer",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::ChannelMixerNode<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::ChannelMixerNode<_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _>"),
@@ -1628,7 +1628,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::adjust_channel_mixer_properties, properties: node_properties::adjust_channel_mixer_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Selective Color", name: "Selective Color",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto( identifier: NodeImplementation::proto(
@@ -1690,7 +1690,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::adjust_selective_color_properties, properties: node_properties::adjust_selective_color_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Opacity", name: "Opacity",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::OpacityNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::OpacityNode<_>"),
@@ -1702,7 +1702,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::multiply_opacity, properties: node_properties::multiply_opacity,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Posterize", name: "Posterize",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::PosterizeNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::PosterizeNode<_>"),
@@ -1714,7 +1714,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::posterize_properties, properties: node_properties::posterize_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Exposure", name: "Exposure",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::ExposureNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::ExposureNode<_, _, _>"),
@@ -1728,7 +1728,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::exposure_properties, properties: node_properties::exposure_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Add", name: "Add",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::AddParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::AddParameterNode<_>"),
@@ -1740,7 +1740,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::add_properties, properties: node_properties::add_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Subtract", name: "Subtract",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::AddParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::AddParameterNode<_>"),
@@ -1752,7 +1752,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::subtract_properties, properties: node_properties::subtract_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Divide", name: "Divide",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::DivideParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::DivideParameterNode<_>"),
@@ -1764,7 +1764,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::divide_properties, properties: node_properties::divide_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Multiply", name: "Multiply",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::MultiplyParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::MultiplyParameterNode<_>"),
@@ -1776,7 +1776,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::multiply_properties, properties: node_properties::multiply_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Exponent", name: "Exponent",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::ExponentParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::ExponentParameterNode<_>"),
@@ -1788,7 +1788,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::exponent_properties, properties: node_properties::exponent_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Floor", name: "Floor",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::FloorNode"), identifier: NodeImplementation::proto("graphene_core::ops::FloorNode"),
@@ -1797,7 +1797,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Ceil", name: "Ceil",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::CeilNode"), identifier: NodeImplementation::proto("graphene_core::ops::CeilNode"),
@@ -1806,7 +1806,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Round", name: "Round",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::RoundNode"), identifier: NodeImplementation::proto("graphene_core::ops::RoundNode"),
@@ -1815,7 +1815,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Absolute Value", name: "Absolute Value",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::AbsoluteNode"), identifier: NodeImplementation::proto("graphene_core::ops::AbsoluteNode"),
@@ -1824,7 +1824,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Logarithm", name: "Logarithm",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::LogParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::LogParameterNode<_>"),
@@ -1836,7 +1836,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::log_properties, properties: node_properties::log_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Natural Logarithm", name: "Natural Logarithm",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::NaturalLogNode"), identifier: NodeImplementation::proto("graphene_core::ops::NaturalLogNode"),
@@ -1845,7 +1845,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Sine", name: "Sine",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::SineNode"), identifier: NodeImplementation::proto("graphene_core::ops::SineNode"),
@@ -1854,7 +1854,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Cosine", name: "Cosine",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::CosineNode"), identifier: NodeImplementation::proto("graphene_core::ops::CosineNode"),
@@ -1863,7 +1863,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Tangent", name: "Tangent",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::TangentNode"), identifier: NodeImplementation::proto("graphene_core::ops::TangentNode"),
@@ -1872,7 +1872,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Max", name: "Max",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::MaxParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::MaxParameterNode<_>"),
@@ -1884,7 +1884,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::max_properties, properties: node_properties::max_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Min", name: "Min",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::MinParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::MinParameterNode<_>"),
@@ -1896,7 +1896,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::min_properties, properties: node_properties::min_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Equals", name: "Equals",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::EqParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::EqParameterNode<_>"),
@@ -1908,7 +1908,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::eq_properties, properties: node_properties::eq_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Modulo", name: "Modulo",
category: "Math", category: "Math",
identifier: NodeImplementation::proto("graphene_core::ops::ModuloParameterNode<_>"), identifier: NodeImplementation::proto("graphene_core::ops::ModuloParameterNode<_>"),
@@ -1920,7 +1920,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::modulo_properties, properties: node_properties::modulo_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Log to Console", name: "Log to Console",
category: "Logic", category: "Logic",
identifier: NodeImplementation::proto("graphene_core::logic::LogToConsoleNode"), identifier: NodeImplementation::proto("graphene_core::logic::LogToConsoleNode"),
@@ -1929,7 +1929,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Or", name: "Or",
category: "Logic", category: "Logic",
identifier: NodeImplementation::proto("graphene_core::logic::LogicOrNode<_>"), identifier: NodeImplementation::proto("graphene_core::logic::LogicOrNode<_>"),
@@ -1941,7 +1941,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::logic_operator_properties, properties: node_properties::logic_operator_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "And", name: "And",
category: "Logic", category: "Logic",
identifier: NodeImplementation::proto("graphene_core::logic::LogicAndNode<_>"), identifier: NodeImplementation::proto("graphene_core::logic::LogicAndNode<_>"),
@@ -1953,7 +1953,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::logic_operator_properties, properties: node_properties::logic_operator_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "XOR", name: "XOR",
category: "Logic", category: "Logic",
identifier: NodeImplementation::proto("graphene_core::logic::LogicXorNode<_>"), identifier: NodeImplementation::proto("graphene_core::logic::LogicXorNode<_>"),
@@ -1965,7 +1965,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::logic_operator_properties, properties: node_properties::logic_operator_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Not", name: "Not",
category: "Logic", category: "Logic",
identifier: NodeImplementation::proto("graphene_core::logic::LogicNotNode"), identifier: NodeImplementation::proto("graphene_core::logic::LogicNotNode"),
@@ -1975,7 +1975,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
(*IMAGINATE_NODE).clone(), (*IMAGINATE_NODE).clone(),
DocumentNodeType { DocumentNodeBlueprint {
name: "Circle", name: "Circle",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::CircleGenerator<_>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::CircleGenerator<_>"),
@@ -1984,7 +1984,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::circle_properties, properties: node_properties::circle_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Ellipse", name: "Ellipse",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::EllipseGenerator<_, _>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::EllipseGenerator<_, _>"),
@@ -1997,7 +1997,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::ellipse_properties, properties: node_properties::ellipse_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Rectangle", name: "Rectangle",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::RectangleGenerator<_, _>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::RectangleGenerator<_, _>"),
@@ -2010,7 +2010,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::rectangle_properties, properties: node_properties::rectangle_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Regular Polygon", name: "Regular Polygon",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::RegularPolygonGenerator<_, _>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::RegularPolygonGenerator<_, _>"),
@@ -2023,7 +2023,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::regular_polygon_properties, properties: node_properties::regular_polygon_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Star", name: "Star",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::StarGenerator<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::StarGenerator<_, _, _>"),
@@ -2037,7 +2037,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::star_properties, properties: node_properties::star_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Line", name: "Line",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::LineGenerator<_, _>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::LineGenerator<_, _>"),
@@ -2050,7 +2050,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::line_properties, properties: node_properties::line_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Spline", name: "Spline",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::SplineGenerator<_>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::SplineGenerator<_>"),
@@ -2062,7 +2062,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::spline_properties, properties: node_properties::spline_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Shape", name: "Shape",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::PathGenerator<_>"), identifier: NodeImplementation::proto("graphene_core::vector::generator_nodes::PathGenerator<_>"),
@@ -2073,7 +2073,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Vector", FrontendGraphDataType::Subpath)], outputs: vec![DocumentOutputType::new("Vector", FrontendGraphDataType::Subpath)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Sample", name: "Sample",
category: "Structural", category: "Structural",
identifier: NodeImplementation::proto("graphene_std::raster::SampleNode<_>"), identifier: NodeImplementation::proto("graphene_std::raster::SampleNode<_>"),
@@ -2082,7 +2082,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Raster", FrontendGraphDataType::Raster)], outputs: vec![DocumentOutputType::new("Raster", FrontendGraphDataType::Raster)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Mandelbrot", name: "Mandelbrot",
category: "Generators", category: "Generators",
identifier: NodeImplementation::proto("graphene_std::raster::MandelbrotNode"), identifier: NodeImplementation::proto("graphene_std::raster::MandelbrotNode"),
@@ -2091,7 +2091,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Raster", FrontendGraphDataType::Raster)], outputs: vec![DocumentOutputType::new("Raster", FrontendGraphDataType::Raster)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Cull", name: "Cull",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::transform::CullNode<_>"), identifier: NodeImplementation::proto("graphene_core::transform::CullNode<_>"),
@@ -2100,7 +2100,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Vector", FrontendGraphDataType::Subpath)], outputs: vec![DocumentOutputType::new("Vector", FrontendGraphDataType::Subpath)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Text", name: "Text",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::text::TextGenerator<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::text::TextGenerator<_, _, _>"),
@@ -2114,7 +2114,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::node_section_font, properties: node_properties::node_section_font,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Transform", name: "Transform",
category: "Transform", category: "Transform",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -2162,7 +2162,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::transform_properties, properties: node_properties::transform_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "SetTransform", name: "SetTransform",
category: "Transform", category: "Transform",
identifier: NodeImplementation::proto("graphene_core::transform::SetTransformNode<_>"), identifier: NodeImplementation::proto("graphene_core::transform::SetTransformNode<_>"),
@@ -2173,7 +2173,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Data", FrontendGraphDataType::Subpath)], outputs: vec![DocumentOutputType::new("Data", FrontendGraphDataType::Subpath)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Fill", name: "Fill",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::SetFillNode<_, _, _, _, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::vector::SetFillNode<_, _, _, _, _, _, _>"),
@@ -2191,7 +2191,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::fill_properties, properties: node_properties::fill_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Stroke", name: "Stroke",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::SetStrokeNode<_, _, _, _, _, _, _>"), identifier: NodeImplementation::proto("graphene_core::vector::SetStrokeNode<_, _, _, _, _, _, _>"),
@@ -2209,7 +2209,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::stroke_properties, properties: node_properties::stroke_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Repeat", name: "Repeat",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::RepeatNode<_, _>"), identifier: NodeImplementation::proto("graphene_core::vector::RepeatNode<_, _>"),
@@ -2222,7 +2222,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::repeat_properties, properties: node_properties::repeat_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Bounding Box", name: "Bounding Box",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::BoundingBoxNode"), identifier: NodeImplementation::proto("graphene_core::vector::BoundingBoxNode"),
@@ -2231,7 +2231,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Circular Repeat", name: "Circular Repeat",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::CircularRepeatNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::vector::CircularRepeatNode<_, _, _>"),
@@ -2245,7 +2245,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::circular_repeat_properties, properties: node_properties::circular_repeat_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Resample Points", name: "Resample Points",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::ResamplePoints<_>"), identifier: NodeImplementation::proto("graphene_core::vector::ResamplePoints<_>"),
@@ -2257,7 +2257,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::resample_points_properties, properties: node_properties::resample_points_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Spline from Points", name: "Spline from Points",
category: "Vector", category: "Vector",
identifier: NodeImplementation::proto("graphene_core::vector::SplineFromPointsNode"), identifier: NodeImplementation::proto("graphene_core::vector::SplineFromPointsNode"),
@@ -2266,7 +2266,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::no_properties, properties: node_properties::no_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Image Segmentation", name: "Image Segmentation",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_std::image_segmentation::ImageSegmentationNode<_>"), identifier: NodeImplementation::proto("graphene_std::image_segmentation::ImageSegmentationNode<_>"),
@@ -2277,7 +2277,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
outputs: vec![DocumentOutputType::new("Segments", FrontendGraphDataType::Raster)], outputs: vec![DocumentOutputType::new("Segments", FrontendGraphDataType::Raster)],
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Index", name: "Index",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::IndexNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::IndexNode<_>"),
@@ -2290,7 +2290,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
..Default::default() ..Default::default()
}, },
// Applies the given color to each pixel of an image but maintains the alpha value // Applies the given color to each pixel of an image but maintains the alpha value
DocumentNodeType { DocumentNodeBlueprint {
name: "Color Fill", name: "Color Fill",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::adjustments::ColorFillNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::adjustments::ColorFillNode<_>"),
@@ -2302,7 +2302,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
properties: node_properties::color_fill_properties, properties: node_properties::color_fill_properties,
..Default::default() ..Default::default()
}, },
DocumentNodeType { DocumentNodeBlueprint {
name: "Color Overlay", name: "Color Overlay",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::adjustments::ColorOverlayNode<_, _, _>"), identifier: NodeImplementation::proto("graphene_core::raster::adjustments::ColorOverlayNode<_, _, _>"),
@@ -2319,7 +2319,7 @@ fn static_nodes() -> Vec<DocumentNodeType> {
] ]
} }
pub static IMAGINATE_NODE: Lazy<DocumentNodeType> = Lazy::new(|| DocumentNodeType { pub static IMAGINATE_NODE: Lazy<DocumentNodeBlueprint> = Lazy::new(|| DocumentNodeBlueprint {
name: "Imaginate", name: "Imaginate",
category: "Image Synthesis", category: "Image Synthesis",
identifier: NodeImplementation::DocumentNode(NodeNetwork { identifier: NodeImplementation::DocumentNode(NodeNetwork {
@@ -2397,7 +2397,7 @@ pub static IMAGINATE_NODE: Lazy<DocumentNodeType> = Lazy::new(|| DocumentNodeTyp
..Default::default() ..Default::default()
}); });
pub fn resolve_document_node_type(name: &str) -> Option<&DocumentNodeType> { pub fn resolve_document_node_type(name: &str) -> Option<&DocumentNodeBlueprint> {
DOCUMENT_NODE_TYPES.iter().find(|node| node.name == name) DOCUMENT_NODE_TYPES.iter().find(|node| node.name == name)
} }
@@ -2409,7 +2409,7 @@ pub fn collect_node_types() -> Vec<FrontendNodeType> {
.collect() .collect()
} }
impl DocumentNodeType { impl DocumentNodeBlueprint {
/// Generate a [`DocumentNodeImplementation`] from this node type, using a nested network. /// Generate a [`DocumentNodeImplementation`] from this node type, using a nested network.
pub fn generate_implementation(&self) -> DocumentNodeImplementation { pub fn generate_implementation(&self) -> DocumentNodeImplementation {
// let num_inputs = self.inputs.len(); // let num_inputs = self.inputs.len();
@@ -2445,7 +2445,7 @@ impl DocumentNodeType {
DocumentNodeImplementation::Network(inner_network) DocumentNodeImplementation::Network(inner_network)
} }
/// Converts the [DocumentNodeType] type to a [DocumentNode], based on the inputs from the graph (which must be the correct length) and the metadata /// Converts the [DocumentNodeBlueprint] type to a [DocumentNode], based on the inputs from the graph (which must be the correct length) and the metadata
pub fn to_document_node(&self, inputs: impl IntoIterator<Item = NodeInput>, metadata: graph_craft::document::DocumentNodeMetadata) -> DocumentNode { pub fn to_document_node(&self, inputs: impl IntoIterator<Item = NodeInput>, metadata: graph_craft::document::DocumentNodeMetadata) -> DocumentNode {
let inputs: Vec<_> = inputs.into_iter().collect(); let inputs: Vec<_> = inputs.into_iter().collect();
assert_eq!(inputs.len(), self.inputs.len(), "Inputs passed from the graph must be equal to the number required"); assert_eq!(inputs.len(), self.inputs.len(), "Inputs passed from the graph must be equal to the number required");
@@ -2460,7 +2460,7 @@ impl DocumentNodeType {
} }
} }
/// Converts the [DocumentNodeType] type to a [DocumentNode], using the provided `input_override` and falling back to the default inputs. /// Converts the [DocumentNodeBlueprint] type to a [DocumentNode], using the provided `input_override` and falling back to the default inputs.
/// `input_override` does not have to be the correct length. /// `input_override` does not have to be the correct length.
pub fn to_document_node_default_inputs(&self, input_override: impl IntoIterator<Item = Option<NodeInput>>, metadata: graph_craft::document::DocumentNodeMetadata) -> DocumentNode { pub fn to_document_node_default_inputs(&self, input_override: impl IntoIterator<Item = Option<NodeInput>>, metadata: graph_craft::document::DocumentNodeMetadata) -> DocumentNode {
let mut input_override = input_override.into_iter(); let mut input_override = input_override.into_iter();
@@ -2468,7 +2468,7 @@ impl DocumentNodeType {
self.to_document_node(inputs, metadata) self.to_document_node(inputs, metadata)
} }
/// Converts the [DocumentNodeType] type to a [DocumentNode], completly default /// Converts the [DocumentNodeBlueprint] type to a [DocumentNode], completly default
pub fn default_document_node(&self) -> DocumentNode { pub fn default_document_node(&self) -> DocumentNode {
self.to_document_node(self.inputs.iter().map(|input| input.default.clone()), DocumentNodeMetadata::default()) self.to_document_node(self.inputs.iter().map(|input| input.default.clone()), DocumentNodeMetadata::default())
} }
@@ -10,7 +10,6 @@
UpdateDocumentLayerDetails, UpdateDocumentLayerDetails,
UpdateDocumentLayerTreeStructureJs, UpdateDocumentLayerTreeStructureJs,
UpdateLayerTreeOptionsLayout, UpdateLayerTreeOptionsLayout,
layerTypeData,
} from "@graphite/wasm-communication/messages"; } from "@graphite/wasm-communication/messages";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
@@ -282,7 +281,7 @@
const layerId = BigInt(item.layerId.toString()); const layerId = BigInt(item.layerId.toString());
path.push(layerId); path.push(layerId);
const mapping = layerCache.get([path[path.length-1]].toString()); const mapping = layerCache.get([path[path.length - 1]].toString());
if (mapping) { if (mapping) {
mapping.layerType = item.children.length >= 1 ? "Folder" : "Layer"; mapping.layerType = item.children.length >= 1 ? "Folder" : "Layer";
mapping.path = new BigUint64Array(path); mapping.path = new BigUint64Array(path);
@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import { isWidgetColumn, isWidgetRow, isWidgetSection, LayoutGroup, type WidgetLayout } from "@graphite/wasm-communication/messages"; import { isWidgetColumn, isWidgetRow, isWidgetSection, type WidgetLayout } from "@graphite/wasm-communication/messages";
import WidgetSection from "@graphite/components/widgets/groups/WidgetSection.svelte"; import WidgetSection from "@graphite/components/widgets/groups/WidgetSection.svelte";
import WidgetRow from "@graphite/components/widgets/WidgetRow.svelte"; import WidgetRow from "@graphite/components/widgets/WidgetRow.svelte";
@@ -3,8 +3,7 @@
import { currentDraggingElement } from "@graphite/io-managers/drag"; import { currentDraggingElement } from "@graphite/io-managers/drag";
import type { LayerType, LayerTypeData } from "@graphite/wasm-communication/messages"; import type { LayerType } from "@graphite/wasm-communication/messages";
import { layerTypeData } from "@graphite/wasm-communication/messages";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte"; import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
@@ -694,11 +694,6 @@ export class LayerMetadata {
export type LayerType = "Folder" | "Layer"; export type LayerType = "Folder" | "Layer";
export type LayerTypeData = {
name: string;
icon: IconName;
};
export class ImaginateImageData { export class ImaginateImageData {
readonly path!: BigUint64Array; readonly path!: BigUint64Array;
+1 -1
View File
@@ -26,7 +26,7 @@ pub struct DocumentNode {
Each `DocumentNode` is of a particular type, for example the "Opacity" node type. You can define your own type of document node in `editor/src/messages/portfolio/document/node_graph/node_graph_message_handler/document_node_types.rs`. A sample document node type definition for the opacity node is shown: Each `DocumentNode` is of a particular type, for example the "Opacity" node type. You can define your own type of document node in `editor/src/messages/portfolio/document/node_graph/node_graph_message_handler/document_node_types.rs`. A sample document node type definition for the opacity node is shown:
```rs ```rs
DocumentNodeType { DocumentNodeBlueprint {
name: "Opacity", name: "Opacity",
category: "Image Adjustments", category: "Image Adjustments",
identifier: NodeImplementation::proto("graphene_core::raster::OpacityNode<_>"), identifier: NodeImplementation::proto("graphene_core::raster::OpacityNode<_>"),