Revision: 30214
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30214
Author:   campbellbarton
Date:     2010-07-12 10:43:49 +0200 (Mon, 12 Jul 2010)

Log Message:
-----------
set metaball limit for not drawing small scale motherballs to a 1/10th of what 
it was. durian blood splats were reaching this threshold.
also fix for memory leaks when the motherball is too small.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mball.c

Modified: trunk/blender/source/blender/blenkernel/intern/mball.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mball.c      2010-07-12 
08:01:50 UTC (rev 30213)
+++ trunk/blender/source/blender/blenkernel/intern/mball.c      2010-07-12 
08:43:49 UTC (rev 30214)
@@ -2125,13 +2125,22 @@
        if((totelem > 512) && (totelem <= 1024)) init_metaball_octal_tree(4);
        if(totelem > 1024) init_metaball_octal_tree(5);
 
-       /* don't polygonize metaballs with too high resolution (base mball to 
small) */
+       /* don't polygonize metaballs with too high resolution (base mball to 
small)
+        * note: Eps was 0.0001f but this was giving problems for blood 
animation for durian, using 0.00001f */
        if(metaball_tree) {
-               if(ob->size[0]<=0.0001f*(metaball_tree->first->x_max - 
metaball_tree->first->x_min) ||
-                          ob->size[1]<=0.0001f*(metaball_tree->first->y_max - 
metaball_tree->first->y_min) ||
-                          ob->size[2]<=0.0001f*(metaball_tree->first->z_max - 
metaball_tree->first->z_min))
+               if(     ob->size[0] <= 0.00001f * (metaball_tree->first->x_max 
- metaball_tree->first->x_min) ||
+                       ob->size[1] <= 0.00001f * (metaball_tree->first->y_max 
- metaball_tree->first->y_min) ||
+                       ob->size[2] <= 0.00001f * (metaball_tree->first->z_max 
- metaball_tree->first->z_min))
                {
+                       new_pgn_element(-1); /* free values created by 
init_meta */
+
                        MEM_freeN(mainb);
+
+                       /* free tree */
+                       free_metaball_octal_node(metaball_tree->first);
+                       MEM_freeN(metaball_tree);
+                       metaball_tree= NULL;
+
                        return;
                }
        }


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to