void RenderBoxWrap::setAutoRotation(bool _auto) { if (mAutoRotation == _auto) return; if (needFrameUpdate()) { mAutoRotation = _auto; FrameAdvise(false); } else { mAutoRotation = _auto; FrameAdvise(true); } }
void RenderBoxWrap::setViewScale(bool _scale) { if (mUseScale == _scale) return; if (needFrameUpdate()) { mUseScale = _scale; FrameAdvise(false); } else { mUseScale = _scale; FrameAdvise(true); } }
void State::setVisible(bool _visible) { if (_visible) { mMainWidget->setVisible(false); mButton1->setVisible(false); mButton2->setVisible(false); mButton3->setVisible(false); mButton4->setVisible(false); MyGUI::LayerManager::getInstance().upLayerItem(mMainWidget); MyGUI::LayerManager::getInstance().upLayerItem(mButton1); MyGUI::LayerManager::getInstance().upLayerItem(mButton2); MyGUI::LayerManager::getInstance().upLayerItem(mButton3); MyGUI::LayerManager::getInstance().upLayerItem(mButton4); FrameAdvise(true); mCountTime = 0; } else { MyGUI::ControllerFadeAlpha * controller = new MyGUI::ControllerFadeAlpha(0, 3, true); MyGUI::ControllerManager::getInstance().addItem(mMainWidget, controller); controller = new MyGUI::ControllerFadeAlpha(0, 3, true); MyGUI::ControllerManager::getInstance().addItem(mButton1, controller); controller = new MyGUI::ControllerFadeAlpha(0, 3, true); MyGUI::ControllerManager::getInstance().addItem(mButton2, controller); controller = new MyGUI::ControllerFadeAlpha(0, 3, true); MyGUI::ControllerManager::getInstance().addItem(mButton3, controller); controller = new MyGUI::ControllerFadeAlpha(0, 3, true); MyGUI::ControllerManager::getInstance().addItem(mButton4, controller); } }
void State::notifyFrameEvent(float _time) { mCountTime += _time; const int offset = 30; const int offset_jamp = 1; const MyGUI::IntSize & view = MyGUI::Gui::getInstance().getViewSize(); const float time_diff = 0.3; if (!mMainWidget->isVisible()) { mMainWidget->setPosition(-mMainWidget->getWidth(), view.height - mMainWidget->getHeight() - offset); mMainWidget->setVisible(true); mMainWidget->setAlpha(1); MyGUI::IntPoint point(offset, view.height - mMainWidget->getHeight() - offset); MyGUI::ControllerManager::getInstance().addItem(mMainWidget, getController(point)); } if (!mButton1->isVisible()) { mButton1->setPosition(view.width, offset); mButton1->setVisible(true); mButton1->setAlpha(1); MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, offset); MyGUI::ControllerManager::getInstance().addItem(mButton1, getController(point)); } if (mCountTime > time_diff) { if (!mButton2->isVisible()) { mButton2->setPosition(view.width, (mButton2->getHeight() + offset) + offset); mButton2->setVisible(true); mButton2->setAlpha(1); MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, (mButton2->getHeight() + offset) + offset); MyGUI::ControllerManager::getInstance().addItem(mButton2, getController(point)); } } if (mCountTime > time_diff*2) { if (!mButton3->isVisible()) { mButton3->setPosition(view.width, (mButton3->getHeight() + offset) * 2 + offset); mButton3->setVisible(true); mButton3->setAlpha(1); MyGUI::IntPoint point(view.width - mButton3->getWidth() - offset, (mButton3->getHeight() + offset) * 2 + offset); MyGUI::ControllerManager::getInstance().addItem(mButton3, getController(point)); } } if (mCountTime > time_diff * 3) { if (!mButton4->isVisible()) { mButton4->setPosition(view.width, (mButton4->getHeight() + offset) * 3 + offset); mButton4->setVisible(true); mButton4->setAlpha(1); MyGUI::IntPoint point(view.width - mButton4->getWidth() - offset, (mButton4->getHeight() + offset) * 3 + offset); MyGUI::ControllerManager::getInstance().addItem(mButton4, getController(point)); } FrameAdvise(false); } }
void RenderBoxWrap::setAnimation(const Ogre::String& _animation) { if (nullptr != mEntityState) { mEntityState = nullptr; FrameAdvise(false); } if (_animation.empty()) return; if (nullptr == mEntity) return; Ogre::SkeletonInstance * skeleton = mEntity->getSkeleton(); if (nullptr == skeleton) return; Ogre::AnimationStateSet * anim_set = mEntity->getAllAnimationStates(); // FIXME почему вместо всего что под ним не написать как в закомментированнои коде? ¤ его добавил, но протестить немогу просто // посмотрел код getAnimationState - он как раз провер¤ет по имени с которым ты сравниваешь /* Ogre::AnimationState * state = anim_set->getAnimationState(_animation); if (state != nullptr) { // тут то что стоит внутри твоего ифа } */ Ogre::AnimationStateIterator iter = anim_set->getAnimationStateIterator(); while (iter.hasMoreElements()) { Ogre::AnimationState * state = iter.getNext(); if (_animation == state ->getAnimationName()) { // подписываемс¤ FrameAdvise(true); mEntityState = state; mEntityState->setEnabled(true); mEntityState->setLoop(true); mEntityState->setWeight(1.0f); return; } } MYGUI_LOG(Warning, "Unable to to set animation '" << _animation << "' - current entity don't have such animation."); }
RenderBoxWrap::~RenderBoxWrap() { FrameAdvise(false); mRenderBox->removeCamera(); mRenderBox->eventMouseDrag = nullptr; mRenderBox->eventMouseWheel = nullptr; mRenderBox->eventMouseButtonPressed = nullptr; mRenderBox->eventMouseButtonReleased = nullptr; mRenderBox->eventUpdateViewport = nullptr; Ogre::Root * root = Ogre::Root::getSingletonPtr(); if (root && mScene) root->destroySceneManager(mScene); }
State::~State() { FrameAdvise(false); }
void State::notifyFrameEvent(float _time) { mCountTime += _time; const int offset = 30; const float time_diff = 0.3; const MyGUI::IntSize& view = MyGUI::RenderManager::getInstance().getViewSize(); if (!mMainWidget->getVisible()) { mMainWidget->setPosition(-mMainWidget->getWidth(), view.height - mMainWidget->getHeight() - offset); mMainWidget->setVisible(true); mMainWidget->setAlpha(1); MyGUI::IntPoint point(offset, view.height - mMainWidget->getHeight() - offset); MyGUI::ControllerManager::getInstance().addItem(mMainWidget, createControllerPosition(point)); } if (!mButton1->getVisible()) { mButton1->setPosition(view.width, offset); mButton1->setVisible(true); mButton1->setAlpha(1); MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, offset); MyGUI::ControllerManager::getInstance().addItem(mButton1, createControllerPosition(point)); } if (mCountTime > time_diff) { if (!mButton2->getVisible()) { mButton2->setPosition(view.width, (mButton2->getHeight() + offset) + offset); mButton2->setVisible(true); mButton2->setAlpha(1); MyGUI::IntPoint point(view.width - mButton1->getWidth() - offset, (mButton2->getHeight() + offset) + offset); MyGUI::ControllerManager::getInstance().addItem(mButton2, createControllerPosition(point)); } } if (mCountTime > time_diff * 2) { if (!mButton3->getVisible()) { mButton3->setPosition(view.width, (mButton3->getHeight() + offset) * 2 + offset); mButton3->setVisible(true); mButton3->setAlpha(1); MyGUI::IntPoint point(view.width - mButton3->getWidth() - offset, (mButton3->getHeight() + offset) * 2 + offset); MyGUI::ControllerManager::getInstance().addItem(mButton3, createControllerPosition(point)); } } if (mCountTime > time_diff * 3) { if (!mButton4->getVisible()) { mButton4->setPosition(view.width, (mButton4->getHeight() + offset) * 3 + offset); mButton4->setVisible(true); mButton4->setAlpha(1); MyGUI::IntPoint point(view.width - mButton4->getWidth() - offset, (mButton4->getHeight() + offset) * 3 + offset); MyGUI::ControllerPosition* controller = createControllerPosition(point); MyGUI::ControllerManager::getInstance().addItem(mButton4, controller); controller->eventPostAction += MyGUI::newDelegate(this, &State::notifyPostAction); } FrameAdvise(false); } }