private void UpdateOptiTrackUI(object sender, OptiTrack.FrameReceivedEventArgs args) { positionChart.Update(args.BallPosition.ToArray()); Dispatcher.Invoke(() => { actualPositionX.Text = args.BallPosition[0].ToString("F3"); actualPositionY.Text = args.BallPosition[1].ToString("F3"); actualPositionZ.Text = args.BallPosition[2].ToString("F3"); }); }
private void UpdateRobot2UI(object sender, OptiTrack.FrameReceivedEventArgs args) { var robot2BasePosition = robot2Transformation.Convert(args.BallPosition); robot2PositionChart.Update(new double[] { robot2BasePosition[0], robot2BasePosition[1], robot2BasePosition[2] }); Dispatcher.Invoke(() => { robot2BaseActualPositionX.Text = robot2BasePosition[0].ToString("F3"); robot2BaseActualPositionY.Text = robot2BasePosition[1].ToString("F3"); robot2BaseActualPositionZ.Text = robot2BasePosition[2].ToString("F3"); }); }
private void ProcessFrame(FrameOfMocapData data, NatNetClientML client) { double frameDeltaTime = data.fTimestamp - frameTimestamp; frameTimestamp = data.fTimestamp; var receivedFrame = new InputFrame(data, frameDeltaTime); var args = new FrameReceivedEventArgs { ReceivedFrame = receivedFrame, PrevBallPosition = ballPosition }; ballPosition = receivedFrame.BallPosition; FrameReceived?.Invoke(this, args); }