Скачать 0.66 Mb.
|
{ mSceneMgr->getSceneNode(myVector[i])->showBoundingBox(false); //убираем выделение со всех моделек на сцене } timer1.reset(); wchar_t cameraText[100] = L"Остановить камеру"; if (buttonCameraSetPosition->getText() == encodeRussian(cameraText) ) { tipsEnabled = !tipsEnabled; } return true; } void BasicApp::destroyScene() { } void BasicApp::createFrameListener() { Ogre::LogManager::getSingletonPtr()->logMessage("*** Initializing OIS ***"); OIS::ParamList pl; size_t windowHnd = 0; std::ostringstream windowHndStr; mWindow->getCustomAttribute("WINDOW", &windowHnd); windowHndStr << windowHnd; pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str())); mInputMgr = OIS::InputManager::createInputSystem(pl); mKeyboard = static_cast( mInputMgr->createInputObject(OIS::OISKeyboard, true)); mMouse = static_cast( mInputMgr->createInputObject(OIS::OISMouse, true)); mKeyboard->setEventCallback(this); mMouse->setEventCallback(this); windowResized(mWindow); Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this); mRoot->addFrameListener(this); Ogre::LogManager::getSingletonPtr()->logMessage("Finished"); } void BasicApp::createViewports() { Ogre::Viewport* vp = mWindow->addViewport(mCamera); vp->setBackgroundColour(Ogre::ColourValue(0, 0, 0)); mCamera->setAspectRatio( Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight())); } void BasicApp::setupResources() { Ogre::ConfigFile cf; cf.load(mResourcesCfg); Ogre::String secName, typeName, archName; Ogre::ConfigFile::SectionIterator secIt = cf.getSectionIterator(); while (secIt.hasMoreElements()) { secName = secIt.peekNextKey(); Ogre::ConfigFile::SettingsMultiMap* settings = secIt.getNext(); Ogre::ConfigFile::SettingsMultiMap::iterator setIt; for (setIt = settings->begin(); setIt != settings->end(); ++setIt) { typeName = setIt->first; archName = setIt->second; Ogre::ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName); //преобразуем строку огре в char std::string ogreToString = static_cast(archName); char stringToChar [100]; std::strcpy( stringToChar, ogreToString.c_str() ); if ( std::strstr(stringToChar, ".zip") ) { std::memset(result, 0, sizeof(result)); //очистим result int len = strlen(stringToChar); //длина считанной строки из конфига int i = 0; //добираемся до первого слеша с конца for(i = len; i > 0 ;i--) { if ( stringToChar[i-1] == '/') { break; } } int res = 0; //вырезаем имя меша for(int j = i; j < len ;j++) { result[res++] = stringToChar[j]; //записываем название меша без .mesh if ( stringToChar[j+1] == '.') { break; } } myVector.push_back( std::string(result) ); //заносим название в вектор } } } } void BasicApp::createResourceListener() { } void BasicApp::loadResources() { Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); } bool BasicApp::setupCEGUI() { Ogre::LogManager::getSingletonPtr()->logMessage("*** Initializing CEGUI ***"); mRenderer = &CEGUI::OgreRenderer::bootstrapSystem(); CEGUI::Imageset::setDefaultResourceGroup("Imagesets"); CEGUI::Font::setDefaultResourceGroup("Fonts"); CEGUI::Scheme::setDefaultResourceGroup("Schemes"); CEGUI::WidgetLookManager::setDefaultResourceGroup("LookNFeel"); CEGUI::WindowManager::setDefaultResourceGroup("Layouts"); CEGUI::SchemeManager::getSingleton().create("OgreTray.scheme"); CEGUI::SchemeManager::getSingleton().create("WindowsLook.scheme"); CEGUI::SchemeManager::getSingleton().create("TaharezLook.scheme"); CEGUI::SchemeManager::getSingleton().create("VanillaSkin.scheme"); CEGUI::SchemeManager::getSingleton().create("Novy_Kholst.scheme"); CEGUI::SchemeManager::getSingleton().create("but.scheme"); CEGUI::FontManager::getSingleton().create("DejaVuSans-10.font"); CEGUI::System::getSingleton().setDefaultFont("DejaVuSans-10"); CEGUI::System::getSingleton().setDefaultMouseCursor("WindowsLook", "MouseArrow"); CEGUI::MouseCursor::getSingleton().setImage( CEGUI::System::getSingleton().getDefaultMouseCursor()); Ogre::LogManager::getSingletonPtr()->logMessage("Finished"); return true; } void BasicApp::handleCameraCollision() //метод ограничения камеры (не летаем за текстуры) { Ogre::Vector3 camPos = mCamera->getPosition(); Ogre::Ray camRay( Ogre::Vector3(camPos.x, 5000.0, camPos.z), Ogre::Vector3::NEGATIVE_UNIT_Y); Ogre::TerrainGroup::RayResult result = mTerrainGroup->rayIntersects(camRay); if (result.terrain) { Ogre::Real terrainHeight = result.position.y; if (camPos.y < (terrainHeight + 10.0)) mCamera->setPosition(camPos.x, terrainHeight + 10.0, camPos.z); } } #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 #define WIN32_LEAN_AND_MEAN #include "windows.h" #endif #ifdef __cplusplus extern "C" { #endif #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT) #else int main(int argc, char *argv[]) #endif { BasicApp app; try { app.go(); } catch(Ogre::Exception& e) { #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL); #else std::cerr << "An exception has occured: " << e.getFullDescription().c_str() << std::endl; #endif } return 0; } #ifdef __cplusplus } #endif textMgr.h #include #include #include #include class textMgr { public: textMgr(); ~textMgr(); std::vector idTextVector; //идентификатор текста модельки, сравниваем по имени std::vector dataTextVector; //описание модели std::string getText(std::string id); void setText(std::string id, std::string data); wchar_t* getFromFile(std::string id); private: }; textMgr.cpp #include "textMgr.h" textMgr::textMgr() { } textMgr::~textMgr() { } std::string textMgr::getText(std::string id) { for(int i = 0; i < idTextVector.size(); i++) { if ( idTextVector[i].length() == id.length() ) { for(int j = 0; j < id.length(); j++) { if (id[j] != idTextVector[i][j]) { return "Add text for model!"; } else { return dataTextVector[0]; } } } else { return "Add text for model!"; } } } wchar_t* textMgr::getFromFile(std::string id) { setlocale(LC_ALL, "Russian"); id += ".txt"; //добавляем .txt к переданному мешу //CEGUI::String data; //возвращаемая строка wchar_t data[2000] = L""; std::string path = "media\\text\\"; path += id; //к пути прибаляем имя меша + .txt std::FILE* file; file = std::fopen(path.c_str(), "r"); char line[100]; if (file == NULL) //если файла описания нет, просим добавить { wchar_t info[50] = L"Текст не найден!"; wcscat(data, info); } else { while ( !std::feof(file) ) { if ( std::fgets(line,100,file) ) { wchar_t temp[250] = L""; mbstowcs(temp,line,250); //конвертируем из char в wchar_t //temp[250] = (wchar_t)line; wcscat(data,temp); } } fclose(file); } CEGUI::String info; for (int i=0; i < wcslen(data); i++) { info += data[i]; } return data; } Размещено на Allbest.ru |
Описание предметной области Обзор существующих программных продуктов систем обработки данных c использованием ip-телефонии 7 |
Метода очистки Целью настоящей работы является разработка технических решений по усовершенствованию существующих методов зачистки резервуаров с... |
||
Генеральный план совмещенный с проектом планировки пояснительная... Выявление проблем градостроительного развития территории поселения на основе анализа параметров городской среды, существующих ресурсов... |
Обзор Оспаривание решений и действий (бездействия) органов государственной власти, органов местного самоуправления, должностных лиц, государственных... |
||
Экспериментальная медицина и детская неврология обзор Системный обзор вмешательств у детей с церебральным параличом: статус доказательности |
«Выполнение работ по развитию и оказание услуг по сопровождению Федерального... Целью работы является анализ справочников фргу на соответствие следующим критериям: актуальность и полнота существующих справочных... |
||
Теоретические основы анализа и планирования разработки управленческих решений 5 Методы планирования, используемые при разработке и принятии управленческих решений в организации 9 |
Обзор текущего состояния и особенности государственной инновационной политики Периодический обзор инновационной деятельности стран Европы, Америки, Азии и Африки, СНГ |
||
Методические указания Ростов-на-Дону Целью данного курса является формирование представления о процессе принятия решений, навыков анализа ситуации при принятии решений,... |
Экспериментальное народное самолетостроение 2 Глава Предварительный анализ и выбор решений 2 «летающих решений», некоего ковра-самолета «небесного катера» для отдыха и путешествий, не требующего летных удостоверений и сертификации.... |
||
Марка Сергеева государственные и муниципальные библиотеки иркутской... Г 72 ежегод аналит обзор / Иркут обл гос универс науч б-ка им. И. И. Молчанова-Сибирского |
Решение это выбор альтернативы Чтобы оказать вам помощь в этом, ниже мы рассмотрим типы решений, принимаемых управляющими, используемые способы, научные методы... |
||
2 Анализ выполнения решений международных документов/решений, принятых... На Рис. 133 наглядно представлена оценка Азербайджанской республики с точки зрения реализации основных направлений Плана действий... |
Учебное пособие. М.: Издательство "Март", 2004. Предыдущая Моделирование как метод теории принятия решений и анализ ряда конкретных моделей предмет четвертой части. Приводятся методы принятия... |
||
Рабочая программа учебной дисциплины б. 3 Методы принятия управленческих... Будущий менеджер должен научиться правильно применять готовые компьютерные программы, хорошо разработанную технику анализа количественных... |
Инструкция по эксплуатации на английском языке Когда то я уже писал обзор на проектор Unic uc40 и когда увидел BlitzWolf (он же unic uc46) то решил взять его на обзор, что бы посмотреть... |
Поиск |