From 1028ebccbb9fdfa1b52e4ca0b0d56ae002cde936 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Mon, 4 Jan 2021 20:43:15 -0500 Subject: [PATCH] Calculate true interpolation radius for specifc algos --- .../volmit/iris/util/IrisInterpolation.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/com/volmit/iris/util/IrisInterpolation.java b/src/main/java/com/volmit/iris/util/IrisInterpolation.java index 02af41cf5..40062c4fb 100644 --- a/src/main/java/com/volmit/iris/util/IrisInterpolation.java +++ b/src/main/java/com/volmit/iris/util/IrisInterpolation.java @@ -1,5 +1,6 @@ package com.volmit.iris.util; +import com.google.common.util.concurrent.AtomicDouble; import com.volmit.iris.generator.noise.CNG; import com.volmit.iris.object.InterpolationMethod; import com.volmit.iris.object.NoiseStyle; @@ -618,6 +619,23 @@ public class IrisInterpolation //@done } + public static double getRealRadius(InterpolationMethod method, int x, int z, double h) + { + AtomicDouble rad = new AtomicDouble(h); + AtomicDouble accessX = new AtomicDouble(); + AtomicDouble accessZ = new AtomicDouble(); + NoiseProvider np = (x1, z1) -> { + double d = Math.max(Math.abs(x1-x), Math.abs(z1 - z)); + if(d > rad.get()) + { + rad.set(d); + } + return 0; + }; + getNoise(method, x, z, h, np); + return rad.get(); + } + public static double getNoise(InterpolationMethod method, int x, int z, double h, NoiseProvider n) { if(method.equals(InterpolationMethod.BILINEAR))