mirror of https://github.com/CGAL/cgal
Merge branch 'releases/CGAL-4.14-branch'
# Conflicts: # Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h
This commit is contained in:
commit
b18a17eba7
|
|
@ -798,9 +798,9 @@ int main()
|
|||
{
|
||||
CGAL::Set_ieee_double_precision pfr;
|
||||
|
||||
Test< CGAL::Simple_cartesian<typename CGAL::internal::Exact_field_selector<void*>::Type > >().run();
|
||||
Test< CGAL::Simple_cartesian<CGAL::internal::Exact_field_selector<void*>::Type > >().run();
|
||||
Test< CGAL::Cartesian<double> >().run();
|
||||
Test< CGAL::Homogeneous<typename CGAL::internal::Exact_field_selector<void*>::Type > >().run();
|
||||
Test< CGAL::Homogeneous<CGAL::internal::Exact_field_selector<void*>::Type > >().run();
|
||||
Test< CGAL::Exact_predicates_inexact_constructions_kernel >().run();
|
||||
Test< CGAL::Exact_predicates_exact_constructions_kernel >().run();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -579,12 +579,12 @@ public:
|
|||
if ( opposite(next(h1, tm1), tm1) == prev(opposite(h1, tm1), tm1) )
|
||||
{
|
||||
inter_edges_to_remove1.insert(edge(next(h1, tm1),tm1));
|
||||
inter_edges_to_remove1.insert(edge(next(h2, tm2),tm2));
|
||||
inter_edges_to_remove2.insert(edge(next(h2, tm2),tm2));
|
||||
}
|
||||
if ( opposite(prev(h1, tm1), tm1) == next(opposite(h1, tm1), tm1) )
|
||||
{
|
||||
inter_edges_to_remove1.insert(edge(prev(h1, tm1), tm1));
|
||||
inter_edges_to_remove1.insert(edge(prev(h2, tm2), tm2));
|
||||
inter_edges_to_remove2.insert(edge(prev(h2, tm2), tm2));
|
||||
}
|
||||
}
|
||||
// same but for h2
|
||||
|
|
@ -598,12 +598,12 @@ public:
|
|||
if ( opposite(next(h2, tm2), tm2) == prev(opposite(h2, tm2), tm2) )
|
||||
{
|
||||
inter_edges_to_remove1.insert(edge(next(h1, tm1),tm1));
|
||||
inter_edges_to_remove1.insert(edge(next(h2, tm2),tm2));
|
||||
inter_edges_to_remove2.insert(edge(next(h2, tm2),tm2));
|
||||
}
|
||||
if ( opposite(prev(h2, tm2), tm2) == next(opposite(h2, tm2), tm2) )
|
||||
{
|
||||
inter_edges_to_remove1.insert(edge(prev(h1, tm1), tm1));
|
||||
inter_edges_to_remove1.insert(edge(prev(h2, tm2), tm2));
|
||||
inter_edges_to_remove2.insert(edge(prev(h2, tm2), tm2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -611,9 +611,15 @@ public:
|
|||
++epp_it;
|
||||
}
|
||||
for(edge_descriptor ed : inter_edges_to_remove1)
|
||||
{
|
||||
put(marks_on_input_edges.ecm1, ed, false);
|
||||
intersection_edges1.erase(ed);
|
||||
}
|
||||
for(edge_descriptor ed : inter_edges_to_remove2)
|
||||
{
|
||||
put(marks_on_input_edges.ecm2, ed, false);
|
||||
intersection_edges2.erase(ed);
|
||||
}
|
||||
|
||||
// (1) Assign a patch id to each facet indicating in which connected
|
||||
// component limited by intersection edges of the surface they are.
|
||||
|
|
|
|||
|
|
@ -143,8 +143,11 @@ public:
|
|||
static
|
||||
FT to_ft(const Sqrt_3& x)
|
||||
{
|
||||
FT sqrt_e = compute_sqrt( to_ft(x.e()), FT_Has_sqrt() );
|
||||
FT sqrt_f = compute_sqrt( to_ft(x.f()), FT_Has_sqrt() );
|
||||
// If the number type does not offer a square root, x.e() and x.f() (which are of type sqrt_1)
|
||||
// might be negative after (approximately) evaluating them. Taking the max sanitize these values
|
||||
// to ensure that we do not take the square root of a negative number.
|
||||
FT sqrt_e = compute_sqrt( (std::max)(FT(0), to_ft(x.e())), FT_Has_sqrt() );
|
||||
FT sqrt_f = compute_sqrt( (std::max)(FT(0), to_ft(x.f())), FT_Has_sqrt() );
|
||||
FT sqrt_ef = sqrt_e * sqrt_f;
|
||||
return to_ft(x.a()) + to_ft(x.b()) * sqrt_e
|
||||
+ to_ft(x.c()) * sqrt_f + to_ft(x.d()) * sqrt_ef;
|
||||
|
|
|
|||
Loading…
Reference in New Issue