Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
Plot2DLine.cs
4
6{
16 {
17 private static readonly ArgumentType[] argumentTypes4Parameters = new ArgumentType[] { ArgumentType.Vector, ArgumentType.Vector, ArgumentType.Scalar, ArgumentType.Scalar };
18 private static readonly ArgumentType[] argumentTypes3Parameters = new ArgumentType[] { ArgumentType.Vector, ArgumentType.Vector, ArgumentType.Scalar };
19 private static readonly ArgumentType[] argumentTypes2Parameters = new ArgumentType[] { ArgumentType.Vector, ArgumentType.Vector };
20
30 : base(new ScriptNode[] { X, Y }, argumentTypes2Parameters, Start, Length, Expression)
31 {
32 }
33
44 : base(new ScriptNode[] { X, Y, Color }, argumentTypes3Parameters, Start, Length, Expression)
45 {
46 }
47
59 : base(new ScriptNode[] { X, Y, Color, Size }, argumentTypes4Parameters, Start, Length, Expression)
60 {
61 }
62
66 public override string FunctionName => nameof(Plot2DLine);
67
71 public override string[] DefaultArgumentNames
72 {
73 get { return new string[] { "x", "y", "color", "size" }; }
74 }
75
83 {
84 if (!(Arguments[0] is IVector X))
85 throw new ScriptRuntimeException("Expected vector for X argument.", this);
86
87 if (!(Arguments[1] is IVector Y))
88 throw new ScriptRuntimeException("Expected vector for Y argument.", this);
89
90 int Dimension = X.Dimension;
91 if (Y.Dimension != Dimension)
92 throw new ScriptRuntimeException("Vector size mismatch.", this);
93
94 IElement Color = Arguments.Length <= 2 ? null : Arguments[2];
95 IElement Size = Arguments.Length <= 3 ? null : Arguments[3];
96
97 return new Graph2D(Variables, X, Y, new Plot2DLinePainter(), false, false, this,
98 Color?.AssociatedObjectValue ?? Graph.DefaultColor, Size?.AssociatedObjectValue ?? 2.0);
99 }
100 }
101}
Class managing a script expression.
Definition: Expression.cs:39
override string[] DefaultArgumentNames
Default Argument names
Definition: Plot2DLine.cs:72
override IElement Evaluate(IElement[] Arguments, Variables Variables)
Evaluates the function.
Definition: Plot2DLine.cs:82
Plot2DLine(ScriptNode X, ScriptNode Y, int Start, int Length, Expression Expression)
Plots a two-dimensional line.
Definition: Plot2DLine.cs:29
override string FunctionName
Name of the function
Definition: Plot2DLine.cs:66
Plot2DLine(ScriptNode X, ScriptNode Y, ScriptNode Color, int Start, int Length, Expression Expression)
Plots a two-dimensional line.
Definition: Plot2DLine.cs:43
Plot2DLine(ScriptNode X, ScriptNode Y, ScriptNode Color, ScriptNode Size, int Start, int Length, Expression Expression)
Plots a two-dimensional line.
Definition: Plot2DLine.cs:58
Handles two-dimensional graphs.
Definition: Graph2D.cs:26
Base class for graphs.
Definition: Graph.cs:79
static readonly SKColor DefaultColor
Default color: Red
Definition: Graph.cs:118
Base class for multivariate funcions.
ScriptNode[] Arguments
Function arguments.
Base class for all nodes in a parsed script tree.
Definition: ScriptNode.cs:69
int Length
Length of expression covered by node.
Definition: ScriptNode.cs:101
Expression Expression
Expression of which the node is a part.
Definition: ScriptNode.cs:177
int Start
Start position in script expression.
Definition: ScriptNode.cs:92
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
Basic interface for vectors.
Definition: IVector.cs:9
ArgumentType
Type of parameter used in a function definition or a lambda definition.
Definition: IFunction.cs:9