Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/nodes/geometry/nodes/legacy')
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_align_rotation_to_vector.cc12
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_clamp.cc24
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_color_ramp.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_combine_xyz.cc18
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_compare.cc24
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_convert.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_curve_map.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_fill.cc16
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_map_range.cc30
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_math.cc18
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_mix.cc26
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_proximity.cc10
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_randomize.cc20
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_sample_texture.cc10
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_separate_xyz.cc14
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_transfer.cc10
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_math.cc22
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_attribute_vector_rotate.cc30
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_endpoints.cc6
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_reverse.cc6
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_select_by_handle_type.cc6
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_set_handles.cc6
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_spline_type.cc6
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_subdivide.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_curve_to_points.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_delete_geometry.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_edge_split.cc10
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_material_assign.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_mesh_to_curve.cc6
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_point_distribute.cc12
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_point_instance.cc14
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_point_rotate.cc18
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_point_scale.cc10
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_point_separate.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_point_translate.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_points_to_volume.cc14
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_raycast.cc26
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_select_by_material.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_subdivision_surface.cc8
-rw-r--r--source/blender/nodes/geometry/nodes/legacy/node_geo_volume_to_mesh.cc173
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 &params)
+{
+ 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);
+}