[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57844] trunk/blender/source/blender/ editors/space_view3d/view3d_snap.c: view-select wasn' t working for metaballs.

Campbell Barton ideasman42 at gmail.com
Fri Jun 28 08:54:50 CEST 2013


Revision: 57844
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57844
Author:   campbellbarton
Date:     2013-06-28 06:54:49 +0000 (Fri, 28 Jun 2013)
Log Message:
-----------
view-select wasn't working for metaballs.

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	2013-06-28 06:00:38 UTC (rev 57843)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_snap.c	2013-06-28 06:54:49 UTC (rev 57844)
@@ -1089,6 +1089,30 @@
 	float centroid[3], vec[3], bmat[3][3];
 	int a;
 
+	/* metaballs are an exception */
+	if (obedit->type == OB_MBALL) {
+		const float scale = mat4_to_scale(obedit->obmat);
+		MetaBall *mb = obedit->data;
+		MetaElem *ml;
+		bool change = false;
+
+		for (ml = mb->elems.first; ml; ml = ml->next) {
+			if (ml->flag & SELECT) {
+				const float scale_mb = ml->rad * scale;
+				int i;
+				mul_v3_m4v3(centroid, obedit->obmat, &ml->x);
+				for (i = -1; i != 3; i += 2) {
+					copy_v3_v3(vec, centroid);
+					add_v3_fl(vec, scale_mb * i);
+					minmax_v3v3_v3(min, max, vec);
+				}
+				change = true;
+			}
+		}
+
+		return change;
+	}
+
 	tottrans = 0;
 	if (ELEM5(obedit->type, OB_ARMATURE, OB_LATTICE, OB_MESH, OB_SURF, OB_CURVE))
 		make_trans_verts(obedit, bmat[0], bmat[1], TM_ALL_JOINTS);




More information about the Bf-blender-cvs mailing list