add a function that convert to double and do the normalization

This commit is contained in:
Sébastien Loriot 2018-12-03 10:16:58 +01:00
parent 881fdab58d
commit 7c6450192e
1 changed files with 17 additions and 0 deletions

View File

@ -71,6 +71,23 @@ VVector convert(const CGAL::Vector_3<R>& v)
CGAL::to_double(v.y()),
CGAL::to_double(v.z())); }
template <typename R>
VVector normalize_and_convert(const CGAL::Vector_3<R>& v)
{
typename R::FT xa = CGAL::abs(v.x());
typename R::FT ya = CGAL::abs(v.y());
typename R::FT za = CGAL::abs(v.z());
typename R::FT m = (std::max)((std::max)(xa,ya),za);
if (m==0) {
return VVector(0,0,0);
} else {
double xd = CGAL::to_double(v.x()/m);
double yd = CGAL::to_double(v.y()/m);
double zd = CGAL::to_double(v.z()/m);
VVector u(xd,yd,zd);
return u / CGAL_NTS sqrt(u*u) ; // normalize
}
}
const double refinement_angle = 0.1;
const double shrink_fac = 0.995;