diff --git a/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h b/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h index 2bbc13c7397..c1ec0c05ca6 100644 --- a/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h +++ b/Alpha_shapes_3/include/CGAL/Alpha_shape_3.h @@ -1806,43 +1806,46 @@ Alpha_shape_3::find_optimal_alpha(size_type nb_components) const std::ptrdiff_t half; while (len > 0) + { + half = len / 2; + middle = first + half; + +#ifdef CGAL_DEBUG_ALPHA_SHAPE_3 + std::cerr << "first : " << *first + << " last : " + << ((first+len != last) ? *(first+len) : *(last-1)) + << " mid : " << *middle + << " nb comps : " << number_of_solid_components(*middle) + << std::endl; +#endif + if (number_of_solid_components(*middle) > nb_components) { - half = len / 2; - middle = first + half; - - /* //#ifdef DEBUG */ -/* std::cerr << "first : " << *first */ -/* << " last : " */ -/* << ((first+len != last) ? *(first+len) : *(last-1)) */ -/* << " mid : " << *middle */ -/* << " nb comps : " << number_of_solid_components(*middle) */ -/* << std::endl; */ -/* //#endif // DEBUG */ - - if (number_of_solid_components(*middle) > nb_components) - { - first = middle + 1; - len = len - half -1; - } - else // number_of_solid_components(*middle) <= nb_components - { - len = half; - } + first = middle + 1; + len = len - half -1; } + else // number_of_solid_components(*middle) <= nb_components + { + len = half; + } + } - /* std::cerr << "a la fin " << std::endl */ -/* << "first : " << *first */ -/* << " nb comps : " << number_of_solid_components(*first) */ -/* << std::endl; */ -/* if ((first+1) < alpha_end()) */ -/* std::cerr << "first+1 " << *(first+1) */ -/* << " nb comps : " << number_of_solid_components(*(first+1)) */ -/* << std::endl; */ -/* std::cerr << std::endl; */ +#ifdef CGAL_DEBUG_ALPHA_SHAPE_3 + std::cerr << "In the end: " << std::endl + << "first : " << *first + << " nb comps : " << number_of_solid_components(*first) + << std::endl; + if ((first+1) < alpha_end()) + std::cerr << "first+1 " << *(first+1) + << " nb comps : " << number_of_solid_components(*(first+1)) + << std::endl; + std::cerr << std::endl; +#endif - if (number_of_solid_components(*first) <= nb_components ) return first; - else return first+1; -} + if (number_of_solid_components(*first) <= nb_components ) + return first; + else + return first+1; +} //----------------------------------------------------------------------