diff options
author | Sebastian Parborg <darkdefende@gmail.com> | 2019-03-10 14:05:06 +0300 |
---|---|---|
committer | Sebastian Parborg <darkdefende@gmail.com> | 2019-03-10 14:06:55 +0300 |
commit | 81a7f6c84844a7eafc33711c1fb792e8e0bbc459 (patch) | |
tree | a854c8777c640331c8a7ee5dfb50e79e1bce7a51 /source/blender/editors/transform | |
parent | 81958a13938ebcf76316b12a3fa81165ae3cf230 (diff) |
Fix T62125: snapping not working if invisible object is between you and the target
If we were not in x-ray/wireframe mode, the snapping would treat all
objects like they were in solid mode. This were not desirable if you
had objects that were in wire or bounding box display mode.
Now objects that are in bounding box mode is ignored (unless the object
is in edit mode) and objects with wire display mode is treated as if
they were in x-ray mode.
Reviewed By: Brecht
Differential Revision: http://developer.blender.org/D4493
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform_snap_object.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c index e7c4c2e441c..beb420fd498 100644 --- a/source/blender/editors/transform/transform_snap_object.c +++ b/source/blender/editors/transform/transform_snap_object.c @@ -685,6 +685,11 @@ static bool raycastObj( switch (ob->type) { case OB_MESH: { + if (ob->dt == OB_BOUNDBOX || ob->dt == OB_WIRE) { + /* Do not hit objects that are in wire or bounding box display mode */ + return false; + } + Mesh *me = ob->data; if (BKE_object_is_in_editmode(ob)) { BMEditMesh *em = BKE_editmesh_from_object(ob); @@ -2183,6 +2188,11 @@ static short snapObject( me = em->mesh_eval_final; } } + else if (ob->dt == OB_BOUNDBOX) { + /* Do not snap to objects that are in bounding box display mode */ + return 0; + } + retval = snapMesh( sctx, snapdata, ob, me, obmat, dist_px, |