### Access Guides Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GuidesAdorner.html Gets or sets the collection of guide lines. ```csharp public IReadOnlyList? Guides { get; set; }__ ``` -------------------------------- ### Get Guides Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GuidesAdorner.html Accesses the read-only styled property that holds a list of guide lines. ```csharp public static readonly StyledProperty?> GuidesProperty__ ``` -------------------------------- ### RectProperty Example Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.SelectedAdorner.html Example of a StyledProperty for Rect. ```APIDOC ## RectProperty ### Description Represents a styled property of type Rect. ### Declaration ```csharp public static readonly StyledProperty RectProperty__ ``` ``` -------------------------------- ### Install NodeEditorAvalonia Packages Source: https://wieslawsoltes.github.io/NodeEditor/articles/getting-started.html Install the necessary NodeEditorAvalonia packages using the .NET CLI. Include Model and Mvvm packages for custom models and MVVM support. ```bash dotnet add package NodeEditorAvalonia dotnet add package NodeEditorAvalonia.Model dotnet add package NodeEditorAvalonia.Mvvm ``` -------------------------------- ### Guide and Snap Tolerance Properties Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.DrawingNodeProperties.html Properties for controlling guide lines and snap tolerance. ```APIDOC ## Properties ### EnableGuides Gets or sets a value indicating whether guide lines are enabled. - **Type**: `bool` ### GuideSnapTolerance Gets or sets the tolerance for snapping to guide lines. - **Type**: `double` ``` -------------------------------- ### ConnectionValidationContext Start Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectionValidationContext.html Gets the start pin of the connection being validated. This property represents the source pin for the connection. ```csharp public IPin Start { get; } ``` -------------------------------- ### Get Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicComponentLibrary.html Retrieves a specific LogicComponentDefinition by its identifier. ```csharp public LogicComponentDefinition? Get(string id)__ ``` -------------------------------- ### StartPoint Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Connector.html Gets or sets the start point of the connector. This property is backed by the StartPointProperty dependency property. ```csharp public Point StartPoint { get; set; }__ ``` -------------------------------- ### GuideLine Properties Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GuideLine.html Accessors for the start and end points of the GuideLine. ```csharp public Point End { get; }__ ``` ```csharp public Point Start { get; }__ ``` -------------------------------- ### GuideLine Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GuideLine.html Initializes a new instance of the GuideLine struct with specified start and end points. ```csharp public GuideLine(Point start, Point end)__ ``` -------------------------------- ### Samples Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSignal.html Gets the collection of LogicWaveformSample objects associated with this signal. ```csharp public ObservableCollection Samples { get; } ``` -------------------------------- ### Add NodeEditorAvalonia Package Source: https://wieslawsoltes.github.io/NodeEditor/index.html Install the NodeEditorAvalonia package using the .NET CLI. ```bash dotnet add package NodeEditorAvalonia ``` -------------------------------- ### LogicWaveformSample Display Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSample.html Gets the display string for the waveform sample. This property is read-only. ```csharp public string Display { get; } ``` -------------------------------- ### LogicComponentLibrary.Definitions Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicComponentLibrary.html Gets a read-only collection of logic component definitions. ```APIDOC ## LogicComponentLibrary.Definitions Property ### Description Gets a read-only collection of logic component definitions. ### Method GET ### Endpoint N/A ### Parameters None ### Request Body None ### Response #### Success Response (200) - **Definitions** (IReadOnlyCollection) - A read-only collection of logic component definitions. ### Response Example { "Definitions": [ { "id": "component1", "name": "Example Component", "description": "This is an example component." } ] } ``` -------------------------------- ### ConnectionRejectedEventArgs Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectionRejectedEventArgs.html Initializes a new instance of the class with the specified start and end pins. ```csharp public ConnectionRejectedEventArgs(IPin start, IPin end) ``` -------------------------------- ### EnableGuidesProperty Field Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.DrawingNodeProperties.html Defines whether guides are enabled in the UI. This is a StyledProperty of type bool. ```csharp public static readonly StyledProperty EnableGuidesProperty__ ``` -------------------------------- ### Run NodeEditor.Desktop Sample Source: https://wieslawsoltes.github.io/NodeEditor/articles/samples.html Executes the base editor desktop sample application. ```bash dotnet run --project samples/NodeEditor.Desktop/NodeEditor.Desktop.csproj -c Release ``` -------------------------------- ### Run NodeEditor.Logic.Desktop Sample Source: https://wieslawsoltes.github.io/NodeEditor/articles/samples.html Executes the digital logic editor and simulator sample application. ```bash dotnet run --project samples/NodeEditor.Logic.Desktop/NodeEditor.Logic.Desktop.csproj -c Release ``` -------------------------------- ### StartPointProperty Field Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Connector.html Defines the dependency property for the connector's start point. Use this property to get or set the Point representing the start of the connector. ```csharp public static readonly StyledProperty StartPointProperty__ ``` -------------------------------- ### LogicComponentDefinition Outputs Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Models.LogicComponentDefinition.html Gets the list of output names for the logic component. ```csharp public IReadOnlyList Outputs { get; } ``` -------------------------------- ### LogicComponentLibrary Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicComponentLibrary.html Initializes a new instance of the LogicComponentLibrary class. ```csharp public LogicComponentLibrary()__ ``` -------------------------------- ### LogicComponentLibrary Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicComponentLibrary.html Initializes a new instance of the LogicComponentLibrary class. ```APIDOC ## LogicComponentLibrary() ### Description Initializes a new instance of the LogicComponentLibrary class. ### Method Constructor ### Endpoint N/A ### Parameters None ### Request Body None ### Response None ``` -------------------------------- ### Connector Start Changed Event Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.ConnectorViewModel.html This event is triggered when the starting point of a connector is changed. ```APIDOC ## Connector Start Changed Event ### Description This event is triggered when the starting point of a connector is changed. ### Event Type EventHandler ``` -------------------------------- ### GuidesProperty Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GuidesAdorner.html Documentation for the GuidesProperty field. ```APIDOC ## Fields ### GuidesProperty ``` public static readonly StyledProperty?> GuidesProperty ``` #### Description Represents a property that holds a read-only list of guide lines. ``` -------------------------------- ### Get TopLeft Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.SelectionAdorner.html Represents the top-left corner of a point. Use this property to get or set the coordinates. ```csharp public Point TopLeft { get; set; } ``` -------------------------------- ### Get BottomRight Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.SelectionAdorner.html Represents the bottom-right corner of a point. Use this property to get or set the coordinates. ```csharp public Point BottomRight { get; set; } ``` -------------------------------- ### Add Pins to NodeViewModel Source: https://wieslawsoltes.github.io/NodeEditor/articles/nodes-and-pins.html Demonstrates how to create a NodeViewModel and add input and output pins using the AddPin extension method. Ensure the NodeViewModel is initialized with necessary properties like Name, X, Y, Width, and Height. ```csharp var node = new NodeViewModel { Name = "Example", X = 100, Y = 100, Width = 180, Height = 100 }; node.AddPin(x: 0, y: 30, width: 10, height: 10, alignment: PinAlignment.Left, name: "In"); node.AddPin(x: 180, y: 30, width: 10, height: 10, alignment: PinAlignment.Right, name: "Out"); ``` -------------------------------- ### Initialize LogicWaveformSample Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSample.html Constructor for the LogicWaveformSample class. Initializes a new instance with tick, display string, and aggregate logic value. ```csharp public LogicWaveformSample(int tick, string display, LogicValue aggregate)__ ``` -------------------------------- ### Access Y coordinate Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.NodeMovedEventArgs.html Gets the Y coordinate of the node after the move. ```csharp public double Y { get; } ``` -------------------------------- ### Connector Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectorSelectedEventArgs.html Gets the IConnector associated with the event. ```csharp public IConnector? Connector { get; }__ ``` -------------------------------- ### LogicWaveformSample Class Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSample.html Documentation for the LogicWaveformSample class, including its constructor and properties. ```APIDOC ## Class LogicWaveformSample ### Description Represents a sample point in a logic waveform. ### Namespace NodeEditorLogic.ViewModels.Waveforms ### Assembly NodeEditorLogic.Editor.dll ### Constructor `public LogicWaveformSample(int tick, string display, LogicValue aggregate)` #### Parameters - **tick** (int) - The tick index of the sample. - **display** (string) - The display text for the sample. - **aggregate** (LogicValue) - The aggregate logic value. ### Properties - **Aggregate** (LogicValue) - Gets the aggregate logic value. - **Display** (string) - Gets the display text. - **Tick** (int) - Gets the tick index. ``` -------------------------------- ### Initialize LogicConnectorViewModel Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.LogicConnectorViewModel.html Constructor for the LogicConnectorViewModel class. ```csharp public LogicConnectorViewModel()__ ``` -------------------------------- ### Connector Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectorEndChangedEventArgs.html Gets the connector associated with the event. ```csharp public IConnector? Connector { get; } ``` -------------------------------- ### Initialize LogicNodeFactory Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicNodeFactory.html Constructs a new instance of the LogicNodeFactory. Requires a LogicComponentLibrary to be provided. ```csharp public LogicNodeFactory(LogicComponentLibrary library) ``` -------------------------------- ### InkLayer.DrawingSource Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.InkLayer.html Gets or sets the drawing source for the InkLayer. ```APIDOC ## Properties ### DrawingSource ```csharp public IDrawingNode? DrawingSource { get; set; } ``` #### Property Value IDrawingNode ``` -------------------------------- ### StrokeThickness Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Gets or sets the thickness of the stroke. ```csharp public double StrokeThickness { get; set; } ``` -------------------------------- ### LogicSimulationService Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicSimulationService.html Initializes a new instance of the LogicSimulationService class. ```APIDOC ## LogicSimulationService Constructor ### Description Initializes a new instance of the LogicSimulationService class. ### Method Constructor ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) None #### Response Example None ``` -------------------------------- ### LogicSimulationService Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicSimulationService.html Initializes a new instance of the LogicSimulationService with a specified component library. ```csharp public LogicSimulationService(LogicComponentLibrary library)__ ``` -------------------------------- ### Initialize InkLayer Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.InkLayer.html Constructor for the InkLayer class. ```csharp public InkLayer()__ ``` -------------------------------- ### LogicSimulationService.TickCount Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicSimulationService.html Gets the current tick count of the simulation. ```APIDOC ## LogicSimulationService.TickCount Property ### Description Gets the current tick count of the simulation. ### Method GET ### Endpoint None (Property Access) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **Value** (int) - The current tick count. ``` -------------------------------- ### MacroDefinition Description Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Gets the description of the macro definition. ```csharp public string? Description { get; } ``` -------------------------------- ### LogicSimulationService.Step Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicSimulationService.html Advances the simulation by one step for the given drawing node. ```APIDOC ## LogicSimulationService.Step Method ### Description Advances the simulation by one step for the given drawing node. ### Method POST ### Endpoint None (Method Call) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **drawing** (IDrawingNode) - Required - The drawing node to step. ### Request Example ```json { "drawing": { ... IDrawingNode object ... } } ``` ### Response #### Success Response (200) - **Result** (LogicSimulationResult) - The result of the simulation step. ``` -------------------------------- ### Access Pin Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.PinCreatedEventArgs.html Gets the IPin associated with the event. ```csharp public IPin? Pin { get; } ``` -------------------------------- ### ExportRoot Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ExportRoot.html Initializes a new instance of the ExportRoot class. ```APIDOC ## Constructor: ExportRoot() ### Description Initializes a new instance of the ExportRoot class. ### Signature `public ExportRoot()` ``` -------------------------------- ### ConnectorPoint Y Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectorPoint.html Gets or sets the Y-coordinate of the connector point. ```csharp public double Y { get; set; } ``` -------------------------------- ### Stroke Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Gets or sets the stroke brush of the element. ```csharp public IBrush? Stroke { get; set; } ``` -------------------------------- ### Step Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicSimulationService.html Advances the simulation by one step for the given drawing node. ```csharp public LogicSimulationResult Step(IDrawingNode drawing)__ ``` -------------------------------- ### Connectors Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Gets or sets the read-only list of connectors. ```csharp public IReadOnlyList? Connectors { get; set; } ``` -------------------------------- ### LogicInputNodeViewModel Class Overview Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Nodes.LogicInputNodeViewModel.html Provides an overview of the LogicInputNodeViewModel class, including its namespace, assembly, inheritance hierarchy, and implemented interfaces. ```APIDOC ## Class LogicInputNodeViewModel ### Namespace NodeEditorLogic.ViewModels.Nodes ### Assembly NodeEditorLogic.Editor.dll ### Inheritance object ObservableObject ViewModelBase LogicNodeContentViewModel LogicInputNodeViewModel ### Implements INotifyPropertyChanged INotifyPropertyChanging ``` -------------------------------- ### Background Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Gets or sets the background brush of the element. ```csharp public IBrush? Background { get; set; } ``` -------------------------------- ### GuideLine Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GuideLine.html Details of the GuideLine constructor, including its parameters. ```APIDOC ## Constructors ### GuideLine(Point, Point) ```csharp public GuideLine(Point start, Point end) ``` #### Parameters * **start** (Point) - * **end** (Point) - ``` -------------------------------- ### Access StrokeThickness Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorSelectedAdorner.html Gets or sets the thickness of the stroke. ```csharp public double StrokeThickness { get; set; }__ ``` -------------------------------- ### Access Connectors Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorSelectedAdorner.html Gets or sets the collection of connectors. ```csharp public IReadOnlyList? Connectors { get; set; }__ ``` -------------------------------- ### LogicWaveformSignal Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSignal.html Initializes a new instance of the LogicWaveformSignal class. Requires a key, name, bus status, and bus width. ```csharp public LogicWaveformSignal(string key, string name, bool isBus, int busWidth) ``` -------------------------------- ### Create custom node template Source: https://wieslawsoltes.github.io/NodeEditor/articles/templates-toolbox.html Instantiating a NodeTemplateViewModel to define a custom node with preview. ```csharp var template = new NodeTemplateViewModel { Title = "My Node", Template = CreateNode(), Preview = CreatePreviewNode() }; ``` -------------------------------- ### PinViewModel Class Overview Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.PinViewModel.html Provides an overview of the PinViewModel class, its inheritance, and implemented interfaces. ```APIDOC ## Class PinViewModel **Namespace:** NodeEditor.Mvvm **Assembly:** NodeEditorAvalonia.Mvvm.dll A base class for objects of which the properties must be observable. ```csharp public class PinViewModel : ObservableObject, INotifyPropertyChanged, INotifyPropertyChanging, IPin, IConnectablePin ``` ### Inheritance - object - ObservableObject - PinViewModel ### Implements - INotifyPropertyChanged - INotifyPropertyChanging - IPin - IConnectablePin ### Derived Classes - LogicPinViewModel ``` -------------------------------- ### Key Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSignal.html Gets the unique key identifier for the waveform signal. ```csharp public string Key { get; } ``` -------------------------------- ### ExportRoot Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ExportRoot.html Initializes a new instance of the ExportRoot class. ```csharp public ExportRoot()__ ``` -------------------------------- ### MacroDefinition Title Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Gets the display title of the macro definition. ```csharp public string Title { get; } ``` -------------------------------- ### ShowAll Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.DrawingNodeViewModel.html Displays all elements within the editor view. This is a virtual method that can be overridden. ```csharp public virtual void ShowAll() ``` -------------------------------- ### MacroDefinition Id Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Gets the unique identifier for the macro definition. ```csharp public string Id { get; } ``` -------------------------------- ### CreateUnknownBus Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Models.LogicSignalHelper.html Creates a bus of LogicValue objects with an unknown state for a given width. ```csharp public static LogicValue[] CreateUnknownBus(int width)__ ``` -------------------------------- ### MacroDefinition Command Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Gets the ICommand associated with the macro definition. ```csharp public ICommand Command { get; } ``` -------------------------------- ### Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.GridDecorator.html Core methods for handling property changes and rendering. ```APIDOC ## Methods ### OnPropertyChanged Called when a avalonia property changes on the object. ```csharp protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) ``` #### Parameters `change` AvaloniaPropertyChangedEventArgs The property change details. ### Render Renders the visual to a Avalonia.Media.DrawingContext. ```csharp public override void Render(DrawingContext context) ``` #### Parameters `context` DrawingContext The drawing context. ``` -------------------------------- ### MacroDefinition Category Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Gets the category assigned to the macro definition. ```csharp public string? Category { get; } ``` -------------------------------- ### InkStroke Thickness Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.InkStroke.html Gets or sets the thickness of the ink stroke. ```csharp public double Thickness { get; set; }__ ``` -------------------------------- ### LogicComponentDefinition Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Models.LogicComponentDefinition.html Initializes a new instance of the LogicComponentDefinition class with specified metadata and evaluation logic. ```APIDOC ## Constructor: LogicComponentDefinition ### Description Initializes a new instance of the LogicComponentDefinition class. ### Parameters - **id** (string) - Required - Unique identifier for the component. - **title** (string) - Required - Display title of the component. - **category** (string) - Required - Category classification for the component. - **propagationDelay** (int) - Required - The delay associated with the component propagation. - **inputs** (IReadOnlyList) - Required - List of input port identifiers. - **outputs** (IReadOnlyList) - Required - List of output port identifiers. - **evaluate** (Func, LogicValue[]>) - Required - Function delegate for evaluating logic values. ``` -------------------------------- ### MacroDefinition Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Initializes a new instance of the MacroDefinition class. ```APIDOC ## Constructors ### MacroDefinition(string id, string title, ICommand command, object? commandParameter = null, string? category = null, string? description = null) ```csharp public MacroDefinition(string id, string title, ICommand command, object? commandParameter = null, string? category = null, string? description = null) ``` #### Parameters * **id** (string) - * **title** (string) - * **command** (ICommand) - * **commandParameter** (object) - * **category** (string) - * **description** (string) - ``` -------------------------------- ### Access X coordinate Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.NodeMovedEventArgs.html Gets the X coordinate of the node after the move. ```csharp public double X { get; } ``` -------------------------------- ### Configuration Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.DrawingNodeViewModel.html Methods used to configure the factory, selection, and serialization settings for the editor. ```APIDOC ## SetFactory(IDrawingNodeFactory) ### Description Sets the factory used for creating drawing nodes. ### Parameters #### Path Parameters - **factory** (IDrawingNodeFactory) - Required - The factory instance. ## SetSelectedConnectors(ISet?) ### Description Sets the currently selected connectors. ### Parameters #### Path Parameters - **connectors** (ISet) - Optional - The set of connectors to select. ## SetSelectedNodes(ISet?) ### Description Sets the currently selected nodes. ### Parameters #### Path Parameters - **nodes** (ISet) - Optional - The set of nodes to select. ## SetSerializer(INodeSerializer?) ### Description Sets the serializer for node data. ### Parameters #### Path Parameters - **serializer** (INodeSerializer) - Optional - The serializer instance. ``` -------------------------------- ### Access Id Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Pin.html Gets or sets the Id property value. ```csharp public string? Id { get; set; }__ ``` -------------------------------- ### Connector Class Overview Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Connector.html Provides an overview of the Connector class, its namespace, and assembly information. ```APIDOC ## Connector Class ### Namespace NodeEditor.Controls ### Assembly NodeEditorAvalonia.dll ### PseudoClasses - :selected ### Class Definition ```csharp [PseudoClasses(new string[] { ":selected" })] public class Connector : Shape, INotifyPropertyChanged, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, ISupportInitialize, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue__ ``` ### Inheritance - object - AvaloniaObject - Animatable - StyledElement - Visual - Layoutable - Interactive - InputElement - Control - Shape - Connector ### Implements - INotifyPropertyChanged - IDataContextProvider - ILogical - IThemeVariantHost - IResourceHost - IResourceNode - IStyleHost - ISetLogicalParent - ISetInheritanceParent - ISupportInitialize - IStyleable - INamed - IInputElement - IDataTemplateHost - ISetterValue ### Inherited Members (from Shape) - Shape.FillProperty - Shape.StretchProperty - Shape.StrokeProperty - Shape.StrokeDashArrayProperty - Shape.StrokeDashOffsetProperty - Shape.StrokeThicknessProperty - Shape.StrokeLineCapProperty - Shape.StrokeJoinProperty - Shape.StrokeMiterLimitProperty - Shape.Render(DrawingContext) - Shape.AffectsGeometry(params AvaloniaProperty[]) - Shape.OnGeometryChanged(object, EventArgs) - Shape.InvalidateGeometry() - Shape.MeasureOverride(Size) - Shape.ArrangeOverride(Size) - Shape.DefiningGeometry - Shape.RenderedGeometry - Shape.Fill - Shape.Stretch - Shape.Stroke - Shape.StrokeDashArray - Shape.StrokeDashOffset - Shape.StrokeThickness - Shape.StrokeLineCap - Shape.StrokeJoin - Shape.StrokeMiterLimit ### Inherited Members (from Control) - Control.FocusAdornerProperty - Control.TagProperty - Control.ContextMenuProperty - Control.ContextFlyoutProperty - Control.RequestBringIntoViewEvent - Control.ContextRequestedEvent - Control.LoadedEvent - Control.UnloadedEvent - Control.SizeChangedEvent - Control.GetTemplateFocusTarget() - Control.OnLoaded(RoutedEventArgs) - Control.OnUnloaded(RoutedEventArgs) - Control.OnSizeChanged(SizeChangedEventArgs) - Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs) - Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs) - Control.OnGotFocus(GotFocusEventArgs) - Control.OnLostFocus(RoutedEventArgs) - Control.OnCreateAutomationPeer() - Control.OnPointerReleased(PointerReleasedEventArgs) - Control.OnKeyUp(KeyEventArgs) - Control.FocusAdorner - Control.DataTemplates - Control.ContextMenu - Control.ContextFlyout - Control.IsLoaded - Control.Tag - Control.ContextRequested - Control.Loaded - Control.Unloaded - Control.SizeChanged ### Inherited Members (from InputElement) - InputElement.FocusableProperty - InputElement.IsEnabledProperty - InputElement.IsEffectivelyEnabledProperty - InputElement.CursorProperty - InputElement.IsKeyboardFocusWithinProperty - InputElement.IsFocusedProperty - InputElement.IsHitTestVisibleProperty - InputElement.IsPointerOverProperty - InputElement.IsTabStopProperty - InputElement.GotFocusEvent - InputElement.LostFocusEvent - InputElement.KeyDownEvent - InputElement.KeyUpEvent - InputElement.TabIndexProperty - InputElement.TextInputEvent - InputElement.TextInputMethodClientRequestedEvent - InputElement.PointerEnteredEvent - InputElement.PointerExitedEvent - InputElement.PointerMovedEvent - InputElement.PointerPressedEvent - InputElement.PointerReleasedEvent - InputElement.PointerCaptureLostEvent - InputElement.PointerWheelChangedEvent - InputElement.TappedEvent - InputElement.HoldingEvent - InputElement.DoubleTappedEvent - InputElement.Focus(NavigationMethod, KeyModifiers) - InputElement.OnAccessKey(RoutedEventArgs) - InputElement.OnKeyDown(KeyEventArgs) - InputElement.OnTextInput(TextInputEventArgs) - InputElement.OnPointerEntered(PointerEventArgs) - InputElement.OnPointerExited(PointerEventArgs) - InputElement.OnPointerMoved(PointerEventArgs) - InputElement.OnPointerPressed(PointerPressedEventArgs) - InputElement.OnPointerCaptureLost(PointerCaptureLostEventArgs) - InputElement.OnPointerWheelChanged(PointerWheelEventArgs) - InputElement.UpdateIsEffectivelyEnabled() - InputElement.Focusable - InputElement.IsEnabled - InputElement.Cursor - InputElement.IsKeyboardFocusWithin - InputElement.IsFocused - InputElement.IsHitTestVisible - InputElement.IsPointerOver - InputElement.IsTabStop - InputElement.IsEffectivelyEnabled - InputElement.TabIndex - InputElement.KeyBindings - InputElement.IsEnabledCore - InputElement.GestureRecognizers - InputElement.GotFocus - InputElement.LostFocus - InputElement.KeyDown - InputElement.KeyUp - InputElement.TextInput - InputElement.TextInputMethodClientRequested - InputElement.PointerEntered - InputElement.PointerExited - InputElement.PointerMoved - InputElement.PointerPressed - InputElement.PointerReleased - InputElement.PointerCaptureLost - InputElement.PointerWheelChanged - InputElement.Tapped - InputElement.Holding - InputElement.DoubleTapped ### Inherited Members (from Interactive) - Interactive.AddHandler(RoutedEvent, Delegate, RoutingStrategies, bool) - Interactive.AddHandler(RoutedEvent, EventHandler, RoutingStrategies, bool) - Interactive.RemoveHandler(RoutedEvent, Delegate) - Interactive.RemoveHandler(RoutedEvent, EventHandler) - Interactive.RaiseEvent(RoutedEventArgs) - Interactive.BuildEventRoute(RoutedEvent) ### Inherited Members (from Layoutable) - Layoutable.DesiredSizeProperty - Layoutable.WidthProperty ``` -------------------------------- ### Access Direction Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Pin.html Gets or sets the Direction property value. ```csharp public PinDirection Direction { get; set; }__ ``` -------------------------------- ### Render Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Renders the visual to a Avalonia.Media.DrawingContext. Override this method for custom rendering logic. ```csharp public override void Render(DrawingContext context) ``` -------------------------------- ### Access BusWidth Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Pin.html Gets or sets the BusWidth property value. ```csharp public int BusWidth { get; set; }__ ``` -------------------------------- ### Access Alignment Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Pin.html Gets or sets the Alignment property value. ```csharp public PinAlignment Alignment { get; set; }__ ``` -------------------------------- ### ConnectorPoint X Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectorPoint.html Gets or sets the X-coordinate of the connector point. ```csharp public double X { get; set; } ``` -------------------------------- ### LogicPinViewModel Class Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.LogicPinViewModel.html Represents the LogicPinViewModel class definition, including its properties and constructor. ```APIDOC ## Class LogicPinViewModel ### Description A base class for objects of which the properties must be observable, used for logic pins in the node editor. ### Constructors - **LogicPinViewModel()** - Initializes a new instance of the LogicPinViewModel class. ### Properties - **BusValue** (LogicValue[]) - Gets or sets the bus value array. - **Kind** (LogicPinKind) - Gets or sets the kind of the logic pin. - **Value** (LogicValue) - Gets or sets the current logic value. ``` -------------------------------- ### ConvertBack Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Converters.PlaceholderVisibilityConverter.html Documentation for the ConvertBack method. ```APIDOC ## Methods ### ConvertBack(object?, Type[], object?, CultureInfo) ```csharp public object[] ConvertBack(object? value, Type[] targetTypes, object? parameter, CultureInfo culture) ``` #### Parameters `value` object `targetTypes` Type[] `parameter` object `culture` CultureInfo #### Returns object[] ``` -------------------------------- ### ArcRadius Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Gets or sets the arc radius for rounded corners. ```csharp public double ArcRadius { get; set; } ``` -------------------------------- ### Access Stroke Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorSelectedAdorner.html Gets or sets the brush used for the stroke. ```csharp public IBrush? Stroke { get; set; }__ ``` -------------------------------- ### CreateConnector Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.IDrawingNodeFactory.html Creates a new connector instance. ```csharp IConnector CreateConnector()__ ``` -------------------------------- ### Define InputSource property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Behaviors.DrawingMovedBehavior.html Property to get or set the input Control. ```csharp public Control? InputSource { get; set; }__ ``` -------------------------------- ### Object Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.ConnectorCrossingsAdorner.html Standard methods available for all objects. ```APIDOC ## Object Methods ### Description Standard methods available for all objects. ### Methods - `Equals(object, object)` - `GetType()` - `MemberwiseClone()` - `ReferenceEquals(object, object)` - `ToString()` ``` -------------------------------- ### ConnectorViewModel Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.ConnectorViewModel.html Methods for managing connector lifecycle and state changes. ```csharp public virtual bool CanRemove()__ ``` ```csharp public virtual bool CanSelect()__ ``` ```csharp public void OnCreated()__ ``` ```csharp public void OnDeselected()__ ``` ```csharp public void OnEndChanged()__ ``` ```csharp public void OnRemoved()__ ``` ```csharp public void OnSelected()__ ``` ```csharp public void OnStartChanged()__ ``` -------------------------------- ### GuideSnapToleranceProperty Field Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.DrawingNodeProperties.html Defines the tolerance for snapping to guides. This is a StyledProperty of type double. ```csharp public static readonly StyledProperty GuideSnapToleranceProperty__ ``` -------------------------------- ### Layoutable API Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.NodeZoomBorder.html Methods and properties for managing component layout, sizing, and positioning. ```APIDOC ## Layoutable API ### Description Defines the layout behavior for elements, including measurement, arrangement, and sizing constraints. ### Methods - **UpdateLayout()** - Forces a layout update. - **ApplyTemplate()** - Applies the control template. - **Measure(Size)** - Measures the element. - **Arrange(Rect)** - Arranges the element. - **InvalidateMeasure()** - Invalidates the measurement. - **InvalidateArrange()** - Invalidates the arrangement. ``` -------------------------------- ### Define StartChanged Event Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.ConnectorViewModel.html Event triggered when the start point of a connector changes. ```csharp public event EventHandler? StartChanged__ ``` -------------------------------- ### Connector Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Connector.html Initializes a new instance of the Connector class. ```APIDOC ## Connector() ### Description Initializes a new instance of the Connector class. ### Method Constructor ### Endpoint N/A ### Parameters None ### Request Body None ### Response None ### Request Example ```csharp public Connector() ``` ### Response Example None ``` -------------------------------- ### ConnectionRejectedEventArgs Properties Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectionRejectedEventArgs.html Accessors for the start and end pins associated with the rejected connection. ```csharp public IPin End { get; } ``` ```csharp public IPin Start { get; } ``` -------------------------------- ### DrawingNodeSettingsViewModel Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.DrawingNodeSettingsViewModel.html Constructor for initializing the view model. ```csharp public DrawingNodeSettingsViewModel()__ ``` -------------------------------- ### LogicPinViewModel Value Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.LogicPinViewModel.html Gets or sets the LogicValue for the pin. Marked with ExcludeFromCodeCoverage. ```csharp [ExcludeFromCodeCoverage] public LogicValue Value { get; set; }__ ``` -------------------------------- ### LogicPinViewModel Kind Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.LogicPinViewModel.html Gets or sets the LogicPinKind for the pin. Marked with ExcludeFromCodeCoverage. ```csharp [ExcludeFromCodeCoverage] public LogicPinKind Kind { get; set; }__ ``` -------------------------------- ### Layoutable Properties and Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.SelectedAdorner.html Provides information on layout-related properties and methods for Layoutable objects. ```APIDOC ## Layoutable Class ### Description Represents a layoutable element with properties controlling its size, margins, alignment, and layout validity. ### Properties - **Width** (double) - The width of the element. - **Height** (double) - The height of the element. - **MinWidth** (double) - The minimum width of the element. - **MaxWidth** (double) - The maximum width of the element. - **MinHeight** (double) - The minimum height of the element. - **MaxHeight** (double) - The maximum height of the element. - **Margin** (Thickness) - The margin around the element. - **HorizontalAlignment** (HorizontalAlignment) - The horizontal alignment of the element. - **VerticalAlignment** (VerticalAlignment) - The vertical alignment of the element. - **DesiredSize** (Size) - The desired size of the element after measurement. - **IsMeasureValid** (bool) - Indicates if the element's measure is valid. - **IsArrangeValid** (bool) - Indicates if the element's arrange is valid. - **UseLayoutRounding** (bool) - Whether to use layout rounding. ### Methods - **OnMeasureInvalidated()**: Called when the measure is invalidated. - **OnVisualParentChanged(Visual, Visual)**: Called when the visual parent changes. - **EffectiveViewportChanged()**: Called when the effective viewport changes. - **LayoutUpdated()**: Called when the layout is updated. ``` -------------------------------- ### LogicValueToTextConverter Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Converters.LogicValueToTextConverter.html Documentation for the conversion methods provided by the LogicValueToTextConverter class. ```APIDOC ## Convert(object?, Type, object?, CultureInfo) ### Description Converts a value to a text representation. ### Parameters - **value** (object) - The value to convert. - **targetType** (Type) - The type of the target. - **parameter** (object) - A user-defined parameter. - **culture** (CultureInfo) - The culture to use. ### Returns - **object** - The converted value. --- ## ConvertBack(object?, Type, object?, CultureInfo) ### Description Converts a value back to its original form. ### Parameters - **value** (object) - The value to convert. - **targetType** (Type) - The type of the target. - **parameter** (object) - A user-defined parameter. - **culture** (CultureInfo) - The culture to use. ### Returns - **object** - The converted value. ``` -------------------------------- ### Layoutable Properties and Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.DrawingNodeProperties.html Core layout management for components, including sizing, alignment, and measurement overrides. ```APIDOC ## Layoutable Component API ### Description Manages the layout lifecycle, including measurement and arrangement of visual elements. ### Key Methods - **Measure(Size)**: Updates the desired size of the element. - **Arrange(Rect)**: Positions the element within a rectangle. - **InvalidateMeasure()**: Marks the current measure as invalid. - **InvalidateArrange()**: Marks the current arrangement as invalid. ### Properties - **Width/Height**: Gets or sets the dimensions. - **Margin**: Gets or sets the margin thickness. - **HorizontalAlignment/VerticalAlignment**: Gets or sets alignment properties. ``` -------------------------------- ### LogicComponentDefinition Inputs Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Models.LogicComponentDefinition.html Gets the list of input names for the logic component. ```csharp public IReadOnlyList Inputs { get; } ``` -------------------------------- ### InkStroke Opacity Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.InkStroke.html Gets or sets the opacity value of the ink stroke. ```csharp public double Opacity { get; set; }__ ``` -------------------------------- ### InkStroke Name Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.InkStroke.html Gets or sets the optional name of the ink stroke. ```csharp public string? Name { get; set; }__ ``` -------------------------------- ### Styled Element Properties and Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Nodes.html Manages styling, data context, and initialization of styled elements. ```APIDOC ## Styled Element Properties and Methods ### Description Provides properties and methods for managing data context, styling, resources, and initialization of styled elements. ### Properties - `DataContextProperty` - `NameProperty` - `ParentProperty` - `TemplatedParentProperty` - `ThemeProperty` ### Methods - `BeginInit()` - `EndInit()` - `ApplyStyling()` - `InitializeIfNeeded()` - `TryGetResource(object, ThemeVariant, out object)` - `OnDataContextChanged(EventArgs)` - `OnDataContextBeginUpdate()` - `OnDataContextEndUpdate()` - `OnInitialized()` ### Getters/Setters - `Name` - `Classes` - `DataContext` - `IsInitialized` - `Styles` - `StyleKey` - `Resources` - `TemplatedParent` - `Theme` - `LogicalChildren` - `PseudoClasses` - `StyleKeyOverride` - `Parent` - `ActualThemeVariant` ### Events - `AttachedToLogicalTree` - `DetachedFromLogicalTree` - `DataContextChanged` - `Initialized` - `ResourcesChanged` - `ActualThemeVariantChanged` ``` -------------------------------- ### Configure Drawing Node Settings Source: https://wieslawsoltes.github.io/NodeEditor/articles/drawing-settings.html Initializes DrawingNodeSettingsViewModel with custom interaction and routing behaviors. Useful for setting up a drawing canvas with specific constraints and visual aids. ```csharp var settings = new DrawingNodeSettingsViewModel { EnableSnap = true, SnapX = 10, SnapY = 10, EnableGuides = true, RequireDirectionalConnections = true, RequireMatchingBusWidth = true, DefaultConnectorStyle = ConnectorStyle.Orthogonal, RoutingAlgorithm = ConnectorRoutingAlgorithm.Octilinear }; ``` -------------------------------- ### InkStroke Color Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.InkStroke.html Gets or sets the color of the ink stroke as a uint. ```csharp public uint Color { get; set; }__ ``` -------------------------------- ### SwapDirectionCommand Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Connector.html Gets the command that swaps the direction of the connector. This is a read-only property. ```csharp public ICommand SwapDirectionCommand { get; }__ ``` -------------------------------- ### MacroDefinition Constructor Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Initializes a new instance of the MacroDefinition class with essential parameters like ID, title, and command. ```csharp public MacroDefinition(string id, string title, ICommand command, object? commandParameter = null, string? category = null, string? description = null) ``` -------------------------------- ### PinSource Property Definition Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Behaviors.PinPressedBehavior.html The property used to get or set the IPin source. ```csharp public IPin? PinSource { get; set; }__ ``` -------------------------------- ### CreateTemplates Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.INodeFactory.html Generates a list of node templates. ```csharp IList CreateTemplates()__ ``` -------------------------------- ### CreatePin Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.IDrawingNodeFactory.html Creates a new pin instance. ```csharp IPin CreatePin()__ ``` -------------------------------- ### LogicBusSplitNodeViewModel Class Overview Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Nodes.LogicBusSplitNodeViewModel.html Provides an overview of the LogicBusSplitNodeViewModel class, including its namespace, assembly, inheritance hierarchy, and implemented interfaces. ```APIDOC ## Class LogicBusSplitNodeViewModel ### Namespace NodeEditorLogic.ViewModels.Nodes ### Assembly NodeEditorLogic.Editor.dll ### Inheritance object ObservableObject ViewModelBase LogicNodeContentViewModel LogicBusSplitNodeViewModel ### Implements INotifyPropertyChanged INotifyPropertyChanging ### Inherited Members LogicNodeContentViewModel.HostNode LogicNodeContentViewModel.RemoveInputPinCommand LogicNodeContentViewModel.Title LogicNodeContentViewModel.Subtitle LogicNodeContentViewModel.ComponentId LogicNodeContentViewModel.PropagationDelay LogicNodeContentViewModel.InputPins LogicNodeContentViewModel.OutputPins LogicNodeContentViewModel.AddOutputPinCommand LogicNodeContentViewModel.AddInputPinCommand LogicNodeContentViewModel.RemoveOutputPinCommand ObservableObject.OnPropertyChanged(PropertyChangedEventArgs) ObservableObject.OnPropertyChanging(PropertyChangingEventArgs) ObservableObject.OnPropertyChanged(string) ObservableObject.OnPropertyChanging(string) ObservableObject.SetProperty(ref T, T, string) ObservableObject.SetProperty(ref T, T, IEqualityComparer, string) ObservableObject.SetProperty(T, T, Action, string) ObservableObject.SetProperty(T, T, IEqualityComparer, Action, string) ObservableObject.SetProperty(T, T, TModel, Action, string) ObservableObject.SetProperty(T, T, IEqualityComparer, TModel, Action, string) ObservableObject.SetPropertyAndNotifyOnCompletion(ref ObservableObject.TaskNotifier, Task, string) ObservableObject.SetPropertyAndNotifyOnCompletion(ref ObservableObject.TaskNotifier, Task, Action, string) ObservableObject.SetPropertyAndNotifyOnCompletion(ref ObservableObject.TaskNotifier, Task, string) ObservableObject.SetPropertyAndNotifyOnCompletion(ref ObservableObject.TaskNotifier, Task, Action>, string) ObservableObject.PropertyChanged ObservableObject.PropertyChanging object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() ``` -------------------------------- ### Title Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.ToolboxCategoryViewModel.html Gets or sets the title of the toolbox category. This property is of type string. ```csharp [ExcludeFromCodeCoverage] public string Title { get; set; } ``` -------------------------------- ### Layoutable Properties and Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Editor.html Core layout management for elements, including measurement and arrangement. ```APIDOC ## Layoutable Component ### Description Defines properties and methods for measuring and arranging elements in the layout system. ### Key Methods - **Measure(Size)**: Updates the desired size of the element. - **Arrange(Rect)**: Positions the element within a rectangle. - **InvalidateMeasure()**: Marks the current measure as invalid. - **InvalidateArrange()**: Marks the current arrangement as invalid. ### Key Properties - **Width/Height**: Gets or sets the dimensions. - **Margin**: Gets or sets the margin thickness. - **HorizontalAlignment/VerticalAlignment**: Gets or sets alignment properties. ``` -------------------------------- ### Name Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSignal.html Gets or sets the display name of the waveform signal. Marked with ExcludeFromCodeCoverage. ```csharp [ExcludeFromCodeCoverage] public string Name { get; set; } ``` -------------------------------- ### LogicWaveformSample Tick Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSample.html Gets the tick value for the waveform sample. This property is read-only. ```csharp public int Tick { get; } ``` -------------------------------- ### CreateTemplates Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.INodeFactory.html Retrieves a list of available node templates. ```APIDOC ## CreateTemplates ### Description Generates and returns a list of node templates available for use. ### Method Method Call ### Returns - **IList** - A list of node templates. ``` -------------------------------- ### LogicWaveformSample Aggregate Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.ViewModels.Waveforms.LogicWaveformSample.html Gets the aggregate LogicValue for the waveform sample. This property is read-only. ```csharp public LogicValue Aggregate { get; } ``` -------------------------------- ### MacroDefinition CommandParameter Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.MacroDefinition.html Gets the command parameter for the macro definition's command. ```csharp public object? CommandParameter { get; } ``` -------------------------------- ### CreateList Method Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.IDrawingNodeFactory.html Creates a new list instance of the specified type. ```csharp IList CreateList()__ ``` -------------------------------- ### PinViewModel Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Mvvm.PinViewModel.html Details the methods available in the PinViewModel class. ```APIDOC ## Methods ### CanConnect() ```csharp public virtual bool CanConnect() ``` **Returns:** bool ### CanDisconnect() ```csharp public virtual bool CanDisconnect() ``` **Returns:** bool ### OnConnected() ```csharp public void OnConnected() ``` ### OnCreated() ```csharp public void OnCreated() ``` ### OnDeselected() ```csharp public void OnDeselected() ``` ### OnDisconnected() ```csharp public void OnDisconnected() ``` ### OnMoved() ```csharp public void OnMoved() ``` ### OnRemoved() ```csharp public void OnRemoved() ``` ### OnResized() ```csharp public void OnResized() ``` ### OnSelected() ```csharp public void OnSelected() ``` ``` -------------------------------- ### Node Property Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.NodeDeselectedEventArgs.html Gets the INode object associated with the deselection event. This property is read-only. ```csharp public INode? Node { get; } ``` -------------------------------- ### Basic NodeSerializer Usage Source: https://wieslawsoltes.github.io/NodeEditor/articles/serialization.html Demonstrates the basic usage of NodeSerializer for saving and loading a drawing. Ensure the serializer is configured with the appropriate collection type if using custom collections. ```csharp var serializer = new NodeSerializer(typeof(System.Collections.ObjectModel.ObservableCollection<>)); var drawing = new DrawingNodeViewModel(); drawing.SetSerializer(serializer); serializer.Save("drawing.json", drawing); var loaded = serializer.Load("drawing.json"); ``` -------------------------------- ### AvaloniaObject Property Management Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Node.html Methods for getting, setting, clearing, and binding properties on an AvaloniaObject. ```APIDOC ## AvaloniaObject Methods ### Description Provides core functionality for managing Avalonia properties, including value retrieval, setting, and data binding. ### Methods - **ClearValue(DirectPropertyBase)** - Clears the value of a direct property. - **GetValue(AvaloniaProperty)** - Gets the current value of a property. - **SetValue(AvaloniaProperty, object, BindingPriority)** - Sets the value of a property. - **Bind(AvaloniaProperty, IBinding)** - Binds a property to an IBinding source. - **CoerceValue(AvaloniaProperty)** - Coerces the value of a property. ``` -------------------------------- ### InkPoint Constructors Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.InkPoint.html Constructors for initializing an InkPoint instance. ```csharp public InkPoint() ``` ```csharp public InkPoint(double x, double y, double pressure = 1, long timestamp = 0) ``` -------------------------------- ### NodeResizeBehavior Properties Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Behaviors.NodeResizeBehavior.html Properties to get or set the resize direction and the associated node source. ```csharp public NodeResizeDirection Direction { get; set; }__ ``` ```csharp public INode? NodeSource { get; set; }__ ``` -------------------------------- ### Layout Properties and Methods Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.Toolbox.html APIs for controlling and managing the layout of UI elements. ```APIDOC ## Layout Properties and Methods ### Description APIs for managing layout properties, measuring, and arranging UI elements. ### Properties - **Layoutable.DesiredSizeProperty** - **Layoutable.WidthProperty** - **Layoutable.HeightProperty** - **Layoutable.MinWidthProperty** - **Layoutable.MaxWidthProperty** - **Layoutable.MinHeightProperty** - **Layoutable.MaxHeightProperty** - **Layoutable.MarginProperty** - **Layoutable.HorizontalAlignmentProperty** - **Layoutable.VerticalAlignmentProperty** - **Layoutable.UseLayoutRoundingProperty** ### Methods #### UpdateLayout Triggers a layout update. - **Layoutable.UpdateLayout()** #### Measure Measures the element. - **Layoutable.Measure(Size)** #### Arrange Arranges the element. - **Layoutable.Arrange(Rect)** #### InvalidateMeasure Invalidates the measure pass. - **Layoutable.InvalidateMeasure()** #### InvalidateArrange Invalidates the arrange pass. - **Layoutable.InvalidateArrange()** #### AffectsMeasure Specifies properties that affect measure. - **Layoutable.AffectsMeasure(params AvaloniaProperty[])** #### AffectsArrange Specifies properties that affect arrange. - **Layoutable.AffectsArrange(params AvaloniaProperty[])** #### MeasureCore Core measure logic. - **Layoutable.MeasureCore(Size)** #### MeasureOverride Override for measure logic. - **Layoutable.MeasureOverride(Size)** #### ArrangeCore Core arrange logic. - **Layoutable.ArrangeCore(Rect)** #### ArrangeOverride Override for arrange logic. - **Layoutable.ArrangeOverride(Size)** #### OnMeasureInvalidated Called when measure is invalidated. - **Layoutable.OnMeasureInvalidated()** #### OnVisualParentChanged Called when the visual parent changes. - **Layoutable.OnVisualParentChanged(Visual, Visual)** ### Getters/Setters - **Layoutable.Width** - **Layoutable.Height** - **Layoutable.MinWidth** - **Layoutable.MaxWidth** - **Layoutable.MinHeight** - **Layoutable.MaxHeight** - **Layoutable.Margin** - **Layoutable.HorizontalAlignment** - **Layoutable.VerticalAlignment** - **Layoutable.DesiredSize** - **Layoutable.IsMeasureValid** - **Layoutable.IsArrangeValid** - **Layoutable.UseLayoutRounding** ### Events - **Layoutable.EffectiveViewportChanged** - **Layoutable.LayoutUpdated** ``` -------------------------------- ### EnableSnapProperty Field Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Controls.DrawingNodeProperties.html Defines whether snapping to the grid or guides is enabled. This is a StyledProperty of type bool. ```csharp public static readonly StyledProperty EnableSnapProperty__ ``` -------------------------------- ### Create Node Templates Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditorLogic.Services.LogicNodeFactory.html Generates a list of available node templates. These templates define the structure and behavior of nodes. ```csharp public IList CreateTemplates() ``` -------------------------------- ### ConnectorStartChangedEventArgs Class Definition Source: https://wieslawsoltes.github.io/NodeEditor/api/NodeEditor.Model.ConnectorStartChangedEventArgs.html Represents the event arguments used when a connector start operation occurs. ```csharp public sealed class ConnectorStartChangedEventArgs : EventArgs ```