Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
Layout.cs
1using SkiaSharp;
2using System.Collections.Generic;
3using System.Threading.Tasks;
4using System.Xml;
5using Waher.Script;
10
12{
17 {
25 public Layout(ScriptNode Xml, int Start, int Length, Expression Expression)
26 : base(Xml, Start, Length, Expression)
27 {
28 }
29
33 public override string FunctionName => nameof(Layout);
34
38 public override string[] DefaultArgumentNames => new string[] { "XML" };
39
44 public override bool IsAsynchronous => base.IsAsynchronous;
45
52 public override IElement Evaluate(IElement Argument, Variables Variables)
53 {
54 return this.EvaluateAsync(Argument, Variables).Result;
55 }
56
63 public override async Task<IElement> EvaluateAsync(IElement Argument, Variables Variables)
64 {
65 object Obj = Argument.AssociatedObjectValue;
66
67 if (Obj is string s)
68 return await FromLayout(s, Variables);
69 else if (Obj is XmlDocument XmlDoc)
70 return await FromLayout(XmlDoc, Variables);
71 else if (Obj is XmlElement E)
72 return await FromLayout(E, Variables);
73 else if (Obj is Layout2DDocument Doc)
74 return await FromLayout(Doc, Variables);
75 else
76 throw new ScriptRuntimeException("Expected an XML argument.", this);
77 }
78
79
86 public static async Task<GraphBitmap> FromLayout(string Xml, Variables Variables)
87 {
88 Layout2DDocument Doc = await Layout2DDocument.FromXml(Xml, true, Variables);
89 return await FromLayout(Doc, Variables);
90 }
91
98 public static async Task<GraphBitmap> FromLayout(XmlElement Xml, Variables Variables)
99 {
101 return await FromLayout(Doc, Variables);
102 }
103
110 public static async Task<GraphBitmap> FromLayout(XmlDocument Xml, Variables Variables)
111 {
113 return await FromLayout(Doc, Variables);
114 }
115
122 public static async Task<GraphBitmap> FromLayout(Layout2DDocument Doc, Variables Variables)
123 {
124 RenderSettings Settings = await Doc.GetRenderSettings(Variables);
125 KeyValuePair<SKImage, Map[]> P = await Doc.Render(Settings);
126
128 GraphBitmap Result = new GraphBitmap(Variables, Pixels);
129
130 return Result;
131 }
132
133 }
134}
Presents a Layout as a bitmapped graph.
Definition: Layout.cs:17
static async Task< GraphBitmap > FromLayout(Layout2DDocument Doc, Variables Variables)
Generates a GraphBitmap from a Layout.
Definition: Layout.cs:122
override bool IsAsynchronous
If the node (or its decendants) include asynchronous evaluation. Asynchronous nodes should be evaluat...
Definition: Layout.cs:44
override string FunctionName
Name of the function
Definition: Layout.cs:33
override IElement Evaluate(IElement Argument, Variables Variables)
Evaluates the function.
Definition: Layout.cs:52
static async Task< GraphBitmap > FromLayout(string Xml, Variables Variables)
Generates a GraphBitmap from a Layout.
Definition: Layout.cs:86
static async Task< GraphBitmap > FromLayout(XmlElement Xml, Variables Variables)
Generates a GraphBitmap from a Layout.
Definition: Layout.cs:98
Layout(ScriptNode Xml, int Start, int Length, Expression Expression)
Presents a Layout as a bitmapped graph.
Definition: Layout.cs:25
static async Task< GraphBitmap > FromLayout(XmlDocument Xml, Variables Variables)
Generates a GraphBitmap from a Layout.
Definition: Layout.cs:110
override string[] DefaultArgumentNames
Default Argument names
Definition: Layout.cs:38
override async Task< IElement > EvaluateAsync(IElement Argument, Variables Variables)
Evaluates the function.
Definition: Layout.cs:63
Contains a 2D layout document.
async Task< KeyValuePair< SKImage, Map[]> > Render(RenderSettings Settings)
Renders the layout to an image
static Task< Layout2DDocument > FromXml(string Xml, params KeyValuePair< string, object >[] Attachments)
Parses a 2D layout document from its XML definition.
async Task< RenderSettings > GetRenderSettings(Variables Session)
Creates a render settings object.
Class managing a script expression.
Definition: Expression.cs:39
Handles bitmap-based graphs.
Definition: GraphBitmap.cs:13
Contains pixel information
static PixelInformation FromImage(SKImage Image)
Gets the pixel information from an SKImage.
Base class for funcions of one variable.
Base class for all nodes in a parsed script tree.
Definition: ScriptNode.cs:69
Collection of variables.
Definition: Variables.cs:25
Basic interface for all types of elements.
Definition: IElement.cs:20
object AssociatedObjectValue
Associated object value.
Definition: IElement.cs:33