summaryrefslogtreecommitdiffstats
path: root/Samples/SensorBox/SensorBoxTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Samples/SensorBox/SensorBoxTest.cpp')
-rw-r--r--Samples/SensorBox/SensorBoxTest.cpp68
1 files changed, 36 insertions, 32 deletions
diff --git a/Samples/SensorBox/SensorBoxTest.cpp b/Samples/SensorBox/SensorBoxTest.cpp
index 7ca416f..bcf35ed 100644
--- a/Samples/SensorBox/SensorBoxTest.cpp
+++ b/Samples/SensorBox/SensorBoxTest.cpp
@@ -43,7 +43,7 @@ using namespace OVR::Render;
// Y - Up (colored red)
// Z - Back (Out from screen, colored blue)
// X - Right (green)
-// All cameras are looking at the origin.
+// All cameras are looking at the origin.
// Camera view types.
enum ViewType
@@ -64,11 +64,11 @@ class InputTestApp : public Application
Ptr<DeviceManager> pManager;
Ptr<HMDDevice> pHMD;
Ptr<SensorDevice> pSensor;
- Ptr<SensorDevice> pSensor2;
+ Ptr<SensorDevice> pSensor2;
SensorFusion SFusion;
SensorFusion SFusion2;
-
+
double LastUpdate;
ViewType CurrentView;
@@ -89,11 +89,11 @@ public:
InputTestApp();
~InputTestApp();
- virtual int OnStartup(int argc, const char** argv);
+ virtual int OnStartup(int argc, char** argv);
virtual void OnIdle();
virtual void OnMouseMove(int x, int y, int modifiers);
- virtual void OnKey(KeyCode key, int chr, bool down, int modifiers);
+ virtual void OnKey(OVR::KeyCode key, int chr, bool down, int modifiers);
};
InputTestApp::InputTestApp()
@@ -116,7 +116,7 @@ void UseCase()
Ptr<SensorDevice> pSensor = 0;
SensorFusion FusionResult;
-
+
// *** Initialization - Create the first available HMD Device
pManager = *DeviceManager::Create();
pHMD = *pManager->EnumerateDevices<HMDDevice>().CreateDevice();
@@ -127,7 +127,7 @@ void UseCase()
// Get DisplayDeviceName, ScreenWidth/Height, etc..
HMDInfo hmdInfo;
pHMD->GetDeviceInfo(&hmdInfo);
-
+
if (pSensor)
FusionResult.AttachToSensor(pSensor);
@@ -137,7 +137,7 @@ void UseCase()
// Create a matrix from quaternion,
// where elements [0][0] through [3][3] contain rotation.
- Matrix4f bodyFrameMatrix(q);
+ Matrix4f bodyFrameMatrix(q);
// Get Euler angles from quaternion, in specified axis rotation order.
float yaw, pitch, roll;
@@ -156,24 +156,24 @@ InputTestApp::~InputTestApp()
{
pSensor.Clear();
pManager.Clear();
-
+
}
-int InputTestApp::OnStartup(int argc, const char** argv)
+int InputTestApp::OnStartup(int argc, char** argv)
{
if (!pPlatform->SetupWindow(1200,800))
return 1;
-
+
pManager = *DeviceManager::Create();
-
+
// This initialization logic supports running two sensors at the same time.
-
+
DeviceEnumerator<SensorDevice> isensor = pManager->EnumerateDevices<SensorDevice>();
DeviceEnumerator<SensorDevice> oculusSensor;
DeviceEnumerator<SensorDevice> oculusSensor2;
-
+
while(isensor)
{
DeviceInfo di;
@@ -210,13 +210,13 @@ int InputTestApp::OnStartup(int argc, const char** argv)
oculusSensor.Clear();
oculusSensor2.Clear();
-
-
+
+
/*
DeviceHandle hHMD = pManager->EnumerateDevices<HMDDevice>();
HMDInfo hmdInfo;
if (hHMD)
- {
+ {
hHMD.GetDeviceInfo(&hmdInfo);
}
*/
@@ -241,25 +241,29 @@ int InputTestApp::OnStartup(int argc, const char** argv)
// Report relative mouse motion (not absolute position)
// pPlatform->SetMouseMode(Mouse_Relative);
+#ifdef OVR_OS_WIN32
const char* graphics = "d3d10";
+#else
+ const char* graphics = "GL";
+#endif
for (int i = 1; i < argc; i++)
if (!strcmp(argv[i], "-r") && i < argc-1)
graphics = argv[i+1];
pRender = pPlatform->SetupGraphics(OVR_DEFAULT_RENDER_DEVICE_SET, graphics,
RendererParams());
-
+
//WireframeFill = pRender->CreateSimpleFill(Fill::F_Wireframe);
-
+
// *** Rotating Box
-
+
pBox = *new Container;
- pBox->Add(Ptr<Model>(
+ pBox->Add(Ptr<Model>(
*Model::CreateAxisFaceColorBox(-2.0f, 2.0f, Color(0, 0xAA, 0), // x = green
-1.0f, 1.0f, Color(0xAA,0, 0), // y = red
- -1.0f, 1.0f, Color(0, 0, 0xAA)) )); // z = blue
+ -1.0f, 1.0f, Color(0, 0, 0xAA)) )); // z = blue
// Drop-down line from box, to make it easier to see differences in angle.
Ptr<Model> downLine = *new Model(Prim_Lines);
downLine->AddLine(Vertex(0.0f,-4.5f, 0.0f, 0xFFE0B0B0),
@@ -267,7 +271,7 @@ int InputTestApp::OnStartup(int argc, const char** argv)
pBox->Add(downLine);
Sc.World.Add(pBox);
-
+
// Secondary rotating coordinate object, if we have two values.
if (pSensor2)
{
@@ -302,7 +306,7 @@ int InputTestApp::OnStartup(int argc, const char** argv)
Vertex( 0.0f, 8.0f, 0.0f, 0xFFFF4040)); // Y - arrow
pAxes->AddLine(Vertex(-0.4f, 7.6f, 0.0f, 0xFFFF4040),
Vertex( 0.0f, 8.0f, 0.0f, 0xFFFF4040)); // Y
-
+
pAxes->AddLine(Vertex( 0.0f, 0.0f,-8.0f, 0xFF4040FF),
Vertex( 0.0f, 0.0f, 8.0f, 0xFF4040FF)); // Z
pAxes->AddLine(Vertex( 0.4f, 0.0f, 7.6f, 0xFF4040FF),
@@ -310,7 +314,7 @@ int InputTestApp::OnStartup(int argc, const char** argv)
pAxes->AddLine(Vertex(-0.4f, 0.0f, 7.6f, 0xFF4040FF),
Vertex( 0.0f, 0.0f, 8.0f, 0xFF4040FF)); // Z - arrow
Sc.World.Add(pAxes);
-
+
SetView(CurrentView);
@@ -339,7 +343,7 @@ void InputTestApp::SetView(ViewType type)
View = Matrix4f::LookAtRH(Vector3f(0.0f,-10.0f, 0.0f), // eye
Vector3f(0.0f, 0.0f, 0.0f), // at
Vector3f(0.0f, 0.0f, 1.0f));
-
+
break;
default:
break;
@@ -358,12 +362,12 @@ void InputTestApp::OnMouseMove(int x, int y, int modifiers)
static float CalcDownAngleDegrees(Quatf q)
{
- Vector3f downVector(0.0f, -1.0f, 0.0f);
+ Vector3f downVector(0.0f, -1.0f, 0.0f);
Vector3f val= q.Rotate(downVector);
return RadToDegree(downVector.Angle(val));
}
-void InputTestApp::OnKey(KeyCode key, int chr, bool down, int modifiers)
+void InputTestApp::OnKey(OVR::KeyCode key, int chr, bool down, int modifiers)
{
OVR_UNUSED2(chr, modifiers);
@@ -429,7 +433,7 @@ void InputTestApp::OnKey(KeyCode key, int chr, bool down, int modifiers)
LogText("Angle: %2.3f Secondary Sensor Angle: %2.3f\n",
CalcDownAngleDegrees(SFusion.GetOrientation()),
CalcDownAngleDegrees(SFusion2.GetOrientation()));
- }
+ }
}
break;
@@ -451,7 +455,7 @@ void InputTestApp::OnIdle()
double curtime = pPlatform->GetAppTime();
// float dt = float(LastUpdate - curtime);
LastUpdate = curtime;
-
+
if (pBox)
{
Quatf q = SFusion.GetOrientation();
@@ -461,7 +465,7 @@ void InputTestApp::OnIdle()
// Vector3f euler;
// SFusion.GetOrientation().GetEulerABC<Axis_Y, Axis_X, Axis_Z, Rotate_CCW, Handed_R>(&euler.y, &euler.x, &euler.z);
// Matrix4f mat = Matrix4f::RotationY(euler.y) * Matrix4f::RotationX(euler.x) * Matrix4f::RotationZ(euler.z);
- // pBox->SetMatrix(mat);
+ // pBox->SetMatrix(mat);
// Update titlebar every 20th of a second.
if ((curtime - LastTitleUpdate) > 0.05f)
@@ -496,7 +500,7 @@ void InputTestApp::OnIdle()
pRender->SetProjection(Proj);
pRender->SetDepthMode(1,1);
-
+
Sc.Render(pRender, View);
pRender->Present();