internal AsyncRaycastResult(ulong trackerHandle, RaycastQuery query) { pose = Pose.identity; confidence = 0f; // Translate the query to an MLRaycastQuery var mlQuery = new MLRaycastQuery { position = FlipHandedness(query.ray.origin), direction = FlipHandedness(query.ray.direction), up_vector = query.up.normalized, width = (uint)query.width, height = (uint)query.height, horizontal_fov_degrees = query.horizontalFov, collide_with_unobserved = query.collideWithUnobserved }; var apiResult = MLRaycastRequest(trackerHandle, ref mlQuery, out m_RequestHandle); if (apiResult == MLApiResult.Ok) { m_State = null; m_TrackerHandle = trackerHandle; } else { m_State = apiResult.ToRaycastResultState(); m_TrackerHandle = k_InvalidHandle; } }
static extern MLApiResult MLRaycastRequest(ulong tracker_handle, ref MLRaycastQuery request, out ulong out_handle);