public NodeGrid(Sz2 <int> strides, IEnumerable <P1V <int, float> > tuples, int generation, int seed) { Strides = strides; Values = new float[Strides.Count()]; foreach (var tup in tuples) { Values[tup.X] = tup.V; } Generation = generation; Seed = seed; var randy = GenV.Twist(Seed); Noise = GenS.NormalSF32(randy, 0.0f, 1.0f).Take(Strides.Count()).ToArray(); NextSeed = randy.Next(); var Offhi = new P2 <int>(0, -1); var Offlo = new P2 <int>(0, 1); var Offlf = new P2 <int>(-1, 0); var Offrt = new P2 <int>(1, 0); Top = GridUtil.OffsetIndexes(Strides, Offhi); Bottom = GridUtil.OffsetIndexes(Strides, Offlo); Left = GridUtil.OffsetIndexes(Strides, Offlf); Right = GridUtil.OffsetIndexes(Strides, Offrt); }
public Star4Grid(float[,] initVals, float[,] fixedVals, int seed) { Seed = seed; Noise = GenS.NormalSF32(GenV.Twist(seed), 0.0f, 1.0f); Stars = Star4Procs.MakeStarGrid(initVals, fixedVals); Rows = Stars.GetLength(1); Columns = Stars.GetLength(0); Generation = 0; }
public StarGrid(float[,] initVals, int noiseSeed) { NoiseSeed = noiseSeed; Noise = GenS.NormalSF32(GenV.Twist(NoiseSeed), 0.0f, 1.0f); Stars = StarProcs.MakeStarGrid(initVals); Rows = Stars.GetLength(1); Columns = Stars.GetLength(0); Generation = 0; }