ILNumerics.Community.SceneEditor.WinForms
7.3.4.296
dotnet add package ILNumerics.Community.SceneEditor.WinForms --version 7.3.4.296
NuGet\Install-Package ILNumerics.Community.SceneEditor.WinForms -Version 7.3.4.296
<PackageReference Include="ILNumerics.Community.SceneEditor.WinForms" Version="7.3.4.296" />
<PackageVersion Include="ILNumerics.Community.SceneEditor.WinForms" Version="7.3.4.296" />
<PackageReference Include="ILNumerics.Community.SceneEditor.WinForms" />
paket add ILNumerics.Community.SceneEditor.WinForms --version 7.3.4.296
#r "nuget: ILNumerics.Community.SceneEditor.WinForms, 7.3.4.296"
#:package ILNumerics.Community.SceneEditor.WinForms@7.3.4.296
#addin nuget:?package=ILNumerics.Community.SceneEditor.WinForms&version=7.3.4.296
#tool nuget:?package=ILNumerics.Community.SceneEditor.WinForms&version=7.3.4.296
ILNumerics.Community.SceneEditor
Properties editor for ILNumerics (http://ilnumerics.net/) scene graphs and plot cubes.
Available for Avalonia, WinForms and MAUI, with .NET 10 support.
How to use
Attach the editor to your panel instance using the namespace for your UI framework:
using ILNumerics.Community.SceneEditor.Avalonia;
// Or ILNumerics.Community.SceneEditor.WinForms / .MAUI
var editor = ilPanel.AttachEditor();
Open the editor dialog by double-clicking an object in the graph/plot. For example, click on
- the Axes X/Y/Z for axis properties
- a Surface for surface properties
- a LinePlot line for line properties
- etc.
The editor provides:
- Quick access to axes and plot objects, alongside the scene tree
- Favorites for frequently used properties, saved between sessions and configurable per object type
- Font and color editing, including font styles, opacity and inherited colors
- Vector and matrix editing with individual components and compact matrix rows
- Collapsible property groups to keep complex objects easy to browse
- Plot Browser to show or hide individual plots
Applications can customize initial favorites, choose their persistence location or storage backend, and set whether nested property groups start expanded. These options are available through EditorOptions on all three platforms.
Drawing2 support is included: bar plots, box plots, candlesticks, error bars, filled and stacked areas, splines, and additional surface plots are recognized automatically.
Context menu (right click) provides additional options, including resetting the view and aligning it with a principal axis.
Public Methods
There are a few public methods on the panel editor:
ShowEditor()opens the panel editor to interactively change propertiesShowPlotBrowser()opens the plot browserUpdate()refreshes the editor after changes to the scene structure
De/Serialize scene state
Scene state refers to the properties of all objects in the scene graph. It does NOT (de)serialize the actual scene graph, i.e. it does NOT restore the graph on deserialization. The scene state captures colors, line styles, visibility, fonts and font sizes, etc., all the properties defining the visual appearance of the scene. The primary use case is to save and re-apply or transfer the style to a new scene graph. To some degree the serialization is fuzzy, i.e. it still applies if objects are removed or added to the original scene (new objects obviously won't receive any styling).
Serialize settings from the current scene:
using ILNumerics.Community.SceneEditor.Serialization;
XmlSerializer.SerializeToFile(editor, filePath);
Deserialize settings to the current scene:
XmlDeserializer.DeserializeFromFile(editor, filePath);
PropertyChanged notifications
You can monitor for changes of the current scene's state by subscribing to the PropertyChanged event of the panel editor:
editor.PropertyChanged += myChangeHandler;
PlotCube menu
Right-click a plot cube to open its properties, reset its view, align with the X–Y, X–Z or Y–Z plane, or open the Plot Browser. Axis alignment is grouped in a submenu and is available for 3D plots.
Applications can enable or disable the built-in entries:
editor.ContextMenuOptions.ShowProperties = true;
editor.ContextMenuOptions.ShowResetView = true;
editor.ContextMenuOptions.ShowAlignView = true;
editor.ContextMenuOptions.ShowPlotBrowser = true;
To customize a PlotCube menu, obtain its wrapper:
using System.Linq;
using ILNumerics.Community.SceneEditor.Drawing.Plotting;
foreach (var cube in editor.Wrappers.OfType<PlotCubeWrapper>())
{
cube.ContextMenu.AddSeparator();
cube.ContextMenu.Add("Click Me", "my-action", () => { /* do something */ });
}
Disclaimer
SceneEditor is under active development. Support for custom scene types can be added through the panel editor's WrapperMap.
License
SceneEditor is licensed under the terms of the MIT license (http://opensource.org/licenses/MIT, see LICENSE.txt).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- ILNumerics.Community.SceneEditor (>= 7.3.4.296)
- ILNumerics.Drawing (>= 7.4.62)
- ILNumerics.Drawing.Platforms (>= 7.4.62)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.