[Bf-blender-cvs] [79f3678a646] temp-gpencil-bezier-stroke-type: Fix T87615: No snapping to objects instanced by Geometry nodes

Germano Cavalcante noreply at git.blender.org
Thu Apr 22 17:35:38 CEST 2021


Commit: 79f3678a646fa5e7070b5e61ab2eeaf01a203a1f
Author: Germano Cavalcante
Date:   Thu Apr 22 09:57:45 2021 -0300
Branches: temp-gpencil-bezier-stroke-type
https://developer.blender.org/rB79f3678a646fa5e7070b5e61ab2eeaf01a203a1f

Fix T87615: No snapping to objects instanced by Geometry nodes

The code of the snapping system to interact the objects in the scene only
considers instances what comes from "DUPLI" objects.

This commit adds instances coming from Geometry nodes.

Differential Revision: https://developer.blender.org/D11020

===================================================================

M	source/blender/editors/transform/transform_snap_object.c

===================================================================

diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 3277baeba5b..ce3f519271f 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -500,10 +500,12 @@ static void iter_snap_objects(SnapObjectContext *sctx,
     }
 
     Object *obj_eval = DEG_get_evaluated_object(depsgraph, base->object);
-    if (obj_eval->transflag & OB_DUPLI) {
-      DupliObject *dupli_ob;
+    if (obj_eval->transflag & OB_DUPLI ||
+        (obj_eval->runtime.geometry_set_eval != NULL &&
+         BKE_geometry_set_has_instances(obj_eval->runtime.geometry_set_eval))) {
       ListBase *lb = object_duplilist(depsgraph, sctx->scene, obj_eval);
-      for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) {
+      for (DupliObject *dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) {
+        BLI_assert(DEG_is_evaluated_object(dupli_ob->ob));
         sob_callback(sctx,
                      dupli_ob->ob,
                      dupli_ob->mat,



More information about the Bf-blender-cvs mailing list