Some opts

This commit is contained in:
Zoë Gidiere committed 2023-10-07 18:23:36 -06:00
1 parent 2f1b8690ff
commit 29e5b9f3ff
5 files changed
+42 -35

No files matched your search

@@ -4,8 +4,7 @@ import com.dfsek.terra.addons.image.colorsampler.ColorSampler;
import com.dfsek.terra.addons.image.util.ColorUtil;
import com.dfsek.terra.addons.image.util.ColorUtil.Channel;
import com.dfsek.terra.api.noise.NoiseSampler;
import static com.dfsek.terra.addons.image.util.MathUtil.lerp;
import com.dfsek.terra.api.util.MathUtil;
public class ChannelNoiseSampler implements NoiseSampler {
@@ -30,7 +29,7 @@ public class ChannelNoiseSampler implements NoiseSampler {
int sample = colorSampler.apply((int) x, (int) y);
int premultiplied = premultiply ? ColorUtil.premultiply(sample) : sample;
double channelValue = channel.from(premultiplied);
return normalize ? lerp(channelValue, 0, -1, 255, 1) : channelValue;
return normalize ? MathUtil.linearMap(channelValue, 0, -1, 255, 1) : channelValue;
}
@Override
@@ -4,8 +4,7 @@ import com.dfsek.terra.addons.image.image.Image;
import com.dfsek.terra.addons.image.util.ColorUtil;
import com.dfsek.terra.addons.image.util.ColorUtil.Channel;
import com.dfsek.terra.api.noise.NoiseSampler;
import static com.dfsek.terra.addons.image.util.MathUtil.lerp;
import com.dfsek.terra.api.util.MathUtil;
/**
@@ -157,11 +156,11 @@ public class DistanceTransform {
double d = distances[x][y];
distances[x][y] = switch(normalization) {
case None -> distances[x][y];
case Linear -> lerp(d, minDistance, -1, maxDistance, 1);
case Linear -> MathUtil.linearMap(d, minDistance, -1, maxDistance, 1);
case SmoothPreserveZero -> {
if(minDistance > 0 || maxDistance < 0) {
// Can't preserve zero if it is not contained in range so just lerp
yield lerp(distances[x][y], minDistance, -1, maxDistance, 1);
yield MathUtil.linearMap(distances[x][y], minDistance, -1, maxDistance, 1);
} else {
if(d > 0) {
yield Math.pow(d/maxDistance, 2);
@@ -1,9 +0,0 @@
package com.dfsek.terra.addons.image.util;
public class MathUtil {
private MathUtil() {}
public static double lerp(double x, double x1, double y1, double x2, double y2) {
return (((y1-y2)*(x-x1))/(x1-x2))+y1;
}
}