Beispiel #1
0
        public void addNewGaze(float timeDelay, Vector3 gazePoint, int w)
        {
            TimePoint tp = new TimePoint(now() - timeDelay, gazePoint);

            trajectory.Add(tp);
            positionWriter.WriteLine(tp.timestamp.TotalSeconds + ";" + gazePoint.x + ";" + gazePoint.y);
            cleanUpTraj(w);
        }
Beispiel #2
0
        /// <summary>
        /// Interpolates between the last recorded position and the current position to determine the position at a given time
        /// </summary>
        /// <param name="timeDelay">The time delay it took to transfer the gaze data</param>
        public void addNewPosition(float timeDelay, int w)
        {
            if (trajectory.Count > 0)
            {
                double    n     = now();
                TimePoint _last = trajectory[trajectory.Count - 1];
                try
                {
                    float   scale         = (float)((n - timeDelay - _last.timestamp.TotalSeconds) / (n - _last.timestamp.TotalSeconds));
                    Vector3 _correctedPos = (_last.pos + Vector3.Scale(_current - _last.pos, new Vector3(scale, scale, scale)));
                    if (copyinprogress)
                    {
                        tpBuffer.Enqueue(new TimePoint(n - timeDelay, _correctedPos));
                        // Debug.Log("Objects Enqueued " + tpBuffer.Count);
                    }

                    else
                    {
                        while (tpBuffer.Count > 0)
                        {
                            trajectory.Add(tpBuffer.Dequeue());
                        }
                        trajectory.Add(new TimePoint(n - timeDelay, _correctedPos));
                        cleanUpTraj(w);
                    }
                } catch (Exception e)
                {
                    Debug.LogError("timeDelay:" + timeDelay + " _last:" + _last.timestamp.TotalSeconds + " n: " + n);
                }
            }
            else
            {
                // in case trajectory is empty
                addNewPosition(w);
            }
        }