From 33edef15ed405281debe6bc81ae822daff25bbf4 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 24 Jan 2023 14:06:43 +0100 Subject: [PATCH] Fix T104095: missing crazy space data while sculpting curves `remember_deformed_curve_positions_if_necessary` has to be called before topology changing operations on curves. Otherwise the crazy-space data is invalid. --- source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc | 4 ++++ .../nodes/geometry/nodes/node_geo_realize_instances.cc | 1 + 2 files changed, 5 insertions(+) diff --git a/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc b/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc index d49f2583bde..18a662289aa 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_join_geometry.cc @@ -192,6 +192,10 @@ static void node_geo_exec(GeoNodeExecParams params) const AnonymousAttributePropagationInfo &propagation_info = params.get_output_propagation_info( "Geometry"); + for (GeometrySet &geometry : geometry_sets) { + GeometryComponentEditData::remember_deformed_curve_positions_if_necessary(geometry); + } + GeometrySet geometry_set_result; join_component_type(geometry_sets, geometry_set_result, propagation_info); join_component_type(geometry_sets, geometry_set_result, propagation_info); diff --git a/source/blender/nodes/geometry/nodes/node_geo_realize_instances.cc b/source/blender/nodes/geometry/nodes/node_geo_realize_instances.cc index 385b47a2f1e..18311e9ca58 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_realize_instances.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_realize_instances.cc @@ -34,6 +34,7 @@ static void node_geo_exec(GeoNodeExecParams params) } GeometrySet geometry_set = params.extract_input("Geometry"); + GeometryComponentEditData::remember_deformed_curve_positions_if_necessary(geometry_set); geometry::RealizeInstancesOptions options; options.keep_original_ids = legacy_behavior; options.realize_instance_attributes = !legacy_behavior;