public void ReadRawFloat(byte[] bytes) { int res = (int)Mathf.Sqrt(bytes.Length / 4); if (arr_x.Length != res) { arr_x = new float[res]; } if (arr_X.Length != res) { arr_X = new float[res]; } if (arr_z.Length != res) { arr_z = new float[res]; } if (arr_Z.Length != res) { arr_Z = new float[res]; } Matrix.FloatToBytes converter = new Matrix.FloatToBytes(); for (int x = 0; x < res; x++) { int pos = x * 4; converter.b0 = bytes[pos]; converter.b1 = bytes[pos + 1]; converter.b2 = bytes[pos + 2]; converter.b3 = bytes[pos + 3]; arr_x[x] = converter.f * 2; //texture requires halved value for some reason pos = (x + res * (res - 1)) * 4; converter.b0 = bytes[pos]; converter.b1 = bytes[pos + 1]; converter.b2 = bytes[pos + 2]; converter.b3 = bytes[pos + 3]; arr_X[x] = converter.f * 2; } for (int z = 0; z < res; z++) { int pos = z * res * 4; converter.b0 = bytes[pos]; converter.b1 = bytes[pos + 1]; converter.b2 = bytes[pos + 2]; converter.b3 = bytes[pos + 3]; arr_z[z] = converter.f * 2; pos = (z * res + res - 1) * 4; converter.b0 = bytes[pos]; converter.b1 = bytes[pos + 1]; converter.b2 = bytes[pos + 2]; converter.b3 = bytes[pos + 3]; arr_Z[z] = converter.f * 2; } }
public void WriteRawFloat(byte[] bytes) { int res = (int)Mathf.Sqrt(bytes.Length / 4); Matrix.FloatToBytes converter = new Matrix.FloatToBytes(); for (int x = 0; x < res; x++) { converter.f = arr_x[x] / 2; //texture requires halved value for some reason int pos = x * 4; bytes[pos] = converter.b0; bytes[pos + 1] = converter.b1; bytes[pos + 2] = converter.b2; bytes[pos + 3] = converter.b3; converter.f = arr_X[x] / 2; pos = (x + res * (res - 1)) * 4; bytes[pos] = converter.b0; bytes[pos + 1] = converter.b1; bytes[pos + 2] = converter.b2; bytes[pos + 3] = converter.b3; } for (int z = 0; z < res; z++) { converter.f = arr_z[z] / 2; int pos = z * res * 4; bytes[pos] = converter.b0; bytes[pos + 1] = converter.b1; bytes[pos + 2] = converter.b2; bytes[pos + 3] = converter.b3; converter.f = arr_Z[z] / 2; pos = (z * res + res - 1) * 4; bytes[pos] = converter.b0; bytes[pos + 1] = converter.b1; bytes[pos + 2] = converter.b2; bytes[pos + 3] = converter.b3; } }