|
8 | 8 | #include <chrono> |
9 | 9 | #include <stdio.h> |
10 | 10 | #include <winsock2.h> |
11 | | -#pragma comment (lib,"WSock32.Lib") |
| 11 | +#pragma comment (lib, "WSock32.Lib") |
12 | 12 |
|
13 | 13 | using namespace vr; |
14 | 14 |
|
@@ -67,6 +67,7 @@ static const char * const k_pch_Sample_DisplayFrequency_Float = "displayFrequenc |
67 | 67 | double t0, t1, t2, t3, t4, t5; |
68 | 68 | double qW, qX, qY, qZ; |
69 | 69 | double Yaw = 0, Pitch = 0, Roll = 0; |
| 70 | +double pX = 0, pY = 0, pZ = 0; |
70 | 71 | struct TOpenTrackPacket { |
71 | 72 | double x; |
72 | 73 | double y; |
@@ -107,6 +108,9 @@ void WinSockReadFunc() |
107 | 108 | Yaw = DegToRad(OpenTrackPacket.yaw); |
108 | 109 | Pitch = DegToRad(OpenTrackPacket.pitch); |
109 | 110 | Roll = DegToRad(OpenTrackPacket.roll); |
| 111 | + pX = OpenTrackPacket.x; |
| 112 | + pY = OpenTrackPacket.y; |
| 113 | + pZ = OpenTrackPacket.z; |
110 | 114 |
|
111 | 115 | //Convert yaw, pitch, roll to quaternion |
112 | 116 | t0 = cos(Yaw * 0.5); |
@@ -204,7 +208,7 @@ void CWatchdogDriver_Sample::Cleanup() |
204 | 208 |
|
205 | 209 | //Close UDP for OpenTrack |
206 | 210 | if (SocketActivated == true) { |
207 | | - SocketActivated=false; |
| 211 | + SocketActivated = false; |
208 | 212 | if (pSocketThread) { |
209 | 213 | pSocketThread->join(); |
210 | 214 | delete pSocketThread; |
@@ -471,6 +475,11 @@ class CSampleDeviceDriver : public vr::ITrackedDeviceServerDriver, public vr::IV |
471 | 475 | pose.qRotation.y = qY; |
472 | 476 | pose.qRotation.z = qZ; |
473 | 477 |
|
| 478 | + //Set position tracking |
| 479 | + pose.vecPosition[0] = pX * 0.01; |
| 480 | + pose.vecPosition[1] = pY * 0.01; |
| 481 | + pose.vecPosition[2] = pZ * 0.01; |
| 482 | + |
474 | 483 | return pose; |
475 | 484 | } |
476 | 485 |
|
|
0 commit comments