Revision: 34742
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34742
Author:   campbellbarton
Date:     2011-02-09 15:32:39 +0000 (Wed, 09 Feb 2011)
Log Message:
-----------
fix [#25994] Meshes with no vertices gets NaN location on setting origin to 
geometry

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh.c
    trunk/blender/source/blender/editors/object/object_transform.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh.c       2011-02-09 
15:13:20 UTC (rev 34741)
+++ trunk/blender/source/blender/blenkernel/intern/mesh.c       2011-02-09 
15:32:39 UTC (rev 34742)
@@ -1556,7 +1556,10 @@
        for(mvert= me->mvert; i--; mvert++) {
                add_v3_v3(cent, mvert->co);
        }
-       mul_v3_fl(cent, 1.0f/(float)me->totvert);
+       /* otherwise we get NAN for 0 verts */
+       if(me->totvert) {
+               mul_v3_fl(cent, 1.0f/(float)me->totvert);
+       }
 
        return (me->totvert != 0);
 }

Modified: trunk/blender/source/blender/editors/object/object_transform.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_transform.c      
2011-02-09 15:13:20 UTC (rev 34741)
+++ trunk/blender/source/blender/editors/object/object_transform.c      
2011-02-09 15:32:39 UTC (rev 34742)
@@ -744,7 +744,9 @@
                                        total++;
                                        add_v3_v3(cent, eve->co);
                                }
-                               mul_v3_fl(cent, 1.0f/(float)total);
+                               if(total) {
+                                       mul_v3_fl(cent, 1.0f/(float)total);
+                               }
                        }
                        else {
                                for(eve= em->verts.first; eve; eve= eve->next) {
@@ -753,13 +755,15 @@
                                mid_v3_v3v3(cent, min, max);
                        }
 
-                       for(eve= em->verts.first; eve; eve= eve->next) {
-                               sub_v3_v3(eve->co, cent);
+                       if(!is_zero_v3(cent)) {
+                               for(eve= em->verts.first; eve; eve= eve->next) {
+                                       sub_v3_v3(eve->co, cent);
+                               }
+
+                               recalc_editnormals(em);
+                               tot_change++;
+                               DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
                        }
-
-                       recalc_editnormals(em);
-                       tot_change++;
-                       DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
                        BKE_mesh_end_editmesh(me, em);
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to