mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-18 10:32:30 +00:00
Implement linear map normalizer
Updated astrash commit
This commit is contained in:
parent
f877f861cf
commit
4970bf5720
@ -97,6 +97,7 @@ public class NoiseAddon implements AddonInitializer {
|
|||||||
.applyLoader(CubicSpline.Point.class, CubicSplinePointTemplate::new);
|
.applyLoader(CubicSpline.Point.class, CubicSplinePointTemplate::new);
|
||||||
|
|
||||||
noiseRegistry.register(addon.key("LINEAR"), LinearNormalizerTemplate::new);
|
noiseRegistry.register(addon.key("LINEAR"), LinearNormalizerTemplate::new);
|
||||||
|
noiseRegistry.register(addon.key("LINEAR_MAP"), LinearMapNormalizerTemplate::new);
|
||||||
noiseRegistry.register(addon.key("NORMAL"), NormalNormalizerTemplate::new);
|
noiseRegistry.register(addon.key("NORMAL"), NormalNormalizerTemplate::new);
|
||||||
noiseRegistry.register(addon.key("CLAMP"), ClampNormalizerTemplate::new);
|
noiseRegistry.register(addon.key("CLAMP"), ClampNormalizerTemplate::new);
|
||||||
noiseRegistry.register(addon.key("PROBABILITY"), ProbabilityNormalizerTemplate::new);
|
noiseRegistry.register(addon.key("PROBABILITY"), ProbabilityNormalizerTemplate::new);
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.dfsek.terra.addons.noise.config.templates.normalizer;
|
||||||
|
|
||||||
|
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.noise.normalizer.LinearMapNormalizer;
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
|
|
||||||
|
public class LinearMapNormalizerTemplate extends NormalizerTemplate<LinearMapNormalizer> {
|
||||||
|
|
||||||
|
@Value("from.a")
|
||||||
|
private double aFrom;
|
||||||
|
|
||||||
|
@Value("from.b")
|
||||||
|
private double bFrom;
|
||||||
|
|
||||||
|
@Value("to.a")
|
||||||
|
private double aTo;
|
||||||
|
|
||||||
|
@Value("to.b")
|
||||||
|
private double bTo;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NoiseSampler get() {
|
||||||
|
return new LinearMapNormalizer(function, aFrom, aTo, bFrom, bTo);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.dfsek.terra.addons.noise.normalizer;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
|
|
||||||
|
|
||||||
|
public class LinearMapNormalizer extends Normalizer {
|
||||||
|
|
||||||
|
private final double aFrom;
|
||||||
|
|
||||||
|
private final double aTo;
|
||||||
|
|
||||||
|
private final double bFrom;
|
||||||
|
|
||||||
|
private final double bTo;
|
||||||
|
|
||||||
|
public LinearMapNormalizer(NoiseSampler sampler, double aFrom, double aTo, double bFrom, double bTo) {
|
||||||
|
super(sampler);
|
||||||
|
this.aFrom = aFrom;
|
||||||
|
this.aTo = aTo;
|
||||||
|
this.bFrom = bFrom;
|
||||||
|
this.bTo = bTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double normalize(double in) {
|
||||||
|
return (in - aFrom) * (aTo - bTo) / (aFrom - bFrom) + aTo;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user