[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51896] trunk/blender/source/blender/ editors/space_view3d/view3d_snap.c: fix [#33051] view selected (focus) bug
Campbell Barton
ideasman42 at gmail.com
Mon Nov 5 11:43:54 CET 2012
Revision: 51896
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51896
Author: campbellbarton
Date: 2012-11-05 10:43:52 +0000 (Mon, 05 Nov 2012)
Log Message:
-----------
fix [#33051] view selected (focus) bug
this was really a feature request!, previously the first cage vertex was used no matter what, but no the code checks to use the closest vertex to the original.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_view3d/view3d_snap.c
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_snap.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_snap.c 2012-11-05 10:33:59 UTC (rev 51895)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_snap.c 2012-11-05 10:43:52 UTC (rev 51896)
@@ -214,9 +214,22 @@
TransVert *tv = userdata[1];
BMVert *eve = EDBM_vert_at_index(em, index);
- if (BM_elem_index_get(eve) != TM_INDEX_SKIP && !(tv[BM_elem_index_get(eve)].flag & TX_VERT_USE_MAPLOC)) {
- copy_v3_v3(tv[BM_elem_index_get(eve)].maploc, co);
- tv[BM_elem_index_get(eve)].flag |= TX_VERT_USE_MAPLOC;
+ if (BM_elem_index_get(eve) != TM_INDEX_SKIP) {
+ tv = &tv[BM_elem_index_get(eve)];
+
+ /* be clever, get the closest vertex to the original,
+ * behaves most logically when the mirror modifier is used for eg [#33051]*/
+ if ((tv->flag & TX_VERT_USE_MAPLOC) == 0) {
+ /* first time */
+ copy_v3_v3(tv->maploc, co);
+ tv->flag |= TX_VERT_USE_MAPLOC;
+ }
+ else {
+ /* find best location to use */
+ if (len_squared_v3v3(eve->co, co) < len_squared_v3v3(eve->co, tv->maploc)) {
+ copy_v3_v3(tv->maploc, co);
+ }
+ }
}
}
More information about the Bf-blender-cvs
mailing list