diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc index 64261ae5b10..f5ede42b0ad 100644 --- a/source/blender/modifiers/intern/MOD_nodes.cc +++ b/source/blender/modifiers/intern/MOD_nodes.cc @@ -1309,6 +1309,19 @@ static void modifyGeometry(ModifierData *md, } } +static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh) +{ + GeometrySet geometry_set = GeometrySet::create_with_mesh(mesh, GeometryOwnershipType::Editable); + + modifyGeometry(md, ctx, geometry_set); + + Mesh *new_mesh = geometry_set.get_component_for_write().release(); + if (new_mesh == nullptr) { + return BKE_mesh_new_nomain(0, 0, 0, 0, 0); + } + return new_mesh; +} + static void modifyGeometrySet(ModifierData *md, const ModifierEvalContext *ctx, GeometrySet *geometry_set) @@ -1869,7 +1882,7 @@ ModifierTypeInfo modifierType_Nodes = { /* deformMatrices */ nullptr, /* deformVertsEM */ nullptr, /* deformMatricesEM */ nullptr, - /* modifyMesh */ nullptr, + /* modifyMesh */ modifyMesh, /* modifyGeometrySet */ modifyGeometrySet, /* initData */ initData,