private void ApplyBias()
{
// set corners and midpoint
float[] corners = new float[4];
int c = 0;
for ( int i = 0; i < args.RaisedCorners; i++ ) {
corners[c++] = args.Bias;
}
for ( int i = 0; i < args.LoweredCorners; i++ ) {
corners[c++] = -args.Bias;
}
float midpoint = ( args.MidPoint * args.Bias );
// shuffle corners
corners = corners.OrderBy( r => rand.Next() ).ToArray();
// overlay the bias
Noise.ApplyBias( heightmap, corners[0], corners[1], corners[2], corners[3], midpoint );
}