[Bf-blender-cvs] [f58e76119a4] master: Fix T77239: snap 3D cursor in edit-mode

Campbell Barton noreply at git.blender.org
Tue Jun 2 04:20:16 CEST 2020


Commit: f58e76119a4db19e4792b084c12225e3ce10c0a4
Author: Campbell Barton
Date:   Tue Jun 2 12:08:17 2020 +1000
Branches: master
https://developer.blender.org/rBf58e76119a4db19e4792b084c12225e3ce10c0a4

Fix T77239: snap 3D cursor in edit-mode

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

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 4397c0396eb..f2cdeacb13d 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -143,6 +143,17 @@ 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);
+}
+
+/** \} */
+
 /* -------------------------------------------------------------------- */
 /** \name Snap Object Data
  * \{ */
@@ -974,7 +985,7 @@ static void raycast_obj_fn(SnapObjectContext *sctx,
       Mesh *me = ob->data;
       bool use_hide = false;
       if (BKE_object_is_in_editmode(ob)) {
-        if (use_obedit) {
+        if (use_obedit || editmesh_eval_final_is_bmesh(me->edit_mesh)) {
           /* Operators only update the editmesh looptris of the original mesh. */
           BMEditMesh *em_orig = BKE_editmesh_from_object(DEG_get_original_object(ob));
           retval = raycastEditMesh(sctx,
@@ -2641,7 +2652,7 @@ static void sanp_obj_fn(SnapObjectContext *sctx,
     case OB_MESH: {
       Mesh *me = ob->data;
       if (BKE_object_is_in_editmode(ob)) {
-        if (use_obedit) {
+        if (use_obedit || editmesh_eval_final_is_bmesh(me->edit_mesh)) {
           /* Operators only update the editmesh looptris of the original mesh. */
           BMEditMesh *em_orig = BKE_editmesh_from_object(DEG_get_original_object(ob));
           retval = snapEditMesh(sctx,



More information about the Bf-blender-cvs mailing list