Hi.Sample.Wpf/Disp/DemoUtil.cs

45 lines
1.6 KiB
C#

using Hi.Disp;
using Hi.Licenses;
using Hi.MongoUtils;
using Hi.Wpf.Disp;
using System.Windows;
namespace Sample.Disp
{
/// <summary>
/// Provides utility functions for running HiAPI display examples in a WPF environment.
/// Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering.
/// Handles common initialization and cleanup tasks for visualization examples.
/// </summary>
/// <remarks>
/// ### Source Code
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoUtil.cs)]
/// </remarks>
public static class DemoUtil
{
/// <summary>
/// Creates and runs a WPF application with a RenderingWindow to display 3D content.
/// Handles proper initialization and cleanup of HiAPI resources including MongoDB server,
/// display engine, and licensing.
/// </summary>
/// <param name="title">The title for the application window</param>
/// <param name="displayee">The object that implements IDisplayee to be rendered</param>
public static void RunApplication(string title, IDisplayee displayee)
{
Application app = new Application();
app.Exit += (o, e) =>
{
if(MongoServer.IsDefaultInit)
MongoServer.Default.Dispose();
DispEngine.FinishDisp();
License.LogOutAll();
};
app.Run(new RenderingWindow()
{
Title = title,
Displayee = displayee
});
}
}
}