Обзор существующих решений


Скачать 0.66 Mb.
Название Обзор существующих решений
страница 10/10
Тип Обзор
rykovodstvo.ru > Руководство эксплуатация > Обзор
1   2   3   4   5   6   7   8   9   10

{

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

1   2   3   4   5   6   7   8   9   10

Похожие:

Обзор существующих решений icon Описание предметной области
Обзор существующих программных продуктов систем обработки данных c использованием ip-телефонии 7
Обзор существующих решений icon Метода очистки
Целью настоящей работы является разработка технических решений по усовершенствованию существующих методов зачистки резервуаров с...
Обзор существующих решений icon Генеральный план совмещенный с проектом планировки пояснительная...
Выявление проблем градостроительного развития территории поселения на основе анализа параметров городской среды, существующих ресурсов...
Обзор существующих решений icon Обзор
Оспаривание решений и действий (бездействия) органов государственной власти, органов местного самоуправления, должностных лиц, государственных...
Обзор существующих решений icon Экспериментальная медицина и детская неврология обзор
Системный обзор вмешательств у детей с церебральным параличом: статус доказательности
Обзор существующих решений icon «Выполнение работ по развитию и оказание услуг по сопровождению Федерального...
Целью работы является анализ справочников фргу на соответствие следующим критериям: актуальность и полнота существующих справочных...
Обзор существующих решений icon Теоретические основы анализа и планирования разработки управленческих решений 5
Методы планирования, используемые при разработке и принятии управленческих решений в организации 9
Обзор существующих решений icon Обзор текущего состояния и особенности государственной инновационной политики
Периодический обзор инновационной деятельности стран Европы, Америки, Азии и Африки, СНГ
Обзор существующих решений icon Методические указания Ростов-на-Дону
Целью данного курса является формирование представления о процессе принятия решений, навыков анализа ситуации при принятии решений,...
Обзор существующих решений icon Экспериментальное народное самолетостроение 2 Глава Предварительный анализ и выбор решений 2
«летающих решений», некоего ковра-самолета «небесного катера» для отдыха и путешествий, не требующего летных удостоверений и сертификации....
Обзор существующих решений icon Марка Сергеева государственные и муниципальные библиотеки иркутской...
Г 72 ежегод аналит обзор / Иркут обл гос универс науч б-ка им. И. И. Молчанова-Сибирского
Обзор существующих решений icon Решение это выбор альтернативы
Чтобы оказать вам помощь в этом, ниже мы рассмотрим типы решений, принимаемых управляющими, используемые способы, научные методы...
Обзор существующих решений icon 2 Анализ выполнения решений международных документов/решений, принятых...
На Рис. 133 наглядно представлена оценка Азербайджанской республики с точки зрения реализации основных направлений Плана действий...
Обзор существующих решений icon Учебное пособие. М.: Издательство "Март", 2004. Предыдущая
Моделирование как метод теории принятия решений и анализ ряда конкретных моделей предмет четвертой части. Приводятся методы принятия...
Обзор существующих решений icon Рабочая программа учебной дисциплины б. 3 Методы принятия управленческих...
Будущий менеджер должен научиться правильно применять готовые компьютерные программы, хорошо разработанную технику анализа количественных...
Обзор существующих решений icon Инструкция по эксплуатации на английском языке
Когда то я уже писал обзор на проектор Unic uc40 и когда увидел BlitzWolf (он же unic uc46) то решил взять его на обзор, что бы посмотреть...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск