From d5e839d2abc830e2a2dd237b82bbb84873df3d88 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Thu, 24 Mar 2011 14:19:12 +0000 Subject: Bug fix: Fluidsim didn't take parent objects into account when calculating the inflow velocity in local coordinates. * The object rotation was based on ob->rot (which only includes object's own rotation) instead of ob->obmat, which includes parent rotations as well. --- source/blender/editors/physics/physics_fluid.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/physics') diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index 4ac794ed620..210b2480d85 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -449,8 +449,9 @@ static void fluid_init_all_channels(bContext *C, Object *UNUSED(fsDomain), Fluid continue; /* init euler rotation values and convert to elbeem format */ - BKE_rotMode_change_values(ob->quat, ob->rot, ob->rotAxis, &ob->rotAngle, ob->rotmode, ROT_MODE_EUL); - mul_v3_v3fl(rot_d, ob->rot, 180.f/M_PI); + /* get the rotation from ob->obmat rather than ob->rot to account for parent animations */ + mat4_to_eul(rot_d, ob->obmat); + mul_v3_fl(rot_d, 180.f/M_PI); sub_v3_v3v3(rot_d, rot_360, rot_d); set_channel(fobj->Translation, timeAtFrame, ob->loc, i, CHANNEL_VEC); -- cgit v1.2.3