diff options
Diffstat (limited to 'source/blender/nodes/geometry/nodes/legacy')
40 files changed, 430 insertions, 255 deletions
diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_align_rotation_to_vector.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_align_rotation_to_vector.cc index d0bb906e8af..b92d4704d63 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_align_rotation_to_vector.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_align_rotation_to_vector.cc @@ -26,18 +26,18 @@ namespace blender::nodes { static void geo_node_align_rotation_to_vector_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Factor"); - b.add_input<decl::Float>("Factor", "Factor_001") + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Factor")); + b.add_input<decl::Float>(N_("Factor"), "Factor_001") .default_value(1.0f) .min(0.0f) .max(1.0f) .subtype(PROP_FACTOR); - b.add_input<decl::String>("Vector"); - b.add_input<decl::Vector>("Vector", "Vector_001") + b.add_input<decl::String>(N_("Vector")); + b.add_input<decl::Vector>(N_("Vector"), "Vector_001") .default_value({0.0, 0.0, 1.0}) .subtype(PROP_ANGLE); - b.add_output<decl::Geometry>("Geometry"); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_align_rotation_to_vector_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_clamp.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_clamp.cc index 2e931a2da98..91ff114a480 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_clamp.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_clamp.cc @@ -24,18 +24,18 @@ namespace blender::nodes { static void geo_node_attribute_clamp_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute"); - b.add_input<decl::String>("Result"); - b.add_input<decl::Vector>("Min"); - b.add_input<decl::Vector>("Max").default_value({1.0f, 1.0f, 1.0f}); - b.add_input<decl::Float>("Min", "Min_001"); - b.add_input<decl::Float>("Max", "Max_001").default_value(1.0f); - b.add_input<decl::Int>("Min", "Min_002").min(-100000).max(100000); - b.add_input<decl::Int>("Max", "Max_002").default_value(100).min(-100000).max(100000); - b.add_input<decl::Color>("Min", "Min_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); - b.add_input<decl::Color>("Max", "Max_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")); + b.add_input<decl::String>(N_("Result")); + b.add_input<decl::Vector>(N_("Min")); + b.add_input<decl::Vector>(N_("Max")).default_value({1.0f, 1.0f, 1.0f}); + b.add_input<decl::Float>(N_("Min"), "Min_001"); + b.add_input<decl::Float>(N_("Max"), "Max_001").default_value(1.0f); + b.add_input<decl::Int>(N_("Min"), "Min_002").min(-100000).max(100000); + b.add_input<decl::Int>(N_("Max"), "Max_002").default_value(100).min(-100000).max(100000); + b.add_input<decl::Color>(N_("Min"), "Min_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); + b.add_input<decl::Color>(N_("Max"), "Max_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_clamp_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_color_ramp.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_color_ramp.cc index aa054af3acd..ab4b6aad545 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_color_ramp.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_color_ramp.cc @@ -27,10 +27,10 @@ namespace blender::nodes { static void geo_node_attribute_color_ramp_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_color_ramp_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_combine_xyz.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_combine_xyz.cc index 569d5a824ca..d4c23380b4e 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_combine_xyz.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_combine_xyz.cc @@ -23,15 +23,15 @@ namespace blender::nodes { static void geo_node_attribute_combine_xyz_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("X"); - b.add_input<decl::Float>("X", "X_001"); - b.add_input<decl::String>("Y"); - b.add_input<decl::Float>("Y", "Y_001"); - b.add_input<decl::String>("Z"); - b.add_input<decl::Float>("Z", "Z_001"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("X")); + b.add_input<decl::Float>(N_("X"), "X_001"); + b.add_input<decl::String>(N_("Y")); + b.add_input<decl::Float>(N_("Y"), "Y_001"); + b.add_input<decl::String>(N_("Z")); + b.add_input<decl::Float>(N_("Z"), "Z_001"); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_combine_xyz_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_compare.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_compare.cc index 0b9708dae14..e4e43a7b724 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_compare.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_compare.cc @@ -25,18 +25,18 @@ namespace blender::nodes { static void geo_node_attribute_compare_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("A"); - b.add_input<decl::Float>("A", "A_001"); - b.add_input<decl::Vector>("A", "A_002"); - b.add_input<decl::Color>("A", "A_003").default_value({0.5, 0.5, 0.5, 1.0}); - b.add_input<decl::String>("B"); - b.add_input<decl::Float>("B", "B_001"); - b.add_input<decl::Vector>("B", "B_002"); - b.add_input<decl::Color>("B", "B_003").default_value({0.5, 0.5, 0.5, 1.0}); - b.add_input<decl::Float>("Threshold").default_value(0.01f).min(0.0f); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("A")); + b.add_input<decl::Float>(N_("A"), "A_001"); + b.add_input<decl::Vector>(N_("A"), "A_002"); + b.add_input<decl::Color>(N_("A"), "A_003").default_value({0.5, 0.5, 0.5, 1.0}); + b.add_input<decl::String>(N_("B")); + b.add_input<decl::Float>(N_("B"), "B_001"); + b.add_input<decl::Vector>(N_("B"), "B_002"); + b.add_input<decl::Color>(N_("B"), "B_003").default_value({0.5, 0.5, 0.5, 1.0}); + b.add_input<decl::Float>(N_("Threshold")).default_value(0.01f).min(0.0f); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_compare_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_convert.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_convert.cc index a2382aa9d25..dc05fa2c125 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_convert.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_convert.cc @@ -23,10 +23,10 @@ namespace blender::nodes { static void geo_node_attribute_convert_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_convert_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_curve_map.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_curve_map.cc index b9621b4ae92..669ac21436f 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_curve_map.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_curve_map.cc @@ -28,10 +28,10 @@ namespace blender::nodes { static void geo_node_attribute_curve_map_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_curve_map_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_fill.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_fill.cc index 1458b6df9ba..5cb49dd83d0 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_fill.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_fill.cc @@ -23,14 +23,14 @@ namespace blender::nodes { static void geo_node_attribute_fill_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute").is_attribute_name(); - b.add_input<decl::Vector>("Value", "Value"); - b.add_input<decl::Float>("Value", "Value_001"); - b.add_input<decl::Color>("Value", "Value_002"); - b.add_input<decl::Bool>("Value", "Value_003"); - b.add_input<decl::Int>("Value", "Value_004"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")).is_attribute_name(); + b.add_input<decl::Vector>(N_("Value"), "Value"); + b.add_input<decl::Float>(N_("Value"), "Value_001"); + b.add_input<decl::Color>(N_("Value"), "Value_002"); + b.add_input<decl::Bool>(N_("Value"), "Value_003"); + b.add_input<decl::Int>(N_("Value"), "Value_004"); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_fill_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_map_range.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_map_range.cc index 0ea3bbe1e45..978c75187fe 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_map_range.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_map_range.cc @@ -26,21 +26,21 @@ namespace blender::nodes { static void geo_node_attribute_map_range_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute"); - b.add_input<decl::String>("Result"); - b.add_input<decl::Float>("From Min"); - b.add_input<decl::Float>("From Max").default_value(1.0f); - b.add_input<decl::Float>("To Min"); - b.add_input<decl::Float>("To Max").default_value(1.0f); - b.add_input<decl::Float>("Steps").default_value(4.0f); - b.add_input<decl::Vector>("From Min", "From Min_001"); - b.add_input<decl::Vector>("From Max", "From Max_001").default_value({1.0f, 1.0f, 1.0f}); - b.add_input<decl::Vector>("To Min", "To Min_001"); - b.add_input<decl::Vector>("To Max", "To Max_001").default_value({1.0f, 1.0f, 1.0f}); - b.add_input<decl::Vector>("Steps", "Steps_001").default_value({4.0f, 4.0f, 4.0f}); - b.add_input<decl::Bool>("Clamp"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")); + b.add_input<decl::String>(N_("Result")); + b.add_input<decl::Float>(N_("From Min")); + b.add_input<decl::Float>(N_("From Max")).default_value(1.0f); + b.add_input<decl::Float>(N_("To Min")); + b.add_input<decl::Float>(N_("To Max")).default_value(1.0f); + b.add_input<decl::Float>(N_("Steps")).default_value(4.0f); + b.add_input<decl::Vector>(N_("From Min"), "From Min_001"); + b.add_input<decl::Vector>(N_("From Max"), "From Max_001").default_value({1.0f, 1.0f, 1.0f}); + b.add_input<decl::Vector>(N_("To Min"), "To Min_001"); + b.add_input<decl::Vector>(N_("To Max"), "To Max_001").default_value({1.0f, 1.0f, 1.0f}); + b.add_input<decl::Vector>(N_("Steps"), "Steps_001").default_value({4.0f, 4.0f, 4.0f}); + b.add_input<decl::Bool>(N_("Clamp")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void fn_attribute_map_range_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_math.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_math.cc index efa09215b45..55d35f87cda 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_math.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_math.cc @@ -29,15 +29,15 @@ namespace blender::nodes { static void geo_node_attribute_math_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("A"); - b.add_input<decl::Float>("A", "A_001"); - b.add_input<decl::String>("B"); - b.add_input<decl::Float>("B", "B_001"); - b.add_input<decl::String>("C"); - b.add_input<decl::Float>("C", "C_001"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("A")); + b.add_input<decl::Float>(N_("A"), "A_001"); + b.add_input<decl::String>(N_("B")); + b.add_input<decl::Float>(N_("B"), "B_001"); + b.add_input<decl::String>(N_("C")); + b.add_input<decl::Float>(N_("C"), "C_001"); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static bool operation_use_input_c(const NodeMathOperation operation) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_mix.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_mix.cc index 74e05cb997d..b4205bc91b7 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_mix.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_mix.cc @@ -29,23 +29,23 @@ namespace blender::nodes { static void geo_node_mix_attribute_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Factor"); - b.add_input<decl::Float>("Factor", "Factor_001") + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Factor")); + b.add_input<decl::Float>(N_("Factor"), "Factor_001") .default_value(0.5f) .min(0.0f) .max(1.0f) .subtype(PROP_FACTOR); - b.add_input<decl::String>("A"); - b.add_input<decl::Float>("A", "A_001"); - b.add_input<decl::Vector>("A", "A_002"); - b.add_input<decl::Color>("A", "A_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); - b.add_input<decl::String>("B"); - b.add_input<decl::Float>("B", "B_001"); - b.add_input<decl::Vector>("B", "B_002"); - b.add_input<decl::Color>("B", "B_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::String>(N_("A")); + b.add_input<decl::Float>(N_("A"), "A_001"); + b.add_input<decl::Vector>(N_("A"), "A_002"); + b.add_input<decl::Color>(N_("A"), "A_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); + b.add_input<decl::String>(N_("B")); + b.add_input<decl::Float>(N_("B"), "B_001"); + b.add_input<decl::Vector>(N_("B"), "B_002"); + b.add_input<decl::Color>(N_("B"), "B_003").default_value({0.5f, 0.5f, 0.5f, 1.0f}); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_mix_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_proximity.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_proximity.cc index 6120118f611..9e3a7984c53 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_proximity.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_proximity.cc @@ -30,11 +30,11 @@ namespace blender::nodes { static void geo_node_attribute_proximity_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Geometry>("Target"); - b.add_input<decl::String>("Distance"); - b.add_input<decl::String>("Position"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Geometry>(N_("Target")); + b.add_input<decl::String>(N_("Distance")); + b.add_input<decl::String>(N_("Position")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_proximity_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_randomize.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_randomize.cc index 2e6ba456725..2901472d661 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_randomize.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_randomize.cc @@ -27,16 +27,16 @@ namespace blender::nodes { static void geo_node_legacy_attribute_randomize_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Attribute"); - b.add_input<decl::Vector>("Min"); - b.add_input<decl::Vector>("Max").default_value({1.0f, 1.0f, 1.0f}); - b.add_input<decl::Float>("Min", "Min_001"); - b.add_input<decl::Float>("Max", "Max_001").default_value(1.0f); - b.add_input<decl::Int>("Min", "Min_002").min(-100000).max(100000); - b.add_input<decl::Int>("Max", "Max_002").default_value(100).min(-100000).max(100000); - b.add_input<decl::Int>("Seed").min(-10000).max(10000); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Attribute")); + b.add_input<decl::Vector>(N_("Min")); + b.add_input<decl::Vector>(N_("Max")).default_value({1.0f, 1.0f, 1.0f}); + b.add_input<decl::Float>(N_("Min"), "Min_001"); + b.add_input<decl::Float>(N_("Max"), "Max_001").default_value(1.0f); + b.add_input<decl::Int>(N_("Min"), "Min_002").min(-100000).max(100000); + b.add_input<decl::Int>(N_("Max"), "Max_002").default_value(100).min(-100000).max(100000); + b.add_input<decl::Int>(N_("Seed")).min(-10000).max(10000); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_legacy_attribute_random_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_sample_texture.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_sample_texture.cc index 52f97475941..19d6ced6eb6 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_sample_texture.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_sample_texture.cc @@ -32,11 +32,11 @@ namespace blender::nodes { static void geo_node_attribute_sample_texture_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Texture>("Texture").hide_label(); - b.add_input<decl::String>("Mapping"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Texture>(N_("Texture")).hide_label(); + b.add_input<decl::String>(N_("Mapping")); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static AttributeDomain get_result_domain(const GeometryComponent &component, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_separate_xyz.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_separate_xyz.cc index de0090406c6..809e75e73a3 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_separate_xyz.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_separate_xyz.cc @@ -23,13 +23,13 @@ namespace blender::nodes { static void geo_node_attribute_separate_xyz_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Vector"); - b.add_input<decl::Vector>("Vector", "Vector_001"); - b.add_input<decl::String>("Result X"); - b.add_input<decl::String>("Result Y"); - b.add_input<decl::String>("Result Z"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Vector")); + b.add_input<decl::Vector>(N_("Vector"), "Vector_001"); + b.add_input<decl::String>(N_("Result X")); + b.add_input<decl::String>(N_("Result Y")); + b.add_input<decl::String>(N_("Result Z")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_separate_xyz_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_transfer.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_transfer.cc index d7a66dac3ad..3a9cd52661a 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_transfer.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_transfer.cc @@ -33,11 +33,11 @@ namespace blender::nodes { static void geo_node_attribute_transfer_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Geometry>("Source Geometry"); - b.add_input<decl::String>("Source"); - b.add_input<decl::String>("Destination"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Geometry>(N_("Source Geometry")); + b.add_input<decl::String>(N_("Source")); + b.add_input<decl::String>(N_("Destination")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_transfer_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_math.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_math.cc index 59903050f88..4c351846243 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_math.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_math.cc @@ -30,17 +30,17 @@ namespace blender::nodes { static void geo_node_attribute_vector_math_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("A"); - b.add_input<decl::Vector>("A", "A_001"); - b.add_input<decl::String>("B"); - b.add_input<decl::Vector>("B", "B_001"); - b.add_input<decl::Float>("B", "B_002"); - b.add_input<decl::String>("C"); - b.add_input<decl::Vector>("C", "C_001"); - b.add_input<decl::Float>("C", "C_002"); - b.add_input<decl::String>("Result"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("A")); + b.add_input<decl::Vector>(N_("A"), "A_001"); + b.add_input<decl::String>(N_("B")); + b.add_input<decl::Vector>(N_("B"), "B_001"); + b.add_input<decl::Float>(N_("B"), "B_002"); + b.add_input<decl::String>(N_("C")); + b.add_input<decl::Vector>(N_("C"), "C_001"); + b.add_input<decl::Float>(N_("C"), "C_002"); + b.add_input<decl::String>(N_("Result")); + b.add_output<decl::Geometry>(N_("Geometry")); } static bool operation_use_input_b(const NodeVectorMathOperation operation) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_rotate.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_rotate.cc index 0c515fa63fb..9ab8ec25fb6 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_rotate.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_rotate.cc @@ -25,21 +25,21 @@ namespace blender::nodes { static void geo_node_attribute_vector_rotate_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Vector"); - b.add_input<decl::Vector>("Vector", "Vector_001").min(0.0f).max(1.0f).hide_value(); - b.add_input<decl::String>("Center"); - b.add_input<decl::Vector>("Center", "Center_001").subtype(PROP_XYZ); - b.add_input<decl::String>("Axis"); - b.add_input<decl::Vector>("Axis", "Axis_001").min(-1.0f).max(1.0f).subtype(PROP_XYZ); - b.add_input<decl::String>("Angle"); - b.add_input<decl::Float>("Angle", "Angle_001").subtype(PROP_ANGLE); - b.add_input<decl::String>("Rotation"); - b.add_input<decl::Vector>("Rotation", "Rotation_001").subtype(PROP_EULER); - b.add_input<decl::Bool>("Invert"); - b.add_input<decl::String>("Result"); - - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Vector")); + b.add_input<decl::Vector>(N_("Vector"), "Vector_001").min(0.0f).max(1.0f).hide_value(); + b.add_input<decl::String>(N_("Center")); + b.add_input<decl::Vector>(N_("Center"), "Center_001").subtype(PROP_XYZ); + b.add_input<decl::String>(N_("Axis")); + b.add_input<decl::Vector>(N_("Axis"), "Axis_001").min(-1.0f).max(1.0f).subtype(PROP_XYZ); + b.add_input<decl::String>(N_("Angle")); + b.add_input<decl::Float>(N_("Angle"), "Angle_001").subtype(PROP_ANGLE); + b.add_input<decl::String>(N_("Rotation")); + b.add_input<decl::Vector>(N_("Rotation"), "Rotation_001").subtype(PROP_EULER); + b.add_input<decl::Bool>(N_("Invert")); + b.add_input<decl::String>(N_("Result")); + + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_attribute_vector_rotate_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_endpoints.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_endpoints.cc index 85d1392aa35..8b81008ff34 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_endpoints.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_endpoints.cc @@ -29,9 +29,9 @@ namespace blender::nodes { static void geo_node_curve_endpoints_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_output<decl::Geometry>("Start Points"); - b.add_output<decl::Geometry>("End Points"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_output<decl::Geometry>(N_("Start Points")); + b.add_output<decl::Geometry>(N_("End Points")); } /** diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_reverse.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_reverse.cc index d1c81333c30..ba76fafe3e6 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_reverse.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_reverse.cc @@ -24,9 +24,9 @@ namespace blender::nodes { static void geo_node_curve_reverse_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Curve"); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Curve"); + b.add_input<decl::Geometry>(N_("Curve")); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Curve")); } static void geo_node_curve_reverse_exec(GeoNodeExecParams params) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_select_by_handle_type.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_select_by_handle_type.cc index 0d3de7ac5f5..40d827ae141 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_select_by_handle_type.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_select_by_handle_type.cc @@ -27,9 +27,9 @@ namespace blender::nodes { static void geo_node_select_by_handle_type_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_curve_select_by_handle_type_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_set_handles.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_set_handles.cc index 339029336d9..4bac9cb976e 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_set_handles.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_set_handles.cc @@ -25,9 +25,9 @@ namespace blender::nodes { static void geo_node_curve_set_handles_decalre(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Curve"); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Curve"); + b.add_input<decl::Geometry>(N_("Curve")); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Curve")); } static void geo_node_curve_set_handles_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_spline_type.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_spline_type.cc index 44522e990d9..df53c96e6ca 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_spline_type.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_spline_type.cc @@ -27,9 +27,9 @@ namespace blender::nodes { static void geo_node_legacy_curve_spline_type_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Curve"); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Curve"); + b.add_input<decl::Geometry>(N_("Curve")); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Curve")); } static void geo_node_legacy_curve_spline_type_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_subdivide.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_subdivide.cc index 61165902028..f9b0a9d128e 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_subdivide.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_subdivide.cc @@ -33,10 +33,10 @@ namespace blender::nodes { static void geo_node_curve_subdivide_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Cuts"); - b.add_input<decl::Int>("Cuts", "Cuts_001").default_value(1).min(0).max(1000); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Cuts")); + b.add_input<decl::Int>(N_("Cuts"), "Cuts_001").default_value(1).min(0).max(1000); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_curve_subdivide_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_to_points.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_to_points.cc index 2936c150376..c171d485a6a 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_to_points.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_curve_to_points.cc @@ -30,10 +30,10 @@ namespace blender::nodes { static void geo_node_curve_to_points_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Int>("Count").default_value(10).min(2).max(100000); - b.add_input<decl::Float>("Length").default_value(0.1f).min(0.001f).subtype(PROP_DISTANCE); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Int>(N_("Count")).default_value(10).min(2).max(100000); + b.add_input<decl::Float>(N_("Length")).default_value(0.1f).min(0.001f).subtype(PROP_DISTANCE); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_curve_to_points_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_delete_geometry.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_delete_geometry.cc index 2d9b4da4c83..1d76a0532a1 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_delete_geometry.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_delete_geometry.cc @@ -47,10 +47,10 @@ namespace blender::nodes { static void geo_node_delete_geometry_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Selection"); - b.add_input<decl::Bool>("Invert"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Selection")); + b.add_input<decl::Bool>(N_("Invert")); + b.add_output<decl::Geometry>(N_("Geometry")); } template<typename T> static void copy_data(Span<T> data, MutableSpan<T> r_data, IndexMask mask) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_edge_split.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_edge_split.cc index d7e908edf61..8f2bf05d2b4 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_edge_split.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_edge_split.cc @@ -26,15 +26,15 @@ namespace blender::nodes { static void geo_node_edge_split_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Bool>("Edge Angle").default_value(true); - b.add_input<decl::Float>("Angle") + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Bool>(N_("Edge Angle")).default_value(true); + b.add_input<decl::Float>(N_("Angle")) .default_value(DEG2RADF(30.0f)) .min(0.0f) .max(DEG2RADF(180.0f)) .subtype(PROP_ANGLE); - b.add_input<decl::Bool>("Sharp Edges"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Bool>(N_("Sharp Edges")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_edge_split_exec(GeoNodeExecParams params) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_material_assign.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_material_assign.cc index 7d3481c1067..333a17aa4e9 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_material_assign.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_material_assign.cc @@ -28,10 +28,10 @@ namespace blender::nodes { static void geo_node_legacy_material_assign_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Material>("Material").hide_label(true); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Material>(N_("Material")).hide_label(true); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void assign_material_to_faces(Mesh &mesh, const VArray<bool> &face_mask, Material *material) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_mesh_to_curve.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_mesh_to_curve.cc index 7a27e856cef..9167096fd3d 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_mesh_to_curve.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_mesh_to_curve.cc @@ -22,9 +22,9 @@ namespace blender::nodes { static void geo_node_legacy_mesh_to_curve_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Mesh"); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Curve"); + b.add_input<decl::Geometry>(N_("Mesh")); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Curve")); } static void geo_node_legacy_mesh_to_curve_exec(GeoNodeExecParams params) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_distribute.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_distribute.cc index f30feb48734..210757f986d 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_distribute.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_distribute.cc @@ -42,16 +42,16 @@ namespace blender::nodes { static void geo_node_point_distribute_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Float>("Distance Min").min(0.0f).max(100000.0f).subtype(PROP_DISTANCE); - b.add_input<decl::Float>("Density Max") + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Float>(N_("Distance Min")).min(0.0f).max(100000.0f).subtype(PROP_DISTANCE); + b.add_input<decl::Float>(N_("Density Max")) .default_value(1.0f) .min(0.0f) .max(100000.0f) .subtype(PROP_NONE); - b.add_input<decl::String>("Density Attribute"); - b.add_input<decl::Int>("Seed").min(-10000).max(10000); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::String>(N_("Density Attribute")); + b.add_input<decl::Int>(N_("Seed")).min(-10000).max(10000); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_point_distribute_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_instance.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_instance.cc index fb45c22ced4..ffb2a0dd7ac 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_instance.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_instance.cc @@ -28,12 +28,12 @@ namespace blender::nodes { static void geo_node_point_instance_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Object>("Object").hide_label(); - b.add_input<decl::Collection>("Collection").hide_label(); - b.add_input<decl::Geometry>("Instance Geometry"); - b.add_input<decl::Int>("Seed").min(-10000).max(10000); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Object>(N_("Object")).hide_label(); + b.add_input<decl::Collection>(N_("Collection")).hide_label(); + b.add_input<decl::Geometry>(N_("Instance Geometry")); + b.add_input<decl::Int>(N_("Seed")).min(-10000).max(10000); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_point_instance_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) @@ -184,7 +184,7 @@ static void add_instances_from_component(InstancesComponent &instances, instances.resize(start_len + domain_size); MutableSpan<int> handles = instances.instance_reference_handles().slice(start_len, domain_size); MutableSpan<float4x4> transforms = instances.instance_transforms().slice(start_len, domain_size); - MutableSpan<int> instance_ids = instances.instance_ids().slice(start_len, domain_size); + MutableSpan<int> instance_ids = instances.instance_ids_ensure().slice(start_len, domain_size); /* Skip all of the randomness handling if there is only a single possible instance * (anything except for collection mode with "Whole Collection" turned off). */ diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_rotate.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_rotate.cc index 60c82360007..54d36dab98d 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_rotate.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_rotate.cc @@ -25,14 +25,16 @@ namespace blender::nodes { static void geo_node_point_rotate_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Axis"); - b.add_input<decl::Vector>("Axis", "Axis_001").default_value({0.0, 0.0, 1.0}).subtype(PROP_XYZ); - b.add_input<decl::String>("Angle"); - b.add_input<decl::Float>("Angle", "Angle_001").subtype(PROP_ANGLE); - b.add_input<decl::String>("Rotation"); - b.add_input<decl::Vector>("Rotation", "Rotation_001").subtype(PROP_EULER); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Axis")); + b.add_input<decl::Vector>(N_("Axis"), "Axis_001") + .default_value({0.0, 0.0, 1.0}) + .subtype(PROP_XYZ); + b.add_input<decl::String>(N_("Angle")); + b.add_input<decl::Float>(N_("Angle"), "Angle_001").subtype(PROP_ANGLE); + b.add_input<decl::String>(N_("Rotation")); + b.add_input<decl::Vector>(N_("Rotation"), "Rotation_001").subtype(PROP_EULER); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_point_rotate_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_scale.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_scale.cc index 99adce149e9..934442ee8a3 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_scale.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_scale.cc @@ -25,13 +25,13 @@ namespace blender::nodes { static void geo_node_point_scale_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Factor"); - b.add_input<decl::Vector>("Factor", "Factor_001") + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Factor")); + b.add_input<decl::Vector>(N_("Factor"), "Factor_001") .default_value({1.0f, 1.0f, 1.0f}) .subtype(PROP_XYZ); - b.add_input<decl::Float>("Factor", "Factor_002").default_value(1.0f).min(0.0f); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Float>(N_("Factor"), "Factor_002").default_value(1.0f).min(0.0f); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_point_scale_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_separate.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_separate.cc index 48b6676c1dd..accdaf78439 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_separate.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_separate.cc @@ -27,10 +27,10 @@ namespace blender::nodes { static void geo_node_point_instance_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Mask"); - b.add_output<decl::Geometry>("Geometry 1"); - b.add_output<decl::Geometry>("Geometry 2"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Mask")); + b.add_output<decl::Geometry>(N_("Geometry 1")); + b.add_output<decl::Geometry>(N_("Geometry 2")); } template<typename T> diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_translate.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_translate.cc index f2fce45c57b..34f7641995f 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_point_translate.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_point_translate.cc @@ -23,10 +23,10 @@ namespace blender::nodes { static void geo_node_point_translate_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::String>("Translation"); - b.add_input<decl::Vector>("Translation", "Translation_001").subtype(PROP_TRANSLATION); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Translation")); + b.add_input<decl::Vector>(N_("Translation"), "Translation_001").subtype(PROP_TRANSLATION); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_point_translate_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_points_to_volume.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_points_to_volume.cc index 68d3f232ce1..cf7f466c2a6 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_points_to_volume.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_points_to_volume.cc @@ -32,13 +32,13 @@ namespace blender::nodes { static void geo_node_points_to_volume_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Float>("Density").default_value(1.0f).min(0.0f); - b.add_input<decl::Float>("Voxel Size").default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE); - b.add_input<decl::Float>("Voxel Amount").default_value(64.0f).min(0.0f); - b.add_input<decl::String>("Radius"); - b.add_input<decl::Float>("Radius", "Radius_001").default_value(0.5f).min(0.0f); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Float>(N_("Density")).default_value(1.0f).min(0.0f); + b.add_input<decl::Float>(N_("Voxel Size")).default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE); + b.add_input<decl::Float>(N_("Voxel Amount")).default_value(64.0f).min(0.0f); + b.add_input<decl::String>(N_("Radius")); + b.add_input<decl::Float>(N_("Radius"), "Radius_001").default_value(0.5f).min(0.0f); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_points_to_volume_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_raycast.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_raycast.cc index 6641e622362..e6a81fc9627 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_raycast.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_raycast.cc @@ -28,23 +28,23 @@ namespace blender::nodes { static void geo_node_raycast_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Geometry>("Target Geometry"); - b.add_input<decl::String>("Ray Direction"); - b.add_input<decl::Vector>("Ray Direction", "Ray Direction_001") + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Geometry>(N_("Target Geometry")); + b.add_input<decl::String>(N_("Ray Direction")); + b.add_input<decl::Vector>(N_("Ray Direction"), "Ray Direction_001") .default_value({0.0f, 0.0f, 1.0f}); - b.add_input<decl::String>("Ray Length"); - b.add_input<decl::Float>("Ray Length", "Ray Length_001") + b.add_input<decl::String>(N_("Ray Length")); + b.add_input<decl::Float>(N_("Ray Length"), "Ray Length_001") .default_value(100.0f) .min(0.0f) .subtype(PROP_DISTANCE); - b.add_input<decl::String>("Target Attribute"); - b.add_input<decl::String>("Is Hit"); - b.add_input<decl::String>("Hit Position"); - b.add_input<decl::String>("Hit Normal"); - b.add_input<decl::String>("Hit Distance"); - b.add_input<decl::String>("Hit Attribute"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::String>(N_("Target Attribute")); + b.add_input<decl::String>(N_("Is Hit")); + b.add_input<decl::String>(N_("Hit Position")); + b.add_input<decl::String>(N_("Hit Normal")); + b.add_input<decl::String>(N_("Hit Distance")); + b.add_input<decl::String>(N_("Hit Attribute")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_raycast_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_select_by_material.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_select_by_material.cc index eabdd2bcd5a..a8d6f33a5fd 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_select_by_material.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_select_by_material.cc @@ -30,10 +30,10 @@ namespace blender::nodes { static void geo_node_legacy_select_by_material_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Material>("Material").hide_label(); - b.add_input<decl::String>("Selection"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Material>(N_("Material")).hide_label(); + b.add_input<decl::String>(N_("Selection")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void select_mesh_by_material(const Mesh &mesh, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_subdivision_surface.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_subdivision_surface.cc index 101c915eb77..295cd05fd01 100644 --- a/source/blender/nodes/geometry/nodes/legacy/node_geo_subdivision_surface.cc +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_subdivision_surface.cc @@ -27,10 +27,10 @@ namespace blender::nodes { static void geo_node_subdivision_surface_declare(NodeDeclarationBuilder &b) { - b.add_input<decl::Geometry>("Geometry"); - b.add_input<decl::Int>("Level").default_value(1).min(0).max(6); - b.add_input<decl::Bool>("Use Creases"); - b.add_output<decl::Geometry>("Geometry"); + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::Int>(N_("Level")).default_value(1).min(0).max(6); + b.add_input<decl::Bool>(N_("Use Creases")); + b.add_output<decl::Geometry>(N_("Geometry")); } static void geo_node_subdivision_surface_layout(uiLayout *layout, diff --git a/source/blender/nodes/geometry/nodes/legacy/node_geo_volume_to_mesh.cc b/source/blender/nodes/geometry/nodes/legacy/node_geo_volume_to_mesh.cc new file mode 100644 index 00000000000..39af5bf1fd2 --- /dev/null +++ b/source/blender/nodes/geometry/nodes/legacy/node_geo_volume_to_mesh.cc @@ -0,0 +1,173 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "DEG_depsgraph_query.h" +#ifdef WITH_OPENVDB +# include <openvdb/tools/GridTransformer.h> +# include <openvdb/tools/VolumeToMesh.h> +#endif + +#include "node_geometry_util.hh" + +#include "BKE_lib_id.h" +#include "BKE_material.h" +#include "BKE_mesh.h" +#include "BKE_mesh_runtime.h" +#include "BKE_volume.h" +#include "BKE_volume_to_mesh.hh" + +#include "DNA_mesh_types.h" +#include "DNA_meshdata_types.h" + +#include "UI_interface.h" +#include "UI_resources.h" + +namespace blender::nodes { + +static void geo_node_volume_to_mesh_declare(NodeDeclarationBuilder &b) +{ + b.add_input<decl::Geometry>(N_("Geometry")); + b.add_input<decl::String>(N_("Density")); + b.add_input<decl::Float>(N_("Voxel Size")).default_value(0.3f).min(0.01f).subtype(PROP_DISTANCE); + b.add_input<decl::Float>(N_("Voxel Amount")).default_value(64.0f).min(0.0f); + b.add_input<decl::Float>(N_("Threshold")).default_value(0.1f).min(0.0f); + b.add_input<decl::Float>(N_("Adaptivity")).min(0.0f).max(1.0f).subtype(PROP_FACTOR); + b.add_output<decl::Geometry>(N_("Geometry")); +} + +static void geo_node_volume_to_mesh_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr) +{ + uiLayoutSetPropSep(layout, true); + uiLayoutSetPropDecorate(layout, false); + uiItemR(layout, ptr, "resolution_mode", 0, IFACE_("Resolution"), ICON_NONE); +} + +static void geo_node_volume_to_mesh_init(bNodeTree *UNUSED(ntree), bNode *node) +{ + NodeGeometryVolumeToMesh *data = (NodeGeometryVolumeToMesh *)MEM_callocN( + sizeof(NodeGeometryVolumeToMesh), __func__); + data->resolution_mode = VOLUME_TO_MESH_RESOLUTION_MODE_GRID; + + bNodeSocket *grid_socket = nodeFindSocket(node, SOCK_IN, "Density"); + bNodeSocketValueString *grid_socket_value = (bNodeSocketValueString *)grid_socket->default_value; + STRNCPY(grid_socket_value->value, "density"); + + node->storage = data; +} + +static void geo_node_volume_to_mesh_update(bNodeTree *UNUSED(ntree), bNode *node) +{ + NodeGeometryVolumeToMesh *data = (NodeGeometryVolumeToMesh *)node->storage; + + bNodeSocket *voxel_size_socket = nodeFindSocket(node, SOCK_IN, "Voxel Size"); + bNodeSocket *voxel_amount_socket = nodeFindSocket(node, SOCK_IN, "Voxel Amount"); + nodeSetSocketAvailability(voxel_amount_socket, + data->resolution_mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT); + nodeSetSocketAvailability(voxel_size_socket, + data->resolution_mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE); +} + +#ifdef WITH_OPENVDB + +static void create_mesh_from_volume(GeometrySet &geometry_set_in, + GeometrySet &geometry_set_out, + GeoNodeExecParams ¶ms) +{ + if (!geometry_set_in.has<VolumeComponent>()) { + return; + } + + const NodeGeometryVolumeToMesh &storage = + *(const NodeGeometryVolumeToMesh *)params.node().storage; + + bke::VolumeToMeshResolution resolution; + resolution.mode = (VolumeToMeshResolutionMode)storage.resolution_mode; + if (resolution.mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_AMOUNT) { + resolution.settings.voxel_amount = params.get_input<float>("Voxel Amount"); + if (resolution.settings.voxel_amount <= 0.0f) { + return; + } + } + else if (resolution.mode == VOLUME_TO_MESH_RESOLUTION_MODE_VOXEL_SIZE) { + resolution.settings.voxel_size = params.get_input<float>("Voxel Size"); + if (resolution.settings.voxel_size <= 0.0f) { + return; + } + } + + const VolumeComponent *component = geometry_set_in.get_component_for_read<VolumeComponent>(); + const Volume *volume = component->get_for_read(); + if (volume == nullptr) { + return; + } + + const Main *bmain = DEG_get_bmain(params.depsgraph()); + BKE_volume_load(volume, bmain); + + const std::string grid_name = params.get_input<std::string>("Density"); + const VolumeGrid *volume_grid = BKE_volume_grid_find_for_read(volume, grid_name.c_str()); + if (volume_grid == nullptr) { + return; + } + + float threshold = params.get_input<float>("Threshold"); + float adaptivity = params.get_input<float>("Adaptivity"); + + const openvdb::GridBase::ConstPtr grid = BKE_volume_grid_openvdb_for_read(volume, volume_grid); + Mesh *mesh = bke::volume_to_mesh(*grid, resolution, threshold, adaptivity); + if (mesh == nullptr) { + return; + } + BKE_id_material_eval_ensure_default_slot(&mesh->id); + MeshComponent &dst_component = geometry_set_out.get_component_for_write<MeshComponent>(); + dst_component.replace(mesh); +} + +#endif /* WITH_OPENVDB */ + +static void geo_node_volume_to_mesh_exec(GeoNodeExecParams params) +{ + GeometrySet geometry_set_in = params.extract_input<GeometrySet>("Geometry"); + GeometrySet geometry_set_out; + +#ifdef WITH_OPENVDB + create_mesh_from_volume(geometry_set_in, geometry_set_out, params); +#else + params.error_message_add(NodeWarningType::Error, + TIP_("Disabled, Blender was compiled without OpenVDB")); +#endif + + params.set_output("Geometry", geometry_set_out); +} + +} // namespace blender::nodes + +void register_node_type_geo_legacy_volume_to_mesh() +{ + static bNodeType ntype; + + geo_node_type_base( + &ntype, GEO_NODE_LEGACY_VOLUME_TO_MESH, "Volume to Mesh", NODE_CLASS_GEOMETRY, 0); + ntype.declare = blender::nodes::geo_node_volume_to_mesh_declare; + node_type_storage( + &ntype, "NodeGeometryVolumeToMesh", node_free_standard_storage, node_copy_standard_storage); + node_type_size(&ntype, 170, 120, 700); + node_type_init(&ntype, blender::nodes::geo_node_volume_to_mesh_init); + node_type_update(&ntype, blender::nodes::geo_node_volume_to_mesh_update); + ntype.geometry_node_execute = blender::nodes::geo_node_volume_to_mesh_exec; + ntype.draw_buttons = blender::nodes::geo_node_volume_to_mesh_layout; + nodeRegisterType(&ntype); +} |