mirror of
https://github.com/blender/blender
synced 2026-09-28 04:04:20 +03:00
Merge branch 'blender-v4.1-release'
This commit is contained in:
commit
b4e3a00cd3
16 changed files with 72 additions and 18 deletions
|
|
@ -104,6 +104,14 @@ bool BKE_volume_grid_dense_floats(const Volume *volume,
|
||||||
if (bbox.empty()) {
|
if (bbox.empty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
const std::array<int64_t, 6> bbox_indices = {UNPACK3(openvdb::math::Abs(bbox.min())),
|
||||||
|
UNPACK3(openvdb::math::Abs(bbox.max()))};
|
||||||
|
const int64_t max_bbox_index = *std::max_element(bbox_indices.begin(), bbox_indices.end());
|
||||||
|
if (max_bbox_index > (1 << 30)) {
|
||||||
|
/* There is an integer overflow when trying to extract dense voxels when the indices are very
|
||||||
|
* large. */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const openvdb::Vec3i resolution = bbox.dim().asVec3i();
|
const openvdb::Vec3i resolution = bbox.dim().asVec3i();
|
||||||
const int64_t num_voxels = int64_t(resolution[0]) * int64_t(resolution[1]) *
|
const int64_t num_voxels = int64_t(resolution[0]) * int64_t(resolution[1]) *
|
||||||
|
|
|
||||||
|
|
@ -8886,6 +8886,7 @@ static void def_geo_curve_sample(StructRNA *srna)
|
||||||
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
||||||
RNA_def_property_enum_items(prop, mode_items);
|
RNA_def_property_enum_items(prop, mode_items);
|
||||||
RNA_def_property_ui_text(prop, "Mode", "Method for sampling input");
|
RNA_def_property_ui_text(prop, "Mode", "Method for sampling input");
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "use_all_curves", PROP_BOOLEAN, PROP_NONE);
|
prop = RNA_def_property(srna, "use_all_curves", PROP_BOOLEAN, PROP_NONE);
|
||||||
|
|
@ -8893,6 +8894,7 @@ static void def_geo_curve_sample(StructRNA *srna)
|
||||||
"All Curves",
|
"All Curves",
|
||||||
"Sample lengths based on the total length of all curves, rather than "
|
"Sample lengths based on the total length of all curves, rather than "
|
||||||
"using a length inside each selected curve");
|
"using a length inside each selected curve");
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "data_type", PROP_ENUM, PROP_NONE);
|
prop = RNA_def_property(srna, "data_type", PROP_ENUM, PROP_NONE);
|
||||||
|
|
@ -8901,6 +8903,7 @@ static void def_geo_curve_sample(StructRNA *srna)
|
||||||
prop, nullptr, nullptr, "rna_GeometryNodeAttributeType_type_with_socket_itemf");
|
prop, nullptr, nullptr, "rna_GeometryNodeAttributeType_type_with_socket_itemf");
|
||||||
RNA_def_property_enum_default(prop, CD_PROP_FLOAT);
|
RNA_def_property_enum_default(prop, CD_PROP_FLOAT);
|
||||||
RNA_def_property_ui_text(prop, "Data Type", "");
|
RNA_def_property_ui_text(prop, "Data Type", "");
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -8943,6 +8946,7 @@ static void def_geo_distribute_points_on_faces(StructRNA *srna)
|
||||||
RNA_def_property_enum_items(prop, rna_node_geometry_distribute_points_on_faces_mode_items);
|
RNA_def_property_enum_items(prop, rna_node_geometry_distribute_points_on_faces_mode_items);
|
||||||
RNA_def_property_enum_default(prop, GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM);
|
RNA_def_property_enum_default(prop, GEO_NODE_POINT_DISTRIBUTE_POINTS_ON_FACES_RANDOM);
|
||||||
RNA_def_property_ui_text(prop, "Distribution Method", "Method to use for scattering points");
|
RNA_def_property_ui_text(prop, "Distribution Method", "Method to use for scattering points");
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "use_legacy_normal", PROP_BOOLEAN, PROP_NONE);
|
prop = RNA_def_property(srna, "use_legacy_normal", PROP_BOOLEAN, PROP_NONE);
|
||||||
|
|
@ -8951,6 +8955,7 @@ static void def_geo_distribute_points_on_faces(StructRNA *srna)
|
||||||
"Legacy Normal",
|
"Legacy Normal",
|
||||||
"Output the normal and rotation values that have been output "
|
"Output the normal and rotation values that have been output "
|
||||||
"before the node started taking smooth normals into account");
|
"before the node started taking smooth normals into account");
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -8964,12 +8969,14 @@ static void def_geo_curve_set_handle_type(StructRNA *srna)
|
||||||
RNA_def_property_enum_sdna(prop, nullptr, "handle_type");
|
RNA_def_property_enum_sdna(prop, nullptr, "handle_type");
|
||||||
RNA_def_property_ui_text(prop, "Handle Type", "");
|
RNA_def_property_ui_text(prop, "Handle Type", "");
|
||||||
RNA_def_property_enum_items(prop, rna_node_geometry_curve_handle_type_items);
|
RNA_def_property_enum_items(prop, rna_node_geometry_curve_handle_type_items);
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
|
||||||
RNA_def_property_enum_items(prop, rna_enum_node_geometry_curve_handle_side_items);
|
RNA_def_property_enum_items(prop, rna_enum_node_geometry_curve_handle_side_items);
|
||||||
RNA_def_property_ui_text(prop, "Mode", "Whether to update left and right handles");
|
RNA_def_property_ui_text(prop, "Mode", "Whether to update left and right handles");
|
||||||
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
|
RNA_def_property_flag(prop, PROP_ENUM_FLAG);
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -9312,6 +9319,7 @@ static void rna_def_geo_bake(StructRNA *srna)
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr);
|
nullptr);
|
||||||
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NO_DEG_UPDATE);
|
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NO_DEG_UPDATE);
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_ui_text(prop, "Active Item Index", "Index of the active item");
|
RNA_def_property_ui_text(prop, "Active Item Index", "Index of the active item");
|
||||||
RNA_def_property_update(prop, NC_NODE, nullptr);
|
RNA_def_property_update(prop, NC_NODE, nullptr);
|
||||||
}
|
}
|
||||||
|
|
@ -9441,6 +9449,7 @@ static void def_geo_sample_index(StructRNA *srna)
|
||||||
prop, nullptr, nullptr, "rna_GeometryNodeAttributeType_type_with_socket_itemf");
|
prop, nullptr, nullptr, "rna_GeometryNodeAttributeType_type_with_socket_itemf");
|
||||||
RNA_def_property_enum_default(prop, CD_PROP_FLOAT);
|
RNA_def_property_enum_default(prop, CD_PROP_FLOAT);
|
||||||
RNA_def_property_ui_text(prop, "Data Type", "");
|
RNA_def_property_ui_text(prop, "Data Type", "");
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_socket_update");
|
||||||
|
|
||||||
prop = RNA_def_property(srna, "domain", PROP_ENUM, PROP_NONE);
|
prop = RNA_def_property(srna, "domain", PROP_ENUM, PROP_NONE);
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ PropertyRNA *RNA_def_node_enum(StructRNA *srna,
|
||||||
const EnumPropertyItem *static_items,
|
const EnumPropertyItem *static_items,
|
||||||
const EnumRNAAccessors accessors,
|
const EnumRNAAccessors accessors,
|
||||||
std::optional<int> default_value = std::nullopt,
|
std::optional<int> default_value = std::nullopt,
|
||||||
const EnumPropertyItemFunc item_func = nullptr);
|
const EnumPropertyItemFunc item_func = nullptr,
|
||||||
|
bool allow_animation = false);
|
||||||
|
|
||||||
} // namespace blender::nodes
|
} // namespace blender::nodes
|
||||||
|
|
|
||||||
|
|
@ -239,14 +239,20 @@ static void node_rna(StructRNA *srna)
|
||||||
"Axis",
|
"Axis",
|
||||||
"Axis to align to the vector",
|
"Axis to align to the vector",
|
||||||
axis_items,
|
axis_items,
|
||||||
NOD_inline_enum_accessors(custom1));
|
NOD_inline_enum_accessors(custom1),
|
||||||
|
std::nullopt,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
|
|
||||||
RNA_def_node_enum(srna,
|
RNA_def_node_enum(srna,
|
||||||
"pivot_axis",
|
"pivot_axis",
|
||||||
"Pivot Axis",
|
"Pivot Axis",
|
||||||
"Axis to rotate around",
|
"Axis to rotate around",
|
||||||
pivot_axis_items,
|
pivot_axis_items,
|
||||||
NOD_inline_enum_accessors(custom2));
|
NOD_inline_enum_accessors(custom2),
|
||||||
|
std::nullopt,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -389,7 +389,8 @@ static void node_rna(StructRNA *srna)
|
||||||
rna_enum_attribute_domain_items,
|
rna_enum_attribute_domain_items,
|
||||||
NOD_storage_enum_accessors(domain),
|
NOD_storage_enum_accessors(domain),
|
||||||
int(AttrDomain::Point),
|
int(AttrDomain::Point),
|
||||||
enums::domain_experimental_grease_pencil_version3_fn);
|
enums::domain_experimental_grease_pencil_version3_fn,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,8 @@ static void node_rna(StructRNA *srna)
|
||||||
rna_enum_attribute_domain_items,
|
rna_enum_attribute_domain_items,
|
||||||
NOD_storage_enum_accessors(domain),
|
NOD_storage_enum_accessors(domain),
|
||||||
int8_t(AttrDomain::Point),
|
int8_t(AttrDomain::Point),
|
||||||
enums::domain_experimental_grease_pencil_version3_fn);
|
enums::domain_experimental_grease_pencil_version3_fn,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -355,7 +355,8 @@ static void node_rna(StructRNA *srna)
|
||||||
rna_enum_attribute_domain_items,
|
rna_enum_attribute_domain_items,
|
||||||
NOD_inline_enum_accessors(custom2),
|
NOD_inline_enum_accessors(custom2),
|
||||||
int(AttrDomain::Point),
|
int(AttrDomain::Point),
|
||||||
enums::domain_experimental_grease_pencil_version3_fn);
|
enums::domain_experimental_grease_pencil_version3_fn,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"The curve type to change the selected curves to",
|
"The curve type to change the selected curves to",
|
||||||
rna_enum_curves_type_items,
|
rna_enum_curves_type_items,
|
||||||
NOD_storage_enum_accessors(spline_type),
|
NOD_storage_enum_accessors(spline_type),
|
||||||
CURVE_TYPE_POLY);
|
CURVE_TYPE_POLY,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -1061,7 +1061,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"Which domain to duplicate",
|
"Which domain to duplicate",
|
||||||
domain_items,
|
domain_items,
|
||||||
NOD_storage_enum_accessors(domain),
|
NOD_storage_enum_accessors(domain),
|
||||||
int(AttrDomain::Point));
|
int(AttrDomain::Point),
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -212,7 +212,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"",
|
"",
|
||||||
rna_enum_node_geometry_mesh_circle_fill_type_items,
|
rna_enum_node_geometry_mesh_circle_fill_type_items,
|
||||||
NOD_storage_enum_accessors(fill_type),
|
NOD_storage_enum_accessors(fill_type),
|
||||||
GEO_NODE_MESH_CIRCLE_FILL_NONE);
|
GEO_NODE_MESH_CIRCLE_FILL_NONE,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -148,7 +148,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"",
|
"",
|
||||||
rna_enum_node_geometry_mesh_circle_fill_type_items,
|
rna_enum_node_geometry_mesh_circle_fill_type_items,
|
||||||
NOD_storage_enum_accessors(fill_type),
|
NOD_storage_enum_accessors(fill_type),
|
||||||
GEO_NODE_MESH_CIRCLE_FILL_NGON);
|
GEO_NODE_MESH_CIRCLE_FILL_NGON,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"",
|
"",
|
||||||
rna_enum_node_geometry_mesh_circle_fill_type_items,
|
rna_enum_node_geometry_mesh_circle_fill_type_items,
|
||||||
NOD_storage_enum_accessors(fill_type),
|
NOD_storage_enum_accessors(fill_type),
|
||||||
GEO_NODE_MESH_CIRCLE_FILL_NGON);
|
GEO_NODE_MESH_CIRCLE_FILL_NGON,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"",
|
"",
|
||||||
mode_items,
|
mode_items,
|
||||||
NOD_storage_enum_accessors(mode),
|
NOD_storage_enum_accessors(mode),
|
||||||
GEO_NODE_MESH_TO_POINTS_VERTICES);
|
GEO_NODE_MESH_TO_POINTS_VERTICES,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"Controls how smoothing is applied to UVs",
|
"Controls how smoothing is applied to UVs",
|
||||||
rna_enum_subdivision_uv_smooth_items,
|
rna_enum_subdivision_uv_smooth_items,
|
||||||
NOD_storage_enum_accessors(uv_smooth),
|
NOD_storage_enum_accessors(uv_smooth),
|
||||||
SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES);
|
SUBSURF_UV_SMOOTH_PRESERVE_BOUNDARIES,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
|
|
||||||
RNA_def_node_enum(srna,
|
RNA_def_node_enum(srna,
|
||||||
"boundary_smooth",
|
"boundary_smooth",
|
||||||
|
|
@ -213,7 +215,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"Controls how open boundaries are smoothed",
|
"Controls how open boundaries are smoothed",
|
||||||
rna_enum_subdivision_boundary_smooth_items,
|
rna_enum_subdivision_boundary_smooth_items,
|
||||||
NOD_storage_enum_accessors(boundary_smooth),
|
NOD_storage_enum_accessors(boundary_smooth),
|
||||||
SUBSURF_BOUNDARY_SMOOTH_ALL);
|
SUBSURF_BOUNDARY_SMOOTH_ALL,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"Method for splitting the quads into triangles",
|
"Method for splitting the quads into triangles",
|
||||||
rna_node_geometry_triangulate_quad_method_items,
|
rna_node_geometry_triangulate_quad_method_items,
|
||||||
NOD_inline_enum_accessors(custom1),
|
NOD_inline_enum_accessors(custom1),
|
||||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT);
|
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
|
|
||||||
RNA_def_node_enum(srna,
|
RNA_def_node_enum(srna,
|
||||||
"ngon_method",
|
"ngon_method",
|
||||||
|
|
@ -164,7 +166,9 @@ static void node_rna(StructRNA *srna)
|
||||||
"Method for splitting the n-gons into triangles",
|
"Method for splitting the n-gons into triangles",
|
||||||
rna_node_geometry_triangulate_ngon_method_items,
|
rna_node_geometry_triangulate_ngon_method_items,
|
||||||
NOD_inline_enum_accessors(custom2),
|
NOD_inline_enum_accessors(custom2),
|
||||||
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT);
|
GEO_NODE_POINTS_TO_VOLUME_RESOLUTION_MODE_AMOUNT,
|
||||||
|
nullptr,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_register()
|
static void node_register()
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,8 @@ PropertyRNA *RNA_def_node_enum(StructRNA *srna,
|
||||||
const EnumPropertyItem *static_items,
|
const EnumPropertyItem *static_items,
|
||||||
const EnumRNAAccessors accessors,
|
const EnumRNAAccessors accessors,
|
||||||
std::optional<int> default_value,
|
std::optional<int> default_value,
|
||||||
const EnumPropertyItemFunc item_func)
|
const EnumPropertyItemFunc item_func,
|
||||||
|
const bool allow_animation)
|
||||||
{
|
{
|
||||||
PropertyRNA *prop = RNA_def_property(srna, identifier, PROP_ENUM, PROP_NONE);
|
PropertyRNA *prop = RNA_def_property(srna, identifier, PROP_ENUM, PROP_NONE);
|
||||||
RNA_def_property_enum_funcs_runtime(prop, accessors.getter, accessors.setter, item_func);
|
RNA_def_property_enum_funcs_runtime(prop, accessors.getter, accessors.setter, item_func);
|
||||||
|
|
@ -38,7 +39,13 @@ PropertyRNA *RNA_def_node_enum(StructRNA *srna,
|
||||||
RNA_def_property_enum_default(prop, *default_value);
|
RNA_def_property_enum_default(prop, *default_value);
|
||||||
}
|
}
|
||||||
RNA_def_property_ui_text(prop, ui_name, ui_description);
|
RNA_def_property_ui_text(prop, ui_name, ui_description);
|
||||||
RNA_def_property_update_runtime(prop, rna_Node_socket_update);
|
if (allow_animation) {
|
||||||
|
RNA_def_property_update_runtime(prop, rna_Node_update);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||||
|
RNA_def_property_update_runtime(prop, rna_Node_socket_update);
|
||||||
|
}
|
||||||
RNA_def_property_update_notifier(prop, NC_NODE | NA_EDITED);
|
RNA_def_property_update_notifier(prop, NC_NODE | NA_EDITED);
|
||||||
return prop;
|
return prop;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue