From 94b3e83b6c564a66788624e824a2548d6c8b8650 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 27 Aug 2011 03:13:54 +0000 Subject: fix for bug with all rotation modes being treated as euler by the BGE, this bug is in trunk too but fixing here because this code will replace whats in trunk. also make initializers less verbose for ipo transform assignment. --- source/gameengine/Converter/KX_IpoConvert.cpp | 30 +++++++-------------------- 1 file changed, 7 insertions(+), 23 deletions(-) (limited to 'source/gameengine/Converter/KX_IpoConvert.cpp') diff --git a/source/gameengine/Converter/KX_IpoConvert.cpp b/source/gameengine/Converter/KX_IpoConvert.cpp index 2793b8e9fdf..0ee99f5335b 100644 --- a/source/gameengine/Converter/KX_IpoConvert.cpp +++ b/source/gameengine/Converter/KX_IpoConvert.cpp @@ -91,41 +91,25 @@ SG_Controller *BL_CreateIPO(struct bAction *action, KX_GameObject* gameobj, KX_B Object* blenderobject = gameobj->GetBlenderObject(); - ipocontr->GetIPOTransform().SetPosition( - MT_Point3( - blenderobject->loc[0]/*+blenderobject->dloc[0]*/, - blenderobject->loc[1]/*+blenderobject->dloc[1]*/, - blenderobject->loc[2]/*+blenderobject->dloc[2]*/ - ) - ); - ipocontr->GetIPOTransform().SetEulerAngles( - MT_Vector3( - blenderobject->rot[0], - blenderobject->rot[1], - blenderobject->rot[2] - ) - ); - ipocontr->GetIPOTransform().SetScaling( - MT_Vector3( - blenderobject->size[0], - blenderobject->size[1], - blenderobject->size[2] - ) - ); + ipocontr->GetIPOTransform().SetPosition(MT_Point3(blenderobject->loc)); + ipocontr->GetIPOTransform().SetEulerAngles(MT_Vector3(blenderobject->rot)); + ipocontr->GetIPOTransform().SetScaling(MT_Vector3(blenderobject->size)); const char *rotmode, *drotmode; - switch(blenderobject->rotmode) - { + switch(blenderobject->rotmode) { case ROT_MODE_AXISANGLE: rotmode = "rotation_axis_angle"; drotmode = "delta_rotation_axis_angle"; + break; case ROT_MODE_QUAT: rotmode = "rotation_quaternion"; drotmode = "delta_rotation_quaternion"; + break; default: rotmode = "rotation_euler"; drotmode = "delta_rotation_euler"; + break; } BL_InterpolatorList *adtList= GetAdtList(action, converter); -- cgit v1.2.3