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); }
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"; } }
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]); }