Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Dec 28th, 2012  |  syntax: None  |  size: 2.30 KB  |  views: 3  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public static void FixHeight(float[,] heights)
  2.         {
  3.             // fix X-axis
  4.             for (int z = 0; z < 5; z++)
  5.             {
  6.                 // left side
  7.  
  8.                 float before = heights[0, z];
  9.  
  10.                 heights[0, z] = (float)Math.Round(heights[0, z]);
  11.  
  12.                 if (heights[0, z] < 0)
  13.                     heights[0, z] = 0;
  14.                 if (heights[0, z] > 1)
  15.                     heights[0, z] = 1;
  16.  
  17.                 float diff = before - heights[0, z];
  18.  
  19.                 for (int x = 1; x < 5; x++)
  20.                 {
  21.                     heights[x, z] = heights[x, z] - diff * (float)(4 - x) / 4f;
  22.                 }
  23.  
  24.                 // right side
  25.                 before = heights[4, z];
  26.  
  27.                 heights[4, z] = (float)Math.Round(heights[4, z]);
  28.  
  29.                 if (heights[4, z] < 0)
  30.                     heights[4, z] = 0;
  31.                 if (heights[4, z] > 1)
  32.                     heights[4, z] = 1;
  33.  
  34.                 diff = before - heights[4, z];
  35.  
  36.                 for (int x = 0; x < 4; x++)
  37.                 {
  38.                     heights[x, z] = heights[x, z] - diff * (float)x / 4f;
  39.                 }
  40.             }
  41.  
  42.             // fix z-axis
  43.             for (int x = 0; x < 5; x++)
  44.             {
  45.                 // left side
  46.  
  47.                 float before = heights[x, 0];
  48.  
  49.                 heights[x, 0] = (float)Math.Round(heights[x, 0]);
  50.  
  51.                 if (heights[x, 0] < 0)
  52.                     heights[x, 0] = 0;
  53.                 if (heights[x, 0] > 1)
  54.                     heights[x, 0] = 1;
  55.  
  56.                 float diff = before - heights[x, 0];
  57.  
  58.                 for (int z = 1; z < 5; z++)
  59.                 {
  60.                     heights[x, z] = heights[x, z] - diff * (float)(4 - z) / 4f;
  61.                 }
  62.  
  63.                 // right side
  64.                 before = heights[x, 4];
  65.  
  66.                 heights[x, 4] = (float)Math.Round(heights[x, 4]);
  67.  
  68.                 if (heights[x, 4] < 0)
  69.                     heights[x, 4] = 0;
  70.                 if (heights[x, 4] > 1)
  71.                     heights[x, 4] = 1;
  72.  
  73.                 diff = before - heights[x, 4];
  74.  
  75.                 for (int z = 0; z < 4; z++)
  76.                 {
  77.                     heights[x, z] = heights[x, z] - diff * (float)z / 4f;
  78.                 }
  79.             }
  80.         }
clone this paste RAW Paste Data