Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGermano Cavalcante <germano.costa@ig.com.br>2021-04-17 22:34:54 +0300
committerGermano Cavalcante <germano.costa@ig.com.br>2021-04-17 22:50:49 +0300
commit1fc446a9087b8c662f514884a37518078bad6161 (patch)
tree8f0087f58a8091aedca1375f8e680b8b3f5b3fba /source/blender/editors/transform/transform_snap_object.c
parentaca9a1bac3ad6290345d62b6cfe2fb5223854d22 (diff)
Fix recent snap refactor
It is important to check if editmesh eval cage is also bmesh.
Diffstat (limited to 'source/blender/editors/transform/transform_snap_object.c')
-rw-r--r--source/blender/editors/transform/transform_snap_object.c13
1 files changed, 7 insertions, 6 deletions
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;
}