void MotionPanel::rotateMotion(MyGUI::Widget* sender) { std::size_t index = mCBAnim->getIndexSelected(); if (index != MyGUI::ITEM_NONE) { std::string motionName = mCBAnim->getItemNameAt(index); Motion* mo = MotionManager::getSingleton().getMotion(motionName); if(mo) { MyGUI::UString strAngle = static_cast<MyGUI::EditBox*>(mMainWidget->findWidget(mPrefix + "EBAngle"))->getCaption(); MyGUI::UString strAxisX = static_cast<MyGUI::EditBox*>(mMainWidget->findWidget(mPrefix + "EBAxisX"))->getCaption(); MyGUI::UString strAxisY = static_cast<MyGUI::EditBox*>(mMainWidget->findWidget(mPrefix + "EBAxisY"))->getCaption(); MyGUI::UString strAxisZ = static_cast<MyGUI::EditBox*>(mMainWidget->findWidget(mPrefix + "EBAxisZ"))->getCaption(); float angle = Ogre::StringConverter::parseReal(strAngle); float axisX = Ogre::StringConverter::parseReal(strAxisX); float axisY = Ogre::StringConverter::parseReal(strAxisY); float axisZ = Ogre::StringConverter::parseReal(strAxisZ); mo->rotateMotion(angle, Ogre::Vector3(axisX, axisY, axisZ)); } } }