Complete API surface of the Beep.Skia.StateMachine assembly: 12 public types with their documented members. Follow the family guide for usage patterns.

Types in this assembly

ChoiceNode (class)

Choice/Junction pseudostate: evaluates guard conditions and selects one outgoing transition. Rendered as a small diamond shape.

MemberKindDescription
string TitlePropertyGets or sets the title.
ChoiceNode()MethodInitializes a new instance of the ChoiceNode class.
override Dictionary<string, object> GetProperties(bool includeCommon = true, bool includeNodeProperties = true)Method
override void SetPropperties(IDictionary<string, object> properties, bool updateNodeProperties = true, bool applyToPublicSetters = true)MethodGets or sets the set propperties.

CompositeStateNode (class)

Composite state: a state that contains nested sub-states (hierarchical state machine). Rendered as a larger rounded rectangle with a dashed border and title area at top. Child components are positioned within the inner content area.

MemberKindDescription
string TitlePropertyGets or sets the title.
float TitleBarHeightPropertyGets or sets the title bar height.
int RegionCountPropertyNumber of orthogonal regions inside the composite state (1-4). Regions are separated by dashed dividers in the content area.
CompositeStateNode()MethodInitializes a new instance of the CompositeStateNode class.
SKRect GetContentArea()MethodGets the inner content area for child components (below the title bar).
override Dictionary<string, object> GetProperties(bool includeCommon = true, bool includeNodeProperties = true)Method
override void SetPropperties(IDictionary<string, object> properties, bool updateNodeProperties = true, bool applyToPublicSetters = true)MethodGets or sets the set propperties.

FinalStateNode (class)

Final state: double circle (outer ring), one input, no outputs.

MemberKindDescription
string TitlePropertyGets or sets the title.
FinalStateNode()MethodInitializes a new instance of the FinalStateNode class.

ForkNode (class)

Fork pseudostate: one input, two or more outputs. Rendered as a thick horizontal bar splitting a single flow into multiple parallel flows.

MemberKindDescription
string TitlePropertyGets or sets the title.
new int OutPortCountPropertyGets or sets the out port count.
ForkNode()MethodInitializes a new instance of the ForkNode class.
override Dictionary<string, object> GetProperties(bool includeCommon = true, bool includeNodeProperties = true)Method
override void SetPropperties(IDictionary<string, object> properties, bool updateNodeProperties = true, bool applyToPublicSetters = true)MethodGets or sets the set propperties.

HistoryNode (class)

History pseudostate: remembers the last active sub-state within a composite state. Shallow (H) remembers only the immediate sub-state. Deep (H*) remembers the full nesting path. Rendered as a circle with 'H' or 'H*' inside.

MemberKindDescription
string TitlePropertyGets or sets the title.
bool IsDeepPropertyGets or sets the is deep.
HistoryNode()MethodInitializes a new instance of the HistoryNode class.
override Dictionary<string, object> GetProperties(bool includeCommon = true, bool includeNodeProperties = true)Method
override void SetPropperties(IDictionary<string, object> properties, bool updateNodeProperties = true, bool applyToPublicSetters = true)MethodGets or sets the set propperties.

InitialStateNode (class)

Initial state: drawn as a filled circle, no inputs, one output.

MemberKindDescription
string TitlePropertyGets or sets the title.
InitialStateNode()MethodInitializes a new instance of the InitialStateNode class.

JoinNode (class)

Join pseudostate: two or more inputs, one output. Rendered as a thick horizontal bar merging multiple parallel flows into one.

MemberKindDescription
string TitlePropertyGets or sets the title.
new int InPortCountPropertyGets or sets the in port count.
JoinNode()MethodInitializes a new instance of the JoinNode class.
override Dictionary<string, object> GetProperties(bool includeCommon = true, bool includeNodeProperties = true)Method
override void SetPropperties(IDictionary<string, object> properties, bool updateNodeProperties = true, bool applyToPublicSetters = true)MethodGets or sets the set propperties.

StateMachineControl (class)

Base control for State Machine nodes with Material theming and standardized port management.

MemberKindDescription
SKColor BackgroundColorPropertyGets or sets the background color.
SKColor BorderColorPropertyGets or sets the border color.
float BorderThicknessPropertyGets or sets the border thickness.
int InPortCountPropertyGets or sets the in port count.
int OutPortCountPropertyGets or sets the out port count.

StateMachineIssue (class)

A single state-machine validation issue.

MemberKindDescription
string MessagePropertyGets or sets the message.
StateMachineIssueSeverity SeverityPropertyGets or sets the severity.
SkiaComponent? ComponentPropertyGets or sets the component.
IConnectionLine? LinePropertyGets or sets the line.
string? FixSuggestionPropertyGets or sets the fix suggestion.
override string ToString()MethodGets or sets the to string.

StateMachineIssueSeverity (enum)

Severity of a state-machine validation issue.

StateMachineValidator (class)

Validates state-machine diagrams: initial/final states, reachability, and guards/triggers on transitions (read from ConnectionLine.GuardCondition/TriggerEvent, falling back to Label1/Label2 for older diagrams).

MemberKindDescription
List<StateMachineIssue> IssuesPropertyGets or sets the issues.
bool Validate(IReadOnlyList<SkiaComponent> components, IReadOnlyList<IConnectionLine> lines)MethodRuns all checks. Returns true when no errors were found (warnings are allowed).
static string? GetGuard(IConnectionLine line)MethodGets the guard condition for a transition, falling back to Label1 for legacy diagrams.
static string? GetTrigger(IConnectionLine line)MethodGets the trigger event for a transition, falling back to Label2 for legacy diagrams.
static bool SetTransition(IConnectionLine line, string trigger, string guard, string action)MethodSets guard/action/trigger fields on a concrete connection line.

StateNode (class)

Regular state: rounded rectangle with optional title and entry/exit/do activities, one input and multiple outputs.

MemberKindDescription
string TitlePropertyGets or sets the title.
string EntryActionPropertyActivity executed when the state is entered (UML entry action).
string ExitActionPropertyActivity executed when the state is exited (UML exit action).
string DoActivityPropertyActivity executed while the state is active (UML do activity).
StateNode()MethodInitializes a new instance of the StateNode class.