influences property
Equations describing geographic features.
Implementation
static Map<InfluenceType,double Function(double,[double?, double?])> influences = {
InfluenceType.mesa: (double x,[double? y, double? z]) {
return 1.25*math.min(0.8, math.exp(-(x*x)));
},
InfluenceType.hole: (double x,[double? y, double? z]) {
return -influences[InfluenceType.mesa]!(x);
},
InfluenceType.hill: (double x,[double? y, double? z]) {
// Same curve as EaseInOut, but mirrored and translated.
return x < 0 ? (x+1)*(x+1)*(3-2*(x+1)) : 1-x*x*(3-2*x);
},
InfluenceType.valley: (double x,[double? y, double? z]) {
return -influences[InfluenceType.hill]!(x);
},
InfluenceType.dome: (double x,[double? y, double? z]) {
// Parabola
return -(x+1)*(x-1);
},
// Not meaningful in Additive or Subtractive mode
InfluenceType.flat: (double x,[double? y, double? z]) {
return 0;
},
InfluenceType.volcano: (double x,[double? y, double? z]) {
return 0.94 - 0.32*((2*x).abs() + math.cos(2*math.pi*x.abs() + 0.4));
},
};