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); }