int CGALFragment::getFragments(CGAL::Scalar r) { int fn=fragmentNumber; if(fn > 0) return (int)(fn >= 3 ? fn : 3); CGAL::Scalar fe=fragmentError; //solve R=r/cos(pi/n) for n where R=radius and r=inradius if(fe > 0.0) return to_integer(r_ceil(r_pi() / r_acos((r-fe)/r,false))); CGAL::Scalar fs=fragmentSize; CGAL::Scalar fa=fragmentAngle; CGAL::Scalar f=std::min(CGAL::Scalar(360.0) / fa, r*CGAL::Scalar(r_tau()) / fs); return std::max(int(ceil(to_double(f))),5); }
decimal r_acos_deg(const decimal& a,bool round) { return r_deg(r_acos(a,false),round); }