Esempio n. 1
0
        public void GetFrameData(int frame, bool lastFrame)
        {
            //Vector3 position = DeviationRay();
            //Vector3 position = motionAnchor.transform.position;
            Vector3 position = PosByMarker();

            ScreenPosData data = VPToScreenPoint(cam: arCamera, cam_w: camera_width, cam_h: camera_height, target: position, f: frame);
            string        json = JsonUtility.ToJson(data);

            WriteData(json, lastFrame);
        }
Esempio n. 2
0
        /// <summary>
        /// returns a vector with normalized x, y values at a given frame:
        /// (0, 0) -> bottom left
        /// (1, 1) -> top right
        /// z = distance to camera
        /// </summary>
        /// <param name="cam"></param> camera used for tracking
        /// <param name="cam_w"></param> camera pixel width
        /// <param name="cam_h"></param> camera pixel height
        /// <param name="pos"></param> vector for screen pos calc
        /// <param name="f"></param> frame
        /// <returns></returns>
        public static ScreenPosData VPToScreenPoint(Camera cam, float cam_w, float cam_h, Vector3 target, int f)
        {
            ScreenPosData data  = new ScreenPosData();
            var           point = cam.WorldToScreenPoint(target);

            //normalized vector
            var tmpScreenPos = new Vector3(point.x / cam_w, point.y / cam_h, point.z);

            data.frame     = f;
            data.screenPos = tmpScreenPos;
            data.objPos    = target;

            return(data);
        }