Pioneer
Headtracker.h
Go to the documentation of this file.
1 // Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #pragma once
5 
6 #include <cstdint>
7 
8 typedef int64_t NanoSocket;
9 
11 public:
12  // opentrack UDP protocol
13  struct State {
14  // XYZ translation coordinates in meters
15  double x, y, z;
16  // yaw pitch roll in degrees
17  double yaw, pitch, roll;
18  };
19 
20 public:
23 
24  bool Connect(const char *host, uint16_t port);
25  void Disconnect();
26 
27  const State *GetHeadState() const;
28 
29  void Update();
30 
31 private:
32  State m_trackerState;
33  NanoSocket m_trackerSocket;
34 
35  bool m_connected;
36 };
int64_t NanoSocket
Definition: Headtracker.h:8
Definition: Headtracker.h:10
HeadtrackingManager()
Definition: Headtracker.cpp:10
const State * GetHeadState() const
Definition: Headtracker.cpp:73
~HeadtrackingManager()
Definition: Headtracker.cpp:16
bool Connect(const char *host, uint16_t port)
Definition: Headtracker.cpp:22
void Disconnect()
Definition: Headtracker.cpp:65
void Update()
Definition: Headtracker.cpp:78
Definition: Headtracker.h:13
double x
Definition: Headtracker.h:15
double roll
Definition: Headtracker.h:17
double pitch
Definition: Headtracker.h:17
double y
Definition: Headtracker.h:15
double z
Definition: Headtracker.h:15
double yaw
Definition: Headtracker.h:17