| 363 | } |
| 364 | |
| 365 | bool MobileVRInterface::initialize() { |
| 366 | XRServer *xr_server = XRServer::get_singleton(); |
| 367 | ERR_FAIL_NULL_V(xr_server, false); |
| 368 | |
| 369 | if (!initialized) { |
| 370 | // reset our sensor data |
| 371 | mag_count = 0; |
| 372 | has_gyro = false; |
| 373 | sensor_first = true; |
| 374 | mag_next_min = Vector3(10000, 10000, 10000); |
| 375 | mag_next_max = Vector3(-10000, -10000, -10000); |
| 376 | mag_current_min = Vector3(0, 0, 0); |
| 377 | mag_current_max = Vector3(0, 0, 0); |
| 378 | head_transform.basis = Basis(); |
| 379 | head_transform.origin = Vector3(0.0, eye_height, 0.0); |
| 380 | |
| 381 | // we must create a tracker for our head |
| 382 | head.instantiate(); |
| 383 | head->set_tracker_type(XRServer::TRACKER_HEAD); |
| 384 | head->set_tracker_name("head"); |
| 385 | head->set_tracker_desc("Players head"); |
| 386 | xr_server->add_tracker(head); |
| 387 | |
| 388 | // make this our primary interface |
| 389 | xr_server->set_primary_interface(this); |
| 390 | |
| 391 | last_ticks = OS::get_singleton()->get_ticks_usec(); |
| 392 | |
| 393 | initialized = true; |
| 394 | }; |
| 395 | |
| 396 | return true; |
| 397 | } |
| 398 | |
| 399 | void MobileVRInterface::uninitialize() { |
| 400 | if (initialized) { |
nothing calls this directly
no test coverage detected