[Bf-extensions-cvs] [767dc00] master: Fix for ground object scaling: generate samples in world space.

Lukas Tönne noreply at git.blender.org
Sat Dec 20 13:17:36 CET 2014


Commit: 767dc008d58e866c665afacbf5a9a7788a165d55
Author: Lukas Tönne
Date:   Sat Dec 20 13:16:17 2014 +0100
Branches: master
https://developer.blender.org/rBAC767dc008d58e866c665afacbf5a9a7788a165d55

Fix for ground object scaling: generate samples in world space.

Otherwise the distance radius is an object space length which gives
confusing results.

===================================================================

M	object_physics_meadow/meadow.py

===================================================================

diff --git a/object_physics_meadow/meadow.py b/object_physics_meadow/meadow.py
index 37703b6..2a4feb8 100644
--- a/object_physics_meadow/meadow.py
+++ b/object_physics_meadow/meadow.py
@@ -36,19 +36,15 @@ use_profiling = False
 def make_samples(context, gridob, groundob):
     settings = _settings.get(context)
     
-    xmin = min(p[0] for p in groundob.bound_box)
-    xmax = max(p[0] for p in groundob.bound_box)
-    ymin = min(p[1] for p in groundob.bound_box)
-    ymax = max(p[1] for p in groundob.bound_box)
-    zmin = min(p[2] for p in groundob.bound_box)
-    zmax = max(p[2] for p in groundob.bound_box)
+    mat = groundob.matrix_world
+    gmin = mat * Vector(tuple(min(p[i] for p in groundob.bound_box) for i in range(3)))
+    gmax = mat * Vector(tuple(max(p[i] for p in groundob.bound_box) for i in range(3)))
     
     # get a sample generator implementation
-    #gen = best_candidate_gen(groundob.meadow.patch_radius, xmin, xmax, ymin, ymax)
-    gen = hierarchical_dart_throw_gen(groundob.meadow.patch_radius, groundob.meadow.sampling_levels, xmin, xmax, ymin, ymax)
+    #gen = best_candidate_gen(groundob.meadow.patch_radius, gmin[0], gmax[0], gmin[1], gmax[1])
+    gen = hierarchical_dart_throw_gen(groundob.meadow.patch_radius, groundob.meadow.sampling_levels, gmin[0], gmax[0], gmin[1], gmax[1])
     
-    mat = groundob.matrix_world
-    loc2D = [(mat * Vector(p[0:3] + (1.0,)))[0:2] for p in gen(groundob.meadow.seed, groundob.meadow.max_patches)]
+    loc2D = [p[0:2] for p in gen(groundob.meadow.seed, groundob.meadow.max_patches)]
     
     return loc2D



More information about the Bf-extensions-cvs mailing list