private void OnPipelineChanged(ImagePipeline pipe, PropertyChangedEventArgs e, int id) { switch (e.PropertyName) { case nameof(ImagePipeline.Image): currentView?.UpdateImage(id, pipe.Image); break; } }
private void DisplayOnPropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case nameof(DisplayModel.ActiveView): try { currentView.Dispose(); currentView = null; switch (models.Display.ActiveView) { case DisplayModel.ViewMode.Single: if (models.Images.ImageType == typeof(Texture3D)) { currentView = new Single3DView(models, viewData); } else { currentView = new SingleTextureView(models, viewData); } break; case DisplayModel.ViewMode.Polar: currentView = new PolarTextureView(models, viewData); break; case DisplayModel.ViewMode.CubeMap: currentView = new CubeTextureView(models, viewData); break; case DisplayModel.ViewMode.CubeCrossView: currentView = new CubeCrossTextureView(models, viewData); break; case DisplayModel.ViewMode.RayCasting: currentView = new RayCastingView(models, viewData); break; case DisplayModel.ViewMode.ShearWarp: currentView = new ShearWarpView(models, viewData); break; default: currentView = new EmptyView(); break; } for (int i = 0; i < models.NumPipelines; ++i) { if (models.Pipelines[i].Image != null) { currentView.UpdateImage(i, models.Pipelines[i].Image); } } } catch (Exception err) { models.Window.ShowErrorDialog(err.Message); currentView = new EmptyView(); } break; } }
private void DisplayOnPropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case nameof(DisplayModel.ActiveMipmap): // recompute texel position DispatchRecomputeTexelColor(); break; case nameof(DisplayModel.ExtendedViewData): if (models.Display.ExtendedViewData == null) { return; } models.Display.ExtendedViewData.ForceTexelRecompute += (o, ev) => DispatchRecomputeTexelColor(); break; case nameof(DisplayModel.ActiveView): try { currentView.Dispose(); currentView = null; switch (models.Display.ActiveView) { case DisplayModel.ViewMode.Single: if (models.Images.ImageType == typeof(Texture3D)) { currentView = new Single3DView(models); } else { currentView = new SingleTextureView(models); } break; case DisplayModel.ViewMode.Polar: currentView = new PolarTextureView(models); break; case DisplayModel.ViewMode.CubeMap: currentView = new CubeTextureView(models); break; case DisplayModel.ViewMode.CubeCrossView: currentView = new CubeCrossTextureView(models); break; case DisplayModel.ViewMode.Volume: currentView = new VolumeView(models); break; case DisplayModel.ViewMode.ShearWarp: Debug.Assert(false); //currentView = new ShearWarpView(models); break; default: currentView = new EmptyView(); break; } for (int i = 0; i < models.NumPipelines; ++i) { if (models.Pipelines[i].Image != null) { currentView.UpdateImage(i, models.Pipelines[i].Image); } } } catch (Exception err) { models.Window.ShowErrorDialog(err); currentView = new EmptyView(); } break; } }