Fix MaxTime conversion when FT is not convertible to K1::FT

Although the documentation does say that it is required
to be implicitely convertible. In practice, this wasn't
checked and failed silently: the FT in the template parameter
is not necessarily Input_kernel::FT, but could be e.g. double.
Then the call to Cartesian_converter meant that it actually used the overload:
bool operator()(bool) { ... }
if FT was not convertible to K1::FT (e.g. FT=double and
K1=EPECK_w/_SQRT). Thus this returned... 1.

This commit changes the requirement to be only constructible rather
than convertible, and explicitely creates a K1::FT.
This commit is contained in:
Mael Rouxel-Labbé 2020-09-04 17:59:48 +02:00
parent a0ed2280b8
commit d8d6935559
1 changed files with 2 additions and 1 deletions

View File

@ -55,7 +55,8 @@ create_partial_interior_straight_skeleton_2 ( FT const& aMaxTime
Cartesian_converter<InputKernel, K> Converter ;
boost::optional<KFT> lMaxTime( Converter(aMaxTime) ) ;
KFT kMaxTime = aMaxTime;
boost::optional<KFT> lMaxTime(kMaxTime) ;
SsBuilder ssb( lMaxTime ) ;