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.
This commit is contained in:
2011-03-24 14:19:12 +00:00
parent 422f1674bb
commit d5e839d2ab

View File

@@ -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);