Merge branch 'blender-v3.0-release'

This commit is contained in:
Hans Goudey 2021-10-29 09:42:24 -05:00
commit 0c3da7f370
201 changed files with 1161 additions and 1045 deletions

View File

@ -29,7 +29,7 @@ namespace blender::nodes {
static void cmp_node_bokehimage_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Color>("Image");
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,10 +29,10 @@ namespace blender::nodes {
static void cmp_node_brightcontrast_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Bright").min(-100.0f).max(100.0f);
b.add_input<decl::Float>("Contrast").min(-100.0f).max(100.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>(N_("Bright")).min(-100.0f).max(100.0f);
b.add_input<decl::Float>(N_("Contrast")).min(-100.0f).max(100.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_colorbalance_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Fac").default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("Fac")).default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_colorcorrection_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Mask").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>(N_("Mask")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_composite_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_input<decl::Float>("Alpha").default_value(1.0f).min(0.0f).max(1.0f);
b.add_input<decl::Float>("Z").default_value(1.0f).min(0.0f).max(1.0f);
b.add_input<decl::Color>(N_("Image")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_input<decl::Float>(N_("Alpha")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("Z")).default_value(1.0f).min(0.0f).max(1.0f);
}
} // namespace blender::nodes

View File

@ -29,7 +29,7 @@ namespace blender::nodes {
static void cmp_node_time_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Float>("Fac");
b.add_output<decl::Float>(N_("Fac"));
}
} // namespace blender::nodes
@ -90,11 +90,12 @@ namespace blender::nodes {
static void cmp_node_rgbcurves_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Fac").default_value(1.0f).min(-1.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Color>("Black Level").default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_input<decl::Color>("White Level").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("Fac")).default_value(1.0f).min(-1.0f).max(1.0f).subtype(
PROP_FACTOR);
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Color>(N_("Black Level")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_input<decl::Color>(N_("White Level")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_exposure_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Exposure").min(-10.0f).max(10.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>(N_("Exposure")).min(-10.0f).max(10.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,10 +29,13 @@ namespace blender::nodes {
static void cmp_node_gamma_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Gamma").default_value(1.0f).min(0.001f).max(10.0f).subtype(
PROP_UNSIGNED);
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>(N_("Gamma"))
.default_value(1.0f)
.min(0.001f)
.max(10.0f)
.subtype(PROP_UNSIGNED);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,16 +29,20 @@ namespace blender::nodes {
static void cmp_node_huesatval_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Hue").default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Float>("Saturation")
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>(N_("Hue")).default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Float>(N_("Saturation"))
.default_value(1.0f)
.min(0.0f)
.max(2.0f)
.subtype(PROP_FACTOR);
b.add_input<decl::Float>("Value").default_value(1.0f).min(0.0f).max(2.0f).subtype(PROP_FACTOR);
b.add_input<decl::Float>("Fac").default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("Value"))
.default_value(1.0f)
.min(0.0f)
.max(2.0f)
.subtype(PROP_FACTOR);
b.add_input<decl::Float>(N_("Fac")).default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -27,9 +27,9 @@ namespace blender::nodes {
static void cmp_node_huecorrect_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Fac").default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("Fac")).default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,8 +29,8 @@ namespace blender::nodes {
static void cmp_node_idmask_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("ID value").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Float>("Alpha");
b.add_input<decl::Float>(N_("ID value")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Float>(N_("Alpha"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_invert_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Fac").default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>("Color").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Color");
b.add_input<decl::Float>(N_("Fac")).default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Color>(N_("Color")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>(N_("Color"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_levels_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_output<decl::Float>("Mean");
b.add_output<decl::Float>("Std Dev");
b.add_input<decl::Color>(N_("Image")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_output<decl::Float>(N_("Mean"));
b.add_output<decl::Float>(N_("Std Dev"));
}
} // namespace blender::nodes

View File

@ -31,7 +31,7 @@ namespace blender::nodes {
static void cmp_node_mask_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Float>("Mask");
b.add_output<decl::Float>(N_("Mask"));
}
} // namespace blender::nodes

View File

@ -30,12 +30,12 @@ namespace blender::nodes {
static void cmp_node_movieclip_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Color>("Image");
b.add_output<decl::Float>("Alpha");
b.add_output<decl::Float>("Offset X");
b.add_output<decl::Float>("Offset Y");
b.add_output<decl::Float>("Scale");
b.add_output<decl::Float>("Angle");
b.add_output<decl::Color>(N_("Image"));
b.add_output<decl::Float>(N_("Alpha"));
b.add_output<decl::Float>(N_("Offset X"));
b.add_output<decl::Float>(N_("Offset Y"));
b.add_output<decl::Float>(N_("Scale"));
b.add_output<decl::Float>(N_("Angle"));
}
} // namespace blender::nodes

View File

@ -29,8 +29,8 @@ namespace blender::nodes {
static void cmp_node_premulkey_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,7 +29,7 @@ namespace blender::nodes {
static void cmp_node_rgb_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Color>("RGBA").default_value({0.5f, 0.5f, 0.5f, 1.0f});
b.add_output<decl::Color>(N_("RGBA")).default_value({0.5f, 0.5f, 0.5f, 1.0f});
}
} // namespace blender::nodes

View File

@ -29,11 +29,11 @@ namespace blender::nodes {
static void cmp_node_sephsva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("H");
b.add_output<decl::Float>("S");
b.add_output<decl::Float>("V");
b.add_output<decl::Float>("A");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>(N_("H"));
b.add_output<decl::Float>(N_("S"));
b.add_output<decl::Float>(N_("V"));
b.add_output<decl::Float>(N_("A"));
}
} // namespace blender::nodes
@ -53,11 +53,11 @@ namespace blender::nodes {
static void cmp_node_combhsva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("H").min(0.0f).max(1.0f);
b.add_input<decl::Float>("S").min(0.0f).max(1.0f);
b.add_input<decl::Float>("V").min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("H")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("S")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("V")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("A")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -28,11 +28,11 @@ namespace blender::nodes {
static void cmp_node_seprgba_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("R");
b.add_output<decl::Float>("G");
b.add_output<decl::Float>("B");
b.add_output<decl::Float>("A");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>(N_("R"));
b.add_output<decl::Float>(N_("G"));
b.add_output<decl::Float>(N_("B"));
b.add_output<decl::Float>(N_("A"));
}
} // namespace blender::nodes
@ -53,11 +53,11 @@ namespace blender::nodes {
static void cmp_node_combrgba_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("R").min(0.0f).max(1.0f);
b.add_input<decl::Float>("G").min(0.0f).max(1.0f);
b.add_input<decl::Float>("B").min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("R")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("G")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("B")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("A")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,11 +29,11 @@ namespace blender::nodes {
static void cmp_node_sepycca_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("Y");
b.add_output<decl::Float>("Cb");
b.add_output<decl::Float>("Cr");
b.add_output<decl::Float>("A");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>(N_("Y"));
b.add_output<decl::Float>(N_("Cb"));
b.add_output<decl::Float>(N_("Cr"));
b.add_output<decl::Float>(N_("A"));
}
} // namespace blender::nodes
@ -60,11 +60,11 @@ namespace blender::nodes {
static void cmp_node_combycca_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Y").min(0.0f).max(1.0f);
b.add_input<decl::Float>("Cb").default_value(0.5f).min(0.0f).max(1.0f);
b.add_input<decl::Float>("Cr").default_value(0.5f).min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("Y")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("Cb")).default_value(0.5f).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("Cr")).default_value(0.5f).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("A")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,11 +29,11 @@ namespace blender::nodes {
static void cmp_node_sepyuva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>("Y");
b.add_output<decl::Float>("U");
b.add_output<decl::Float>("V");
b.add_output<decl::Float>("A");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Float>(N_("Y"));
b.add_output<decl::Float>(N_("U"));
b.add_output<decl::Float>(N_("V"));
b.add_output<decl::Float>(N_("A"));
}
} // namespace blender::nodes
@ -54,11 +54,11 @@ namespace blender::nodes {
static void cmp_node_combyuva_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Y").min(0.0f).max(1.0f);
b.add_input<decl::Float>("U").min(0.0f).max(1.0f);
b.add_input<decl::Float>("V").min(0.0f).max(1.0f);
b.add_input<decl::Float>("A").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Float>(N_("Y")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("U")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("V")).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("A")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_setalpha_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>("Alpha").default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_input<decl::Float>(N_("Alpha")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -29,14 +29,14 @@ namespace blender::nodes {
static void cmp_node_texture_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Vector>("Offset").min(-2.0f).max(2.0f).subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("Scale")
b.add_input<decl::Vector>(N_("Offset")).min(-2.0f).max(2.0f).subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>(N_("Scale"))
.default_value({1.0f, 1.0f, 1.0f})
.min(-10.0f)
.max(10.0f)
.subtype(PROP_XYZ);
b.add_output<decl::Float>("Value");
b.add_output<decl::Color>("Color");
b.add_output<decl::Float>(N_("Value"));
b.add_output<decl::Color>(N_("Color"));
}
} // namespace blender::nodes

View File

@ -27,8 +27,8 @@ namespace blender::nodes {
static void cmp_node_tonemap_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>("Image");
b.add_input<decl::Color>(N_("Image")).default_value({1.0f, 1.0f, 1.0f, 1.0f});
b.add_output<decl::Color>(N_("Image"));
}
} // namespace blender::nodes

View File

@ -27,9 +27,9 @@ namespace blender::nodes {
static void cmp_node_trackpos_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Float>("X");
b.add_output<decl::Float>("Y");
b.add_output<decl::Vector>("Speed").subtype(PROP_VELOCITY);
b.add_output<decl::Float>(N_("X"));
b.add_output<decl::Float>(N_("Y"));
b.add_output<decl::Vector>(N_("Speed")).subtype(PROP_VELOCITY);
}
} // namespace blender::nodes

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void cmp_node_valtorgb_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Fac").default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_output<decl::Color>("Image");
b.add_output<decl::Float>("Alpha");
b.add_input<decl::Float>(N_("Fac")).default_value(0.5f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_output<decl::Color>(N_("Image"));
b.add_output<decl::Float>(N_("Alpha"));
}
} // namespace blender::nodes
@ -60,8 +60,8 @@ namespace blender::nodes {
static void cmp_node_rgbtobw_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({0.8f, 0.8f, 0.8f, 1.0f});
b.add_output<decl::Color>("Val");
b.add_input<decl::Color>(N_("Image")).default_value({0.8f, 0.8f, 0.8f, 1.0f});
b.add_output<decl::Color>(N_("Val"));
}
} // namespace blender::nodes

View File

@ -29,7 +29,7 @@ namespace blender::nodes {
static void cmp_node_value_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Float>("Value").default_value(0.5f);
b.add_output<decl::Float>(N_("Value")).default_value(0.5f);
}
} // namespace blender::nodes

View File

@ -32,9 +32,9 @@ namespace blender::nodes {
static void cmp_node_viewer_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image").default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_input<decl::Float>("Alpha").default_value(1.0f).min(0.0f).max(1.0f);
b.add_input<decl::Float>("Z").default_value(1.0f).min(0.0f).max(1.0f);
b.add_input<decl::Color>(N_("Image")).default_value({0.0f, 0.0f, 0.0f, 1.0f});
b.add_input<decl::Float>(N_("Alpha")).default_value(1.0f).min(0.0f).max(1.0f);
b.add_input<decl::Float>(N_("Z")).default_value(1.0f).min(0.0f).max(1.0f);
}
} // namespace blender::nodes

View File

@ -23,10 +23,10 @@ namespace blender::nodes {
static void fn_node_legacy_random_float_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_input<decl::Float>("Min").min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>("Max").default_value(1.0f).min(-10000.0f).max(10000.0f);
b.add_input<decl::Int>("Seed").min(-10000).max(10000);
b.add_output<decl::Float>("Value");
b.add_input<decl::Float>(N_("Min")).min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>(N_("Max")).default_value(1.0f).min(-10000.0f).max(10000.0f);
b.add_input<decl::Int>(N_("Seed")).min(-10000).max(10000);
b.add_output<decl::Float>(N_("Value"));
};
} // namespace blender::nodes

View File

@ -28,10 +28,14 @@ namespace blender::nodes {
static void fn_node_align_euler_to_vector_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_input<decl::Vector>("Rotation").subtype(PROP_EULER).hide_value();
b.add_input<decl::Float>("Factor").default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_input<decl::Vector>("Vector").default_value({0.0, 0.0, 1.0});
b.add_output<decl::Vector>("Rotation").subtype(PROP_EULER);
b.add_input<decl::Vector>(N_("Rotation")).subtype(PROP_EULER).hide_value();
b.add_input<decl::Float>(N_("Factor"))
.default_value(1.0f)
.min(0.0f)
.max(1.0f)
.subtype(PROP_FACTOR);
b.add_input<decl::Vector>(N_("Vector")).default_value({0.0, 0.0, 1.0});
b.add_output<decl::Vector>(N_("Rotation")).subtype(PROP_EULER);
}
static void fn_node_align_euler_to_vector_layout(uiLayout *layout,

View File

@ -29,9 +29,9 @@ namespace blender::nodes {
static void fn_node_boolean_math_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_input<decl::Bool>("Boolean", "Boolean");
b.add_input<decl::Bool>("Boolean", "Boolean_001");
b.add_output<decl::Bool>("Boolean");
b.add_input<decl::Bool>(N_("Boolean"), "Boolean");
b.add_input<decl::Bool>(N_("Boolean"), "Boolean_001");
b.add_output<decl::Bool>(N_("Boolean"));
};
static void fn_node_boolean_math_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -31,10 +31,10 @@ namespace blender::nodes {
static void fn_node_float_compare_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_input<decl::Float>("A").min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>("B").min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>("Epsilon").default_value(0.001f).min(-10000.0f).max(10000.0f);
b.add_output<decl::Bool>("Result");
b.add_input<decl::Float>(N_("A")).min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>(N_("B")).min(-10000.0f).max(10000.0f);
b.add_input<decl::Float>(N_("Epsilon")).default_value(0.001f).min(-10000.0f).max(10000.0f);
b.add_output<decl::Bool>(N_("Result"));
};
static void geo_node_float_compare_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -30,8 +30,8 @@ namespace blender::nodes {
static void fn_node_float_to_int_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_input<decl::Float>("Float");
b.add_output<decl::Int>("Integer");
b.add_input<decl::Float>(N_("Float"));
b.add_output<decl::Int>(N_("Integer"));
};
static void fn_node_float_to_int_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -25,7 +25,7 @@ namespace blender::nodes {
static void fn_node_input_bool_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Bool>("Boolean");
b.add_output<decl::Bool>(N_("Boolean"));
};
static void fn_node_input_bool_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -23,7 +23,7 @@ namespace blender::nodes {
static void fn_node_input_color_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Color>("Color");
b.add_output<decl::Color>(N_("Color"));
};
static void fn_node_input_color_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -25,7 +25,7 @@ namespace blender::nodes {
static void fn_node_input_int_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Int>("Integer");
b.add_output<decl::Int>(N_("Integer"));
};
static void fn_node_input_int_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -20,8 +20,8 @@ namespace blender::nodes {
static void fn_node_input_special_characters_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::String>("Line Break");
b.add_output<decl::String>("Tab");
b.add_output<decl::String>(N_("Line Break"));
b.add_output<decl::String>(N_("Tab"));
};
class MF_SpecialCharacters : public fn::MultiFunction {

View File

@ -24,7 +24,7 @@ namespace blender::nodes {
static void fn_node_input_string_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_output<decl::String>("String");
b.add_output<decl::String>(N_("String"));
};
static void fn_node_input_string_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -25,7 +25,7 @@ namespace blender::nodes {
static void fn_node_input_vector_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Vector>("Vector");
b.add_output<decl::Vector>(N_("Vector"));
};
static void fn_node_input_vector_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -26,29 +26,29 @@ namespace blender::nodes {
static void fn_node_random_value_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Vector>("Min").supports_field();
b.add_input<decl::Vector>("Max").default_value({1.0f, 1.0f, 1.0f}).supports_field();
b.add_input<decl::Float>("Min", "Min_001").supports_field();
b.add_input<decl::Float>("Max", "Max_001").default_value(1.0f).supports_field();
b.add_input<decl::Int>("Min", "Min_002").min(-100000).max(100000).supports_field();
b.add_input<decl::Int>("Max", "Max_002")
b.add_input<decl::Vector>(N_("Min")).supports_field();
b.add_input<decl::Vector>(N_("Max")).default_value({1.0f, 1.0f, 1.0f}).supports_field();
b.add_input<decl::Float>(N_("Min"), "Min_001").supports_field();
b.add_input<decl::Float>(N_("Max"), "Max_001").default_value(1.0f).supports_field();
b.add_input<decl::Int>(N_("Min"), "Min_002").min(-100000).max(100000).supports_field();
b.add_input<decl::Int>(N_("Max"), "Max_002")
.default_value(100)
.min(-100000)
.max(100000)
.supports_field();
b.add_input<decl::Float>("Probability")
b.add_input<decl::Float>(N_("Probability"))
.min(0.0f)
.max(1.0f)
.default_value(0.5f)
.subtype(PROP_FACTOR)
.supports_field();
b.add_input<decl::Int>("ID").implicit_field();
b.add_input<decl::Int>("Seed").default_value(0).min(-10000).max(10000).supports_field();
b.add_input<decl::Int>(N_("ID")).implicit_field();
b.add_input<decl::Int>(N_("Seed")).default_value(0).min(-10000).max(10000).supports_field();
b.add_output<decl::Vector>("Value").dependent_field();
b.add_output<decl::Float>("Value", "Value_001").dependent_field();
b.add_output<decl::Int>("Value", "Value_002").dependent_field();
b.add_output<decl::Bool>("Value", "Value_003").dependent_field();
b.add_output<decl::Vector>(N_("Value")).dependent_field();
b.add_output<decl::Float>(N_("Value"), "Value_001").dependent_field();
b.add_output<decl::Int>(N_("Value"), "Value_002").dependent_field();
b.add_output<decl::Bool>(N_("Value"), "Value_003").dependent_field();
}
static void fn_node_random_value_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -22,10 +22,11 @@ namespace blender::nodes {
static void fn_node_replace_string_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::String>("String");
b.add_input<decl::String>("Find").description("The string to find in the input string");
b.add_input<decl::String>("Replace").description("The string to replace each match with");
b.add_output<decl::String>("String");
b.add_input<decl::String>(N_("String"));
b.add_input<decl::String>(N_("Find")).description(N_("The string to find in the input string"));
b.add_input<decl::String>(N_("Replace"))
.description(N_("The string to replace each match with"));
b.add_output<decl::String>(N_("String"));
};
static std::string replace_all(std::string str, const std::string &from, const std::string &to)

View File

@ -29,11 +29,11 @@ namespace blender::nodes {
static void fn_node_rotate_euler_declare(NodeDeclarationBuilder &b)
{
b.is_function_node();
b.add_input<decl::Vector>("Rotation").subtype(PROP_EULER).hide_value();
b.add_input<decl::Vector>("Rotate By").subtype(PROP_EULER);
b.add_input<decl::Vector>("Axis").default_value({0.0, 0.0, 1.0}).subtype(PROP_XYZ);
b.add_input<decl::Float>("Angle").subtype(PROP_ANGLE);
b.add_output<decl::Vector>("Rotation");
b.add_input<decl::Vector>(N_("Rotation")).subtype(PROP_EULER).hide_value();
b.add_input<decl::Vector>(N_("Rotate By")).subtype(PROP_EULER);
b.add_input<decl::Vector>(N_("Axis")).default_value({0.0, 0.0, 1.0}).subtype(PROP_XYZ);
b.add_input<decl::Float>(N_("Angle")).subtype(PROP_ANGLE);
b.add_output<decl::Vector>(N_("Rotation"));
};
static void fn_node_rotate_euler_update(bNodeTree *UNUSED(ntree), bNode *node)

View File

@ -22,10 +22,10 @@ namespace blender::nodes {
static void fn_node_slice_string_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::String>("String");
b.add_input<decl::Int>("Position");
b.add_input<decl::Int>("Length").min(0).default_value(10);
b.add_output<decl::String>("String");
b.add_input<decl::String>(N_("String"));
b.add_input<decl::Int>(N_("Position"));
b.add_input<decl::Int>(N_("Length")).min(0).default_value(10);
b.add_output<decl::String>(N_("String"));
};
static void fn_node_slice_string_build_multi_function(NodeMultiFunctionBuilder &builder)

View File

@ -24,8 +24,8 @@ namespace blender::nodes {
static void fn_node_string_length_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::String>("String");
b.add_output<decl::Int>("Length");
b.add_input<decl::String>(N_("String"));
b.add_output<decl::Int>(N_("Length"));
};
static void fn_node_string_length_build_multi_function(NodeMultiFunctionBuilder &builder)

View File

@ -21,9 +21,9 @@ namespace blender::nodes {
static void fn_node_value_to_string_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Float>("Value");
b.add_input<decl::Int>("Decimals").min(0);
b.add_output<decl::String>("String");
b.add_input<decl::Float>(N_("Value"));
b.add_input<decl::Int>(N_("Decimals")).min(0);
b.add_output<decl::String>(N_("String"));
};
static void fn_node_value_to_string_build_multi_function(NodeMultiFunctionBuilder &builder)

View File

@ -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,

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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)

View File

@ -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_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>("Geometry");
b.add_output<decl::Geometry>(N_("Geometry"));
}
static void geo_node_attribute_vector_rotate_layout(uiLayout *layout,

View File

@ -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"));
}
/**

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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,

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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>

View File

@ -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)

View File

@ -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,

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -39,13 +39,13 @@ namespace blender::nodes {
static void geo_node_volume_to_mesh_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
b.add_input<decl::String>("Density");
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::Float>("Threshold").default_value(0.1f).min(0.0f);
b.add_input<decl::Float>("Adaptivity").min(0.0f).max(1.0f).subtype(PROP_FACTOR);
b.add_output<decl::Geometry>("Geometry");
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)

View File

@ -25,19 +25,19 @@ namespace blender::nodes {
static void geo_node_attribute_capture_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
b.add_input<decl::Vector>("Value").supports_field();
b.add_input<decl::Float>("Value", "Value_001").supports_field();
b.add_input<decl::Color>("Value", "Value_002").supports_field();
b.add_input<decl::Bool>("Value", "Value_003").supports_field();
b.add_input<decl::Int>("Value", "Value_004").supports_field();
b.add_input<decl::Geometry>(N_("Geometry"));
b.add_input<decl::Vector>(N_("Value")).supports_field();
b.add_input<decl::Float>(N_("Value"), "Value_001").supports_field();
b.add_input<decl::Color>(N_("Value"), "Value_002").supports_field();
b.add_input<decl::Bool>(N_("Value"), "Value_003").supports_field();
b.add_input<decl::Int>(N_("Value"), "Value_004").supports_field();
b.add_output<decl::Geometry>("Geometry");
b.add_output<decl::Vector>("Attribute").field_source();
b.add_output<decl::Float>("Attribute", "Attribute_001").field_source();
b.add_output<decl::Color>("Attribute", "Attribute_002").field_source();
b.add_output<decl::Bool>("Attribute", "Attribute_003").field_source();
b.add_output<decl::Int>("Attribute", "Attribute_004").field_source();
b.add_output<decl::Geometry>(N_("Geometry"));
b.add_output<decl::Vector>(N_("Attribute")).field_source();
b.add_output<decl::Float>(N_("Attribute"), "Attribute_001").field_source();
b.add_output<decl::Color>(N_("Attribute"), "Attribute_002").field_source();
b.add_output<decl::Bool>(N_("Attribute"), "Attribute_003").field_source();
b.add_output<decl::Int>(N_("Attribute"), "Attribute_004").field_source();
}
static void geo_node_attribute_capture_layout(uiLayout *layout,

View File

@ -20,9 +20,9 @@ namespace blender::nodes {
static void geo_node_attribute_remove_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
b.add_input<decl::String>("Attribute").multi_input();
b.add_output<decl::Geometry>("Geometry");
b.add_input<decl::Geometry>(N_("Geometry"));
b.add_input<decl::String>(N_("Attribute")).multi_input();
b.add_output<decl::Geometry>(N_("Geometry"));
}
static void remove_attribute(GeometryComponent &component,

View File

@ -28,27 +28,27 @@ namespace blender::nodes {
static void geo_node_attribute_statistic_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
b.add_input<decl::Float>("Attribute").hide_value().supports_field();
b.add_input<decl::Vector>("Attribute", "Attribute_001").hide_value().supports_field();
b.add_input<decl::Geometry>(N_("Geometry"));
b.add_input<decl::Float>(N_("Attribute")).hide_value().supports_field();
b.add_input<decl::Vector>(N_("Attribute"), "Attribute_001").hide_value().supports_field();
b.add_output<decl::Float>("Mean");
b.add_output<decl::Float>("Median");
b.add_output<decl::Float>("Sum");
b.add_output<decl::Float>("Min");
b.add_output<decl::Float>("Max");
b.add_output<decl::Float>("Range");
b.add_output<decl::Float>("Standard Deviation");
b.add_output<decl::Float>("Variance");
b.add_output<decl::Float>(N_("Mean"));
b.add_output<decl::Float>(N_("Median"));
b.add_output<decl::Float>(N_("Sum"));
b.add_output<decl::Float>(N_("Min"));
b.add_output<decl::Float>(N_("Max"));
b.add_output<decl::Float>(N_("Range"));
b.add_output<decl::Float>(N_("Standard Deviation"));
b.add_output<decl::Float>(N_("Variance"));
b.add_output<decl::Vector>("Mean", "Mean_001");
b.add_output<decl::Vector>("Median", "Median_001");
b.add_output<decl::Vector>("Sum", "Sum_001");
b.add_output<decl::Vector>("Min", "Min_001");
b.add_output<decl::Vector>("Max", "Max_001");
b.add_output<decl::Vector>("Range", "Range_001");
b.add_output<decl::Vector>("Standard Deviation", "Standard Deviation_001");
b.add_output<decl::Vector>("Variance", "Variance_001");
b.add_output<decl::Vector>(N_("Mean"), "Mean_001");
b.add_output<decl::Vector>(N_("Median"), "Median_001");
b.add_output<decl::Vector>(N_("Sum"), "Sum_001");
b.add_output<decl::Vector>(N_("Min"), "Min_001");
b.add_output<decl::Vector>(N_("Max"), "Max_001");
b.add_output<decl::Vector>(N_("Range"), "Range_001");
b.add_output<decl::Vector>(N_("Standard Deviation"), "Standard Deviation_001");
b.add_output<decl::Vector>(N_("Variance"), "Variance_001");
}
static void geo_node_attribute_statistic_layout(uiLayout *layout,

View File

@ -27,13 +27,13 @@ namespace blender::nodes {
static void geo_node_boolean_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Mesh 1")
b.add_input<decl::Geometry>(N_("Mesh 1"))
.only_realized_data()
.supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Geometry>("Mesh 2").multi_input().supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Bool>("Self Intersection");
b.add_input<decl::Bool>("Hole Tolerant");
b.add_output<decl::Geometry>("Mesh");
b.add_input<decl::Geometry>(N_("Mesh 2")).multi_input().supported_type(GEO_COMPONENT_TYPE_MESH);
b.add_input<decl::Bool>(N_("Self Intersection"));
b.add_input<decl::Bool>(N_("Hole Tolerant"));
b.add_output<decl::Geometry>(N_("Mesh"));
}
static void geo_node_boolean_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -20,10 +20,10 @@ namespace blender::nodes {
static void geo_node_bounding_box_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Bounding Box");
b.add_output<decl::Vector>("Min");
b.add_output<decl::Vector>("Max");
b.add_input<decl::Geometry>(N_("Geometry"));
b.add_output<decl::Geometry>(N_("Bounding Box"));
b.add_output<decl::Vector>(N_("Min"));
b.add_output<decl::Vector>(N_("Max"));
}
static void geo_node_bounding_box_exec(GeoNodeExecParams params)

View File

@ -31,15 +31,15 @@ namespace blender::nodes {
static void geo_node_collection_info_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Collection>("Collection").hide_label();
b.add_input<decl::Bool>("Separate Children")
b.add_input<decl::Collection>(N_("Collection")).hide_label();
b.add_input<decl::Bool>(N_("Separate Children"))
.description(
"Output each child of the collection as a separate instance, sorted alphabetically");
b.add_input<decl::Bool>("Reset Children")
N_("Output each child of the collection as a separate instance, sorted alphabetically"));
b.add_input<decl::Bool>(N_("Reset Children"))
.description(
"Reset the transforms of every child instance in the output. Only used when Separate "
"Children is enabled");
b.add_output<decl::Geometry>("Geometry");
N_("Reset the transforms of every child instance in the output. Only used when Separate "
"Children is enabled"));
b.add_output<decl::Geometry>(N_("Geometry"));
}
static void geo_node_collection_info_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -32,8 +32,8 @@ namespace blender::nodes {
static void geo_node_convex_hull_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Geometry");
b.add_output<decl::Geometry>("Convex Hull");
b.add_input<decl::Geometry>(N_("Geometry"));
b.add_output<decl::Geometry>(N_("Convex Hull"));
}
using bke::GeometryInstanceGroup;

View File

@ -25,19 +25,20 @@ namespace blender::nodes {
static void geo_node_curve_endpoint_selection_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Int>("Start Size")
b.add_input<decl::Int>(N_("Start Size"))
.min(0)
.default_value(1)
.supports_field()
.description("The amount of points to select from the start of each spline");
b.add_input<decl::Int>("End Size")
.description(N_("The amount of points to select from the start of each spline"));
b.add_input<decl::Int>(N_("End Size"))
.min(0)
.default_value(1)
.supports_field()
.description("The amount of points to select from the end of each spline");
b.add_output<decl::Bool>("Selection")
.description(N_("The amount of points to select from the end of each spline"));
b.add_output<decl::Bool>(N_("Selection"))
.field_source()
.description("The selection from the start and end of the splines based on the input sizes");
.description(
N_("The selection from the start and end of the splines based on the input sizes"));
}
static void select_by_spline(const int start, const int end, MutableSpan<bool> r_selection)

View File

@ -35,8 +35,8 @@ namespace blender::nodes {
static void geo_node_curve_fill_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_output<decl::Geometry>("Mesh");
b.add_input<decl::Geometry>(N_("Curve")).supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_output<decl::Geometry>(N_("Mesh"));
}
static void geo_node_curve_fill_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -29,16 +29,16 @@ namespace blender::nodes {
static void geo_node_curve_fillet_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Int>("Count").default_value(1).min(1).max(1000).supports_field();
b.add_input<decl::Float>("Radius")
b.add_input<decl::Geometry>(N_("Curve")).supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_input<decl::Int>(N_("Count")).default_value(1).min(1).max(1000).supports_field();
b.add_input<decl::Float>(N_("Radius"))
.min(0.0f)
.max(FLT_MAX)
.subtype(PropertySubType::PROP_DISTANCE)
.default_value(0.25f)
.supports_field();
b.add_input<decl::Bool>("Limit Radius");
b.add_output<decl::Geometry>("Curve");
b.add_input<decl::Bool>(N_("Limit Radius"));
b.add_output<decl::Geometry>(N_("Curve"));
}
static void geo_node_curve_fillet_layout(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)

View File

@ -25,7 +25,7 @@ namespace blender::nodes {
static void geo_node_curve_handle_type_selection_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Bool>("Selection").field_source();
b.add_output<decl::Bool>(N_("Selection")).field_source();
}
static void geo_node_curve_handle_type_selection_layout(uiLayout *layout,

View File

@ -21,8 +21,8 @@ namespace blender::nodes {
static void geo_node_curve_length_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Geometry>("Curve").supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_output<decl::Float>("Length");
b.add_input<decl::Geometry>(N_("Curve")).supported_type(GEO_COMPONENT_TYPE_CURVE);
b.add_output<decl::Float>(N_("Length"));
}
static void geo_node_curve_length_exec(GeoNodeExecParams params)

View File

@ -24,7 +24,7 @@ namespace blender::nodes {
static void geo_node_curve_parameter_declare(NodeDeclarationBuilder &b)
{
b.add_output<decl::Float>("Factor").field_source();
b.add_output<decl::Float>(N_("Factor")).field_source();
}
/**

View File

@ -25,14 +25,20 @@ namespace blender::nodes {
static void geo_node_curve_primitive_bezier_segment_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Int>("Resolution").default_value(16).min(1).max(256).subtype(PROP_UNSIGNED);
b.add_input<decl::Vector>("Start").default_value({-1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("Start Handle")
b.add_input<decl::Int>(N_("Resolution"))
.default_value(16)
.min(1)
.max(256)
.subtype(PROP_UNSIGNED);
b.add_input<decl::Vector>(N_("Start"))
.default_value({-1.0f, 0.0f, 0.0f})
.subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>(N_("Start Handle"))
.default_value({-0.5f, 0.5f, 0.0f})
.subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("End Handle").subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("End").default_value({1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION);
b.add_output<decl::Geometry>("Curve");
b.add_input<decl::Vector>(N_("End Handle")).subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>(N_("End")).default_value({1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION);
b.add_output<decl::Geometry>(N_("Curve"));
}
static void geo_node_curve_primitive_bezier_segment_layout(uiLayout *layout,

View File

@ -25,15 +25,19 @@ namespace blender::nodes {
static void geo_node_curve_primitive_circle_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Int>("Resolution").default_value(32).min(3).max(512);
b.add_input<decl::Vector>("Point 1")
b.add_input<decl::Int>(N_("Resolution")).default_value(32).min(3).max(512);
b.add_input<decl::Vector>(N_("Point 1"))
.default_value({-1.0f, 0.0f, 0.0f})
.subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("Point 2").default_value({0.0f, 1.0f, 0.0f}).subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>("Point 3").default_value({1.0f, 0.0f, 0.0f}).subtype(PROP_TRANSLATION);
b.add_input<decl::Float>("Radius").default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_output<decl::Geometry>("Curve");
b.add_output<decl::Vector>("Center");
b.add_input<decl::Vector>(N_("Point 2"))
.default_value({0.0f, 1.0f, 0.0f})
.subtype(PROP_TRANSLATION);
b.add_input<decl::Vector>(N_("Point 3"))
.default_value({1.0f, 0.0f, 0.0f})
.subtype(PROP_TRANSLATION);
b.add_input<decl::Float>(N_("Radius")).default_value(1.0f).min(0.0f).subtype(PROP_DISTANCE);
b.add_output<decl::Geometry>(N_("Curve"));
b.add_output<decl::Vector>(N_("Center"));
}
static void geo_node_curve_primitive_circle_layout(uiLayout *layout,

Some files were not shown because too many files have changed in this diff Show More