private Task DoExport(object o) { return(Task.Run(async() => { System.Windows.Forms.SaveFileDialog saveFileDialog = null; bool save = false; Parent.SyncContext.Send(c => { saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.Filter = "Matlab (*.mat) | *.mat"; save = saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK; }, null); if (save) { MetroDialogSettings settings = new MetroDialogSettings() { AnimateShow = false, AnimateHide = false }; var controller = await Parent.DialogCoordinator.ShowProgressAsync(Parent, "Please wait...", "Export data to Matlab!", settings: Parent.MetroDialogSettings); SlamModel3D.ExportToMatlab(saveFileDialog.FileName); controller.SetCancelable(false); await controller.CloseAsync(); } })); }
public void Fired(IOProxy proxy, List <AbstractProxyEventData> eventData) { SlamMapEventData slamMapEvent = (SlamMapEventData)eventData.FirstOrDefault(c => c is SlamMapEventData); SlamStatusEventData slamStatusEvent = (SlamStatusEventData)eventData.FirstOrDefault(c => c is SlamStatusEventData); if (slamMapEvent != null) { if (slamMapEvent.PublishType == SlamPublishType.Frame) { SlamModel3D.AddNewFrame(slamMapEvent.Frame); _FPSCounter.CountFrame(); } else if (slamMapEvent.PublishType == SlamPublishType.KeyframeWithPoints) { SlamModel3D.AddNewKeyFrame(slamMapEvent.KeyFrame); } else if (slamMapEvent.PublishType == SlamPublishType.Reset) { SlamModel3D.Reset(); } } if (slamStatusEvent != null) { Parent.SyncContext.Post(o => { Status = slamStatusEvent.Status; }, null); } }
public VisualisationViewModel(MainViewModel parent) : base(parent) { _SlamModel3D = new SlamModel3D(Parent.SyncContext); Parent.IOProxy.Subscribe(this, ProxyEventType.SlamMapEvent); _Timer = new Timer(300); _Timer.Elapsed += _Timer_Elapsed; _Timer.Start(); Parent.IOProxy.Subscribe(this, ProxyEventType.SlamStatusEvent); }
private void CreateViewport() { _SyncContext.Send(d => { _SlamModel3D = new SlamModel3D(_SyncContext, false); _Viewport3d = new HelixViewport3D(); _Viewport3d.Background = System.Windows.Media.Brushes.White; _Viewport3d.Camera = new PerspectiveCamera(new Point3D(0, 1, 0.3), new Vector3D(0, -1, -0.3), new Vector3D(0, 0, 1), 45); _Viewport3d.Children.Add(new DefaultLights()); _Viewport3d.Children.Add(new CoordinateSystemVisual3D() { ArrowLengths = 0.1 }); _ModelVisual3d = new ModelVisual3D(); _Viewport3d.Children.Add(_ModelVisual3d); _CameraPosition = new CoordinateSystemVisual3D(); _CameraPosition.ArrowLengths = 0.1; _Viewport3d.Children.Add(_CameraPosition); _TrajectoryKeyFrame = new LinesVisual3D(); _TrajectoryKeyFrame.Color = System.Windows.Media.Colors.Gold; _TrajectoryKeyFrame.Thickness = 3; _Viewport3d.Children.Add(_TrajectoryKeyFrame); _TrajectoryFrame = new LinesVisual3D(); _TrajectoryFrame.Color = System.Windows.Media.Colors.OrangeRed; _TrajectoryFrame.Thickness = 2; _Viewport3d.Children.Add(_TrajectoryFrame); }, null); }