Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2017, 19:42   #1
k0shiki
 
Регистрация: 29.01.2016
Сообщений: 7
По умолчанию Смена типа переменной

Доброго времени суток, форумчане! Имеется проблема: разбираю Oculus SDK а именно приложенные к нему примеры. Забегая наперед скажу, что в основном писал на C# и очень узконаправленные утилитки, поэтому и нуждаюсь в помощи в этой реализации на C++. В фрагменте кода, там где XMMatrixSet судя по всему идет оперирование с позицией Oculus Rift. Каким образом я могу сохранять эти значения в переменные типа double/float ?

Код:
#define STAGE4_ConfigureVR ovrEyeRenderDesc eyeRenderDesc[2];                                                                                               \
	eyeRenderDesc[0] = ovr_GetRenderDesc(session, ovrEye_Left, HMDInfo.DefaultEyeFov[0]);                                            \
	eyeRenderDesc[1] = ovr_GetRenderDesc(session, ovrEye_Right, HMDInfo.DefaultEyeFov[1]);                                           \

#define STAGE4_GetEyePoses ovrPosef EyeRenderPose[2];                                                                                                    \
	ovrPosef HmdToEyePose[2] = { eyeRenderDesc[0].HmdToEyePose, eyeRenderDesc[1].HmdToEyePose };                   \
	double           ftiming = ovr_GetPredictedDisplayTime(session, 0);                                                              \
	ovrTrackingState hmdState = ovr_GetTrackingState(session, ftiming, ovrTrue);                                                     \
	ovr_CalcEyePoses(hmdState.HeadPose.ThePose, HmdToEyePose, EyeRenderPose);

#define STAGE4_GetMatrices XMVECTOR eyeQuat = XMVectorSet(EyeRenderPose[eye].Orientation.x, EyeRenderPose[eye].Orientation.y,								  \
	EyeRenderPose[eye].Orientation.z, EyeRenderPose[eye].Orientation.w);								  \
	XMVECTOR eyePos = XMVectorSet(EyeRenderPose[eye].Position.x, EyeRenderPose[eye].Position.y, EyeRenderPose[eye].Position.z, 0);	  \
	XMVECTOR CombinedPos = XMVectorAdd(mainCam.Pos, XMVector3Rotate(eyePos, mainCam.Rot));											  \
	Camera finalCam(CombinedPos, (XMQuaternionMultiply(eyeQuat, mainCam.Rot)));													  \
	XMMATRIX view = finalCam.GetViewMatrix();																						  \
	ovrMatrix4f p = ovrMatrix4f_Projection(eyeRenderDesc[eye].Fov, 0.2f, 1000.0f, ovrProjection_None);						          \
	XMMATRIX proj = XMMatrixSet(p.M[0][0], p.M[1][0], p.M[2][0], p.M[3][0], \
	p.M[0][1], p.M[1][1], p.M[2][1], p.M[3][1], \
	p.M[0][2], p.M[1][2], p.M[2][2], p.M[3][2], \
	p.M[0][3], p.M[1][3], p.M[2][3], p.M[3][3]);
P.S вопрос скорее к знанию синтаксиса C++, заранее благодарю за помощь
k0shiki вне форума Ответить с цитированием
Старый 29.11.2017, 20:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Какие значения вы хотите сохранять в double/float? Позицию? они итак в них... Матрицы? Тогда вам определенно стоит почитать, что такое матрицы вида/проекции и т.д. Скорее всего передумаете.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access. Смена типа данных! morisbrother Microsoft Office Access 1 27.06.2016 17:17
Смена типа поля в Fields Editor Sanuch89 БД в Delphi 5 19.08.2013 12:31
Возможно ли в массив типа char записать первым элементом значение переменной типа float? Green Gin Общие вопросы C/C++ 2 05.12.2011 01:50
Смена глобальной переменной другой программы W0LF Помощь студентам 5 01.02.2010 09:03
Смена типа данных?? Agrophena Паскаль, Turbo Pascal, PascalABC.NET 4 17.11.2007 16:29