src/SpacenavWrapper.cpp
branchv_0
changeset 6 49560660d230
parent 4 1383ad1c4f57
child 9 d3716f03efcd
equal deleted inserted replaced
5:6ba51911d539 6:49560660d230
    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;