| 77 | 
  | 
  setT *vertices; | 
| 78 | 
  | 
  int curlong, totlong; | 
| 79 | 
  | 
 | 
| 80 | 
– | 
  Vector3d boxMax; | 
| 81 | 
– | 
  Vector3d boxMin; | 
| 82 | 
– | 
   | 
| 80 | 
  | 
  vector<double> ptArray(numpoints*dim_); | 
| 81 | 
  | 
 | 
| 82 | 
  | 
  // Copy the positon vector into a points vector for qhull. | 
| 206 | 
  | 
  // RealType calcvol = 0.0; | 
| 207 | 
  | 
   | 
| 208 | 
  | 
  qh_triangulate (); | 
| 212 | 
– | 
  int num_facets = qh num_facets; | 
| 213 | 
– | 
  int num_vertices = qh num_vertices; | 
| 209 | 
  | 
 | 
| 210 | 
  | 
  FORALLfacets {   | 
| 211 | 
  | 
    Triangle face; | 
| 283 | 
  | 
  qh_getarea(qh facet_list); | 
| 284 | 
  | 
  volume_ = qh totvol; | 
| 285 | 
  | 
  area_ = qh totarea; | 
| 291 | 
– | 
 | 
| 292 | 
– | 
  int index = 0; | 
| 293 | 
– | 
  FORALLvertices { | 
| 294 | 
– | 
    Vector3d point(vertex->point[0], vertex->point[1], vertex->point[2]); | 
| 295 | 
– | 
    if (index == 0) { | 
| 296 | 
– | 
      boxMax = point; | 
| 297 | 
– | 
      boxMin = point; | 
| 298 | 
– | 
    } else { | 
| 299 | 
– | 
      for (int i = 0; i < 3; i++) { | 
| 300 | 
– | 
        boxMax[i] = max(boxMax[i], point[i]); | 
| 301 | 
– | 
        boxMin[i] = min(boxMin[i], point[i]); | 
| 302 | 
– | 
      } | 
| 303 | 
– | 
    } | 
| 304 | 
– | 
    index++; | 
| 305 | 
– | 
  } | 
| 306 | 
– | 
  boundingBox_ = Mat3x3d(0.0); | 
| 307 | 
– | 
  boundingBox_(0,0) = boxMax[0] - boxMin[0]; | 
| 308 | 
– | 
  boundingBox_(1,1) = boxMax[1] - boxMin[1]; | 
| 309 | 
– | 
  boundingBox_(2,2) = boxMax[2] - boxMin[2]; | 
| 286 | 
  | 
      | 
| 287 | 
  | 
  qh_freeqhull(!qh_ALL); | 
| 288 | 
  | 
  qh_memfreeshort(&curlong, &totlong); |