36 void get_circle (
const vector<vec3> &point,
tsize q1,
tsize q2,
vec3 ¢er,
39 center = (point[q1]+point[q2]).Norm();
40 cosrad = dotprod(point[q1],center);
41 for (
tsize i=0; i<q1; ++i)
42 if (dotprod(point[i],center)<cosrad)
44 center=crossprod(point[q1]-point[i],point[q2]-point[i]).Norm();
45 cosrad=dotprod(point[i],center);
47 { center.
Flip(); cosrad=-cosrad; }
50 void get_circle (
const vector<vec3> &point,
tsize q,
vec3 ¢er,
53 center = (point[0]+point[q]).Norm();
54 cosrad = dotprod(point[0],center);
55 for (
tsize i=1; i<q; ++i)
56 if (dotprod(point[i],center)<cosrad)
57 get_circle(point,i,q,center,cosrad);
65 tsize np=point.size();
67 center = (point[0]+point[1]).Norm();
68 cosrad = dotprod(point[0],center);
69 for (
tsize i=2; i<np; ++i)
70 if (dotprod(point[i],center)<cosrad)
71 get_circle(point,i,center,cosrad);
void find_enclosing_circle(const std::vector< vec3 > &point, vec3 ¢er, double &cosrad)
#define planck_assert(testval, msg)