2using System.Collections.Generic;
49 : base(new
ScriptNode[] { N, FlameFunctions, DimX, DimY, Seed },
60 : base(new
ScriptNode[] { N, FlameFunctions, DimX, DimY },
69 : base(new
ScriptNode[] { N, FlameFunctions, DimX },
92 "N",
"FlameFunctions",
"DimX",
"DimY",
"Seed"
118 object Obj =
Arguments[i++].AssociatedObjectValue;
120 if (!(Obj is Array FlameArray))
121 throw new ScriptRuntimeException(
"The second parameter to EstimateFlameSize must be an array, containing flame definitions.",
this);
123 List<FlameFunction> FlameFunctions =
new List<FlameFunction>();
127 foreach (
object FlameItem
in FlameArray)
132 FlameFunctions.Add(CurrentFunction);
134 else if (FlameItem is SKColor || FlameItem is
string)
136 if (CurrentFunction is
null)
138 M =
new DoubleMatrix(
new double[,] { { 1, 0 }, { 0, 1 } });
140 FlameFunctions.Add(CurrentFunction);
144 cl.ToHsl(out
float H, out
float S, out
float L);
146 CurrentFunction.SetColorHsl(H, S, L);
147 CurrentFunction =
null;
151 if (CurrentFunction is
null)
153 M =
new DoubleMatrix(
new double[,] { { 1, 0 }, { 0, 1 } });
155 FlameFunctions.Add(CurrentFunction);
158 CurrentFunction.Add(Var);
162 if (CurrentFunction is
null)
164 M =
new DoubleMatrix(
new double[,] { { 1, 0 }, { 0, 1 } });
166 FlameFunctions.Add(CurrentFunction);
169 CurrentFunction.Add(Lambda);
177 if (CurrentFunction is
null)
179 M =
new DoubleMatrix(
new double[,] { { 1, 0 }, { 0, 1 } });
181 FlameFunctions.Add(CurrentFunction);
184 CurrentFunction.SetWeight(Weight);
217 throw new ScriptRuntimeException(
"Parameter mismatch in call to EstimateFlameSize(N,FlameFunctions[dimx[,dimy[,Seed]]]).",
221 if (dimx <= 0 || dimx > 5000 || dimy <= 0 || dimy > 5000)
231 private static readonly Random gen =
new Random();
Script runtime exception.
Class managing a script expression.
static double ToDouble(object Object)
Converts an object to a double value.
Estimates the size of a flame fractal.
EstimateFlameSize(ScriptNode N, ScriptNode FlameFunctions, ScriptNode DimX, int Start, int Length, Expression Expression)
TODO
EstimateFlameSize(ScriptNode N, ScriptNode FlameFunctions, ScriptNode DimX, ScriptNode DimY, ScriptNode Seed, int Start, int Length, Expression Expression)
TODO
override IElement Evaluate(IElement[] Arguments, Variables Variables)
TODO
EstimateFlameSize(ScriptNode N, ScriptNode FlameFunctions, ScriptNode DimX, ScriptNode DimY, int Start, int Length, Expression Expression)
TODO
EstimateFlameSize(ScriptNode N, ScriptNode FlameFunctions, int Start, int Length, Expression Expression)
TODO
override string FunctionName
TODO
override string[] DefaultArgumentNames
TODO
Calculates a flame fractal in RGBA space. Intensity is calculated along the A-axis....
static void EstimateSize(out double xCenter, out double yCenter, out double rDelta, FlameFunction[] Functions, int Width, int Height, int Seed, long N, Variables Variables, ScriptNode Node)
TODO
static SKColor ToColor(object Object)
Converts an object to a color.
Base class for multivariate funcions.
ScriptNode[] Arguments
Function arguments.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
Expression Expression
Expression of which the node is a part.
int Start
Start position in script expression.
TextWriter ConsoleOut
Console out interface. Can be used by functions and script to output data to the console.
Basic interface for all types of elements.
Base interface for lambda expressions.
ArgumentType
Type of parameter used in a function definition or a lambda definition.