Exemplo n.º 1
0
Sphere3D get_enclosing_sphere(const Vector3Ds &vs) {
  Sphere3Ds ss(vs.size());
  for (unsigned int i = 0; i < vs.size(); ++i) {
    ss[i] = Sphere3D(vs[i], 0);
  }
  return get_enclosing_sphere(ss);
}
Exemplo n.º 2
0
Arquivo: io.cpp Projeto: drussel/imp
IMPALGEBRA_BEGIN_NAMESPACE

void write_pts(const Vector3Ds &vs, base::TextOutput out) {
  for (unsigned int i=0; i< vs.size(); ++i) {
    out.get_stream() << spaces_io(vs[i]) << "\n";
  }
}
Exemplo n.º 3
0
Triangle3D get_largest_triangle(const Vector3Ds &points) {
   double max_dist = 0;
   Vector3Ds triple(3);
   for (unsigned int i = 0 ; i < points.size() ; i++) {
     for (unsigned int j = 0 ; j < points.size() ;j++) {
       double dist = algebra::get_squared_distance(points[i],points[j]);
       if (dist > max_dist) {
         max_dist = dist;
         triple[0] = points[i];
         triple[1] = points[j];
       }
     }
   }
    algebra::Segment3D seg(triple[0],triple[1]);
    max_dist=0;
    for (unsigned int i = 0 ; i < points.size();i++) {
      double dist = algebra::get_distance(seg,points[i]);
      if (dist > max_dist) {
        max_dist = dist;
        triple[2] =points[i];
      }
    }
    return Triangle3D(triple[0],triple[1],triple[2]);
}