Example #1
0
decimal r_tau(bool round)
{
#ifdef USE_CGAL
	return r_pi(round)*d2;
#else
	return r_round_preference(M_TAU,round);
#endif
}
Example #2
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);
}