Example #1
0
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);
}
Example #2
0
decimal r_acos_deg(const decimal& a,bool round)
{
	return r_deg(r_acos(a,false),round);
}