56 SpacenavWrapper::Event SpacenavWrapper::waitEvent() { |
56 SpacenavWrapper::Event SpacenavWrapper::waitEvent() { |
57 SpacenavWrapper::Event e; |
57 SpacenavWrapper::Event e; |
58 spnav_event event; |
58 spnav_event event; |
59 |
59 |
60 if (spnav_wait_event(&event)) { |
60 if (spnav_wait_event(&event)) { |
|
61 e.type = event.type == SPNAV_EVENT_MOTION ? SpacenavWrapper::Event::Type::MOTION : SpacenavWrapper::Event::Type::BUTTON; |
61 |
62 |
62 // TODO: copy fields |
|
63 |
|
64 |
|
65 // TODO: remove logging |
|
66 if (event.type == SPNAV_EVENT_MOTION) { |
63 if (event.type == SPNAV_EVENT_MOTION) { |
67 std::wcout << L"xxx motion event: t(" << event.motion.x << L", " << event.motion.y << L", " << event.motion.z << L") "; |
64 e.motion.x = event.motion.x; |
68 std::wcout << L"r(" << event.motion.rx << L", " << event.motion.ry << L", " << event.motion.rz << L")" << std::endl; |
65 e.motion.y = event.motion.y; |
|
66 e.motion.z = event.motion.z; |
|
67 e.motion.rx = event.motion.rx; |
|
68 e.motion.ry = event.motion.ry; |
|
69 e.motion.rz = event.motion.rz; |
|
70 e.motion.type = event.motion.type; |
|
71 e.motion.period = event.motion.period; |
69 } else { /* SPNAV_EVENT_BUTTON */ |
72 } else { /* SPNAV_EVENT_BUTTON */ |
70 std::wcout << L"xxx button " << (event.button.press ? "press" : "release") << L" event b(" << event.button.bnum << L")" << std::endl; |
73 e.button.number = event.button.bnum; |
|
74 e.button.pressed = event.button.press; |
71 } |
75 } |
72 |
|
73 |
76 |
74 return e; |
77 return e; |
75 } else { |
78 } else { |
76 // TODO: throw exception |
79 // TODO: throw exception |
77 return e; |
80 return e; |