Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 static extern MLApiResult MLRaycastRequest(ulong tracker_handle, ref MLRaycastQuery request, out ulong out_handle);