[Bf-blender-cvs] [1fc446a9087] master: Fix recent snap refactor

Germano Cavalcante noreply at git.blender.org
Sat Apr 17 21:52:18 CEST 2021


Commit: 1fc446a9087b8c662f514884a37518078bad6161
Author: Germano Cavalcante
Date:   Sat Apr 17 16:34:54 2021 -0300
Branches: master
https://developer.blender.org/rB1fc446a9087b8c662f514884a37518078bad6161

Fix recent snap refactor

It is important to check if editmesh eval cage is also bmesh.

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

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 841c3e86008..fcb4d46358b 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -144,11 +144,6 @@ struct SnapObjectContext {
 /** \name Utilities
  * \{ */
 
-static bool editmesh_eval_final_is_bmesh(const BMEditMesh *em)
-{
-  return (em->mesh_eval_final->runtime.wrapper_type == ME_WRAPPER_TYPE_BMESH);
-}
-
 /* Mesh used for snapping.
  * If NULL the BMesh should be used. */
 static Mesh *mesh_for_snap(Object *ob, eSnapEditType edit_mode_type, bool *r_use_hide)
@@ -156,16 +151,22 @@ static Mesh *mesh_for_snap(Object *ob, eSnapEditType edit_mode_type, bool *r_use
   Mesh *me = ob->data;
   bool use_hide = false;
   if (BKE_object_is_in_editmode(ob)) {
-    if ((edit_mode_type == SNAP_GEOM_EDIT) || editmesh_eval_final_is_bmesh(me->edit_mesh)) {
+    if (edit_mode_type == SNAP_GEOM_EDIT) {
       return NULL;
     }
 
     BMEditMesh *em = BKE_editmesh_from_object(ob);
     if ((edit_mode_type == SNAP_GEOM_FINAL) && em->mesh_eval_final) {
+      if (em->mesh_eval_final->runtime.wrapper_type == ME_WRAPPER_TYPE_BMESH) {
+        return NULL;
+      }
       me = em->mesh_eval_final;
       use_hide = true;
     }
     else if ((edit_mode_type == SNAP_GEOM_CAGE) && em->mesh_eval_cage) {
+      if (em->mesh_eval_cage->runtime.wrapper_type == ME_WRAPPER_TYPE_BMESH) {
+        return NULL;
+      }
       me = em->mesh_eval_cage;
       use_hide = true;
     }



More information about the Bf-blender-cvs mailing list