public ElevationHelper smooth(List <Center> centers, int passes) { for (int i = 0; i < passes; i++) { ElevationFunctions.smooth(centers); } return(this); }
public ElevationHelper applyFeatures(List <ElevationFeature> features) { foreach (var feature in features) { int iterations = feature.getIterations(random); foreach (var i in Enumerable.Range(0, iterations)) { Vector2 offset = feature.getOffsetVector(random); switch (feature.feature) { case ElevationFeature.FeatureType.RADIAL_GRADIENT: linearRadialGradient(offset.x, offset.y, feature.getHeight(random), feature.getRadius(random)); break; case ElevationFeature.FeatureType.NOISE: noise(feature.noiseScale, feature.getHeight(random)); break; case ElevationFeature.FeatureType.POSITION_BIASED_NOISE: radialNoise(offset.x, offset.y, feature.getRadius(random), feature.noiseScale, feature.getHeight(random)); break; case ElevationFeature.FeatureType.SMOOTH: ElevationFunctions.smooth(centers); break; case ElevationFeature.FeatureType.MOUND: mound(offset.x, offset.y, feature.getHeight(random), feature.getRadius(random)); break; case ElevationFeature.FeatureType.PLATEAU: plateau(offset.x, offset.y, feature.getHeight(random), feature.getRadius(random)); break; case ElevationFeature.FeatureType.CRATER: crater(offset.x, offset.y, feature.getRadius(random)); break; } } } return(this); }