Stream support

This commit is contained in:
Daniel Mills 2020-10-24 00:29:13 -04:00
parent 87cce116af
commit 5d3faba762
3 changed files with 25 additions and 1 deletions

View File

@ -3,6 +3,9 @@ package com.volmit.iris.noise;
import java.util.List;
import com.volmit.iris.Iris;
import com.volmit.iris.gen.v2.scaffold.layer.ProceduralStream;
import com.volmit.iris.gen.v2.scaffold.stream.CNGStream;
import com.volmit.iris.gen.v2.scaffold.stream.FittedStream;
import com.volmit.iris.util.IRare;
import com.volmit.iris.util.IrisInterpolation;
import com.volmit.iris.util.KList;
@ -44,6 +47,16 @@ public class CNG
return generator;
}
public ProceduralStream<Double> stream()
{
return new CNGStream(this);
}
public ProceduralStream<Double> stream(double min, double max)
{
return new FittedStream(stream(), min, max);
}
public static CNG signature(RNG rng)
{
return signature(rng, NoiseType.SIMPLEX);

View File

@ -1,5 +1,6 @@
package com.volmit.iris.object;
import com.volmit.iris.gen.v2.scaffold.layer.ProceduralStream;
import com.volmit.iris.noise.CNG;
import com.volmit.iris.noise.CNGFactory;
import com.volmit.iris.noise.NoiseType;
@ -408,6 +409,16 @@ public enum NoiseStyle
this.f = f;
}
public ProceduralStream<Double> stream(RNG seed)
{
return create(seed).stream();
}
public ProceduralStream<Double> stream(long seed)
{
return create(new RNG(seed)).stream();
}
public CNG create(RNG seed)
{
return f.create(seed).bake();

View File

@ -275,7 +275,7 @@ public class IrisInterpolation
int z1 = (int) Math.round(fz * rad);
int x2 = (int) Math.round((fx + 1) * rad);
int z2 = (int) Math.round((fz + 1) * rad);
double px = rangeScale(0, 1, x1, x2, x);
double pz = rangeScale(0, 1, z1, z2, z);
//@builder