[Bf-extensions-cvs] [27d8e0e] master: Make sure sample and blob locations are in world space.
Lukas Tönne
noreply at git.blender.org
Wed Dec 10 14:17:32 CET 2014
Commit: 27d8e0e8c96151d8aae446369d9ff4a02df88a56
Author: Lukas Tönne
Date: Wed Dec 10 12:18:58 2014 +0100
Branches: master
https://developer.blender.org/rBAC27d8e0e8c96151d8aae446369d9ff4a02df88a56
Make sure sample and blob locations are in world space.
This makes setting object transforms a lot less complicated and ensures
consistency.
===================================================================
M object_physics_meadow/blob.py
M object_physics_meadow/meadow.py
===================================================================
diff --git a/object_physics_meadow/blob.py b/object_physics_meadow/blob.py
index c5b3389..f9ccb1d 100644
--- a/object_physics_meadow/blob.py
+++ b/object_physics_meadow/blob.py
@@ -173,12 +173,14 @@ def make_blobs(context, gridob, groundob, samples, display_radius):
blobtree = KDTree(len(gridob.data.vertices))
for i, v in enumerate(gridob.data.vertices):
+ co = gridob.matrix_world * v.co
# note: only using 2D coordinates, otherwise weights get distorted by z offset
- blobtree.insert((v.co[0], v.co[1], 0.0), i)
+ blobtree.insert((co[0], co[1], 0.0), i)
blobtree.balance()
for v in gridob.data.vertices:
- ok, loc, nor, face_index = project_on_ground(groundob, v.co)
+ co = gridob.matrix_world * v.co
+ ok, loc, nor, face_index = project_on_ground(groundob, co)
blobs.append(Blob(loc, nor, face_index) if ok else None)
for loc, nor, face_index in samples:
diff --git a/object_physics_meadow/meadow.py b/object_physics_meadow/meadow.py
index 39f7b60..1e6fd43 100644
--- a/object_physics_meadow/meadow.py
+++ b/object_physics_meadow/meadow.py
@@ -47,7 +47,8 @@ def make_samples(context, gridob, groundob):
#gen = best_candidate_gen(gridob.meadow.patch_radius, xmin, xmax, ymin, ymax)
gen = hierarchical_dart_throw_gen(gridob.meadow.patch_radius, gridob.meadow.sampling_levels, xmin, xmax, ymin, ymax, debug)
- loc2D = [(p[0], p[1]) for p in gen(gridob.meadow.seed, gridob.meadow.max_patches)]
+ mat = groundob.matrix_world
+ loc2D = [(mat * Vector(p[0:3] + (1.0,)))[0:2] for p in gen(gridob.meadow.seed, gridob.meadow.max_patches)]
#debug.to_object(context)
# project samples onto the ground object
More information about the Bf-extensions-cvs
mailing list