using Hi.Disp; using Hi.Licenses; using System; using System.Windows; using System.Windows.Media; namespace Hi.Wpf.Disp { /// /// Window for 3D rendering. /// public class RenderingWindow : Window, IGetDispEngine { /// /// Gets the rendering canvas control used for displaying 3D content. /// public RenderingCanvas RenderingCanvas => Content as RenderingCanvas; /// /// Ctor. /// public RenderingWindow() { Title = nameof(RenderingWindow); Height = 450; Width = 800; StateChanged += RenderingWind_StateChanged; Content = new RenderingCanvas() { BorderThickness = new Thickness(1), BorderBrush = Brushes.Black }; } private void RenderingWind_StateChanged(object sender, EventArgs e) { RenderingCanvas.DispEngine.IsVisible = WindowState != WindowState.Minimized; } /// public DispEngine GetDispEngine() => RenderingCanvas.DispEngine; /// /// Gets or sets the current displayable 3D object. /// When setting a new displayee, the view will be reset to home position if no previous displayee was set. /// public IDisplayee Displayee { get => GetDispEngine().Displayee; set { var preDisplayee = GetDispEngine().Displayee; GetDispEngine().Displayee = value; if (preDisplayee == null) RenderingCanvas.DispEngine.SetViewToHomeView(); } } } }