private void GazePoint(object sender, GazePointEventArgs gazePointEventArgs)
        {
            headData = wimuDevice.WimuData;
            headData.timeStampMiliSec = (double)PseudoTimeStampMiliSecImu++;


            BeginInvoke(new Action(() =>
            {
                var handle = Handle;
                if (handle == null)
                {
                    // window not created yet. never mind.
                    return;
                }

                _trackStatus.OnGazeData(gazePointEventArgs.GazeDataReceived);
                progressBar4Distance.Value = eyetrackingFunctions.distanceBetweenDev2User(gazePointEventArgs.GazeDataReceived);
                Invalidate();
                headData2Chart(headData);
            }));



            if (AppControlCursor)
            {
                PointD deltaCursor = head2deltaCursor.GetDeltaLocationFromHEADTracking();
                //PointD deltaCursor = new PointD(0, 0);
                PointD gazeWeighted           = eyetrackingFunctions.WeighGaze(gazePointEventArgs.GazeDataReceived); //valores normalizados
                PointD gazeFilteredNormalized = gazeFilter.filterGazeData(gazeWeighted);                             //valores normalizados
                PointD gazeFilteredPixels     = eyetrackingFunctions.normalized2Pixels(gazeFilteredNormalized);
                Point  cursorLocation         = (Point)fusionador.getCursorLocation(true, deltaCursor, gazeFilteredPixels);
                CursorControl.locateCursor(cursorLocation);
            }
        }
 private void headData2Chart(WimuData headData)
 {
     point2Chart(new PointD(headData.timeStampMiliSec, headData.yaw), chartYaw);
     point2Chart(new PointD(headData.timeStampMiliSec, headData.pitch), chartPitch);
     point2Chart(new PointD(headData.timeStampMiliSec, headData.roll), chartRoll);
 }