void TutorialApplication::createFrameListener(void) { BaseApplication::createFrameListener(); // create a params panel for displaying sample details Ogre::StringVector items; // items.push_back("Filtering"); // items.push_back("Poly Mode"); mStatusPanel = mTrayMgr->createParamsPanel(OgreBites::TL_BOTTOMRIGHT, "Params", 300, items); OgreBites::Slider* slider = NULL; mTrayMgr->createButton(OgreBites::TL_BOTTOMRIGHT, "Reset pose", "Reset pose"); mTrayMgr->createButton(OgreBites::TL_BOTTOMRIGHT, "Reload controller", "Reload controller"); mTrayMgr->createButton(OgreBites::TL_BOTTOMRIGHT, "Go to pose", "Go to pose"); // animations control slider = mTrayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "Gravity X", "Gravity X", 400, 150, 50, -9.8, 9.8, 149 ); slider->setValue(0); slider = mTrayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "Gravity Y", "Gravity Y", 400, 150, 50, -9.8, 9.8, 149 ); slider->setValue(0.0f); slider = mTrayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "Gravity Z", "Gravity Z", 400, 150, 50, -9.8, 9.8, 149 ); slider->setValue(0.0f); slider = mTrayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "Time multiplier", "Time multiplier", 400, 150, 50, 0, 1, 1000 ); slider->setValue(DEFAULT_TIME_MULTIPLIER); slider = mTrayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "Animation speed", "Animation speed", 400, 150, 50, 0, 2, 1000 ); slider->setValue(DEFAULT_ANIMATION_SPEED); // animation selector int defaultAnimationIndex = 0; Ogre::SkeletonInstance* skel = mFigureEnt->getSkeleton(); Ogre::StringVector animationNames; animationNames.push_back("<none>"); if ( skel ) { std::cout << "got skeleton" << std::endl; for ( int i=0; i<skel->getNumAnimations(); i++ ) { std::string name = skel->getAnimation(i)->getName(); std::cout << " animation: " << name << std::endl; if ( /*i<5 || name == "WalkNew"*/true ) { animationNames.push_back(name); if ( name == DEFAULT_ANIMATION ) { defaultAnimationIndex = i; } } } //mFigureEnt->setDisplaySkeleton(true); } else { std::cout << "no skeleton" << std::endl; } mAnimationSelectMenu = mTrayMgr->createThickSelectMenu( OgreBites::TL_TOPLEFT, "Animation", "Animation", 400, animationNames.size()); if ( animationNames.size() ) { mAnimationSelectMenu->setItems(animationNames); mAnimationSelectMenu->selectItem(defaultAnimationIndex); } static const int debugDrawStyleCount = 8; OgreBites::SelectMenu* select = mTrayMgr->createThickSelectMenu( OgreBites::TL_BOTTOMRIGHT, "Debug draw", "Debug draw", 400, debugDrawStyleCount ); Ogre::StringVector debugDrawStates; const char* debugDrawStateNames[debugDrawStyleCount] = { "None", "Nodes", "Links", "Faces", "FaceAnchors", "Tetras", "TetraForces", "BadTetras" }; for ( int i=0; i<debugDrawStyleCount; i++ ) { debugDrawStates.push_back(debugDrawStateNames[i]); } select->setItems(debugDrawStates); select->selectItem(0); showControls(false); }