[Bf-blender-cvs] [42aa1b49847] temp-modifiers-instancing: fix nodes
Jacques Lucke
noreply at git.blender.org
Wed Nov 11 16:09:22 CET 2020
Commit: 42aa1b498474abf536c0677617e742e4c1f9c238
Author: Jacques Lucke
Date: Wed Nov 11 14:10:20 2020 +0100
Branches: temp-modifiers-instancing
https://developer.blender.org/rB42aa1b498474abf536c0677617e742e4c1f9c238
fix nodes
===================================================================
M source/blender/nodes/geometry/nodes/node_geo_object_info.cc
M source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
===================================================================
diff --git a/source/blender/nodes/geometry/nodes/node_geo_object_info.cc b/source/blender/nodes/geometry/nodes/node_geo_object_info.cc
index 80825a66a07..3ee6ae2453a 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_object_info.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_object_info.cc
@@ -16,6 +16,7 @@
#include "node_geometry_util.hh"
+#include "BKE_mesh.h"
#include "BKE_mesh_wrapper.h"
#include "BKE_modifier.h"
@@ -53,7 +54,9 @@ static void geo_object_info_exec(bNode *UNUSED(node), GeoNodeInputs inputs, GeoN
Mesh *mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(object, false);
if (mesh != nullptr) {
BKE_mesh_wrapper_ensure_mdata(mesh);
- geometry_set = GeometrySet::create_with_mesh(mesh, GeometryOwnershipType::ReadOnly);
+ /* Make a copy because the life time of the other mesh might be shorter. */
+ Mesh *copied_mesh = BKE_mesh_copy_for_eval(mesh, false);
+ geometry_set = GeometrySet::create_with_mesh(copied_mesh);
}
}
}
diff --git a/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc b/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
index 08f1b97f968..b1821736464 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_point_distribute.cc
@@ -145,6 +145,10 @@ static void geo_point_distribute_exec(bNode *UNUSED(node),
PointCloud *pointcloud = BKE_pointcloud_new_nomain(points.size());
memcpy(pointcloud->co, points.data(), sizeof(float3) * points.size());
+ for (const int i : points.index_range()) {
+ *(float3 *)(pointcloud->co + i) = points[i];
+ pointcloud->radius[i] = 0.05f;
+ }
make_geometry_set_mutable(geometry_set);
geometry_set->replace_mesh(nullptr);
More information about the Bf-blender-cvs
mailing list