public static GeneratorFunctions Combine(GeneratorFunctions funA, GeneratorFunctions funB) { return(new GeneratorFunctions((x, y, gen, levelgen, level) => { return funA(x, y, gen, levelgen, level) * funB(x, y, gen, levelgen, level); })); }
public List <TimeSeriesPoint> GeneratePoints() { var points = new List <TimeSeriesPoint>(); var pointCount = Context.NumberOfPoints > 0 ? Context.NumberOfPoints : (int)(Context.NumberOfPeriods * Context.WaveformPeriod); for (var i = 0; i < pointCount; ++i) { points.Add(new TimeSeriesPoint { Time = Context.StartTime.PlusTicks(i * Duration.FromTimeSpan(Context.PointInterval).BclCompatibleTicks), Value = Context.WaveformOffset + Context.WaveformScalar * GeneratorFunctions[Context.WaveformType](i + Context.WaveformPhase, Context.WaveformPeriod), GradeCode = Context.GradeCode, Qualifiers = Context.Qualifiers }); } Log.Info($"Generated {pointCount} {Context.WaveformType} points."); return(points); }