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:
authorSebastian Parborg <darkdefende@gmail.com>2019-03-10 14:05:06 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-03-10 14:06:55 +0300
commit81a7f6c84844a7eafc33711c1fb792e8e0bbc459 (patch)
treea854c8777c640331c8a7ee5dfb50e79e1bce7a51 /source/blender/editors/transform
parent81958a13938ebcf76316b12a3fa81165ae3cf230 (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.c10
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,