Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. void get_min_max(const char *filename, float *a_min_x, float *a_max_x, float *a_min_y, float *a_max_y, float *a_min_z, float *a_max_z) {
  2.     FILE *f = NULL;
  3.     float
  4.         min_x = FLT_MAX,
  5.         min_y = FLT_MAX,
  6.         min_z = FLT_MAX,
  7.         max_x = -FLT_MAX,
  8.         max_y = -FLT_MAX,
  9.         max_z = -FLT_MAX;
  10.  
  11.     std::ifstream ifsData(filename, std::ios::binary);
  12.  
  13.     if (!ifsData.is_open()) {
  14.         std::printf("!!! - Error, cannot open a file %s for reading\n", filename);
  15.         return;
  16.     }
  17.  
  18.     while(!ifsData.eof())
  19.     {
  20.         float x, y, z;
  21.         int l_type;
  22.         ifsData.read((char*)(&x), sizeof(float));
  23.         ifsData.read((char*)(&y), sizeof(float));
  24.         ifsData.read((char*)(&z), sizeof(float));
  25.         ifsData.read((char*)(&l_type), sizeof(int));
  26.  
  27.         if (x < min_x) {
  28.             min_x = x;
  29.         }
  30.         if (x > max_x) {
  31.             max_x = x;
  32.         }
  33.         if (y < min_y) {
  34.             min_y = y;
  35.         }
  36.         if (y > max_y) {
  37.             max_y = y;
  38.         }
  39.         if (z < min_z) {
  40.             min_z = z;
  41.         }
  42.         if (z > max_z) {
  43.             max_z = z;
  44.         }
  45.     }
  46.  
  47.     *a_min_x = min_x;
  48.     *a_max_x = max_x;
  49.     *a_min_y = min_y;
  50.     *a_max_y = max_y;
  51.     *a_min_z = min_z;
  52.     *a_max_z = max_z;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement