diff --git a/Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h b/Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h
index 94bd0e7a041..0575e4ed9e2 100644
--- a/Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h
+++ b/Mesh_3/include/CGAL/Mesh_3/Refine_facets_3.h
@@ -425,10 +425,13 @@ protected:
const Point& p,
const Index& index) const
{
+ typename Gt::Construct_point_3 cp =
+ r_tr_.geom_traits().construct_point_3_object();
+
const Facet mirror = mirror_facet(f);
- f.first->set_facet_surface_center(f.second, p.point());
- mirror.first->set_facet_surface_center(mirror.second, p.point());
+ f.first->set_facet_surface_center(f.second, cp(p));
+ mirror.first->set_facet_surface_center(mirror.second, cp(p));
f.first->set_facet_surface_center_index(f.second,index);
mirror.first->set_facet_surface_center_index(mirror.second,index);
@@ -761,7 +764,7 @@ public:
typedef Container_ Container; // Because we need it in Mesher_level
typedef typename Container::Element Container_element;
- typedef typename Tr::Point Point;
+ typedef typename Tr::Point Point;//Weighted_point
typedef typename Tr::Facet Facet;
typedef typename Tr::Vertex_handle Vertex_handle;
typedef typename Triangulation_mesher_level_traits_3
::Zone Zone;
@@ -1818,6 +1821,8 @@ is_facet_encroached(const Facet& facet,
typename Gt::Compare_power_distance_3 compare_distance =
r_tr_.geom_traits().compare_power_distance_3_object();
+ typename Gt::Construct_point_3 cp =
+ r_tr_.geom_traits().construct_point_3_object();
const Cell_handle& cell = facet.first;
const int& facet_index = facet.second;
@@ -1826,7 +1831,7 @@ is_facet_encroached(const Facet& facet,
// facet is encroached if the new point is near from center than
// one vertex of the facet
- return ( compare_distance(center.point(), reference_point, point) != CGAL::SMALLER );
+ return ( compare_distance(cp(center), reference_point, point) != CGAL::SMALLER );
}
template
@@ -1843,8 +1848,6 @@ is_encroached_facet_refinable(Facet& facet) const
typename Gt::Compare_weighted_squared_radius_3 compare =
Gt().compare_weighted_squared_radius_3_object();
- typename Gt::Construct_point_3 wp2p = Gt().construct_point_3_object();
-
const Cell_handle& c = facet.first;
const int& k = facet.second;
diff --git a/Mesh_3/include/CGAL/Mesh_3/Robust_weighted_circumcenter_filtered_traits_3.h b/Mesh_3/include/CGAL/Mesh_3/Robust_weighted_circumcenter_filtered_traits_3.h
index b60f6ffbd8c..f5bf6beb34c 100644
--- a/Mesh_3/include/CGAL/Mesh_3/Robust_weighted_circumcenter_filtered_traits_3.h
+++ b/Mesh_3/include/CGAL/Mesh_3/Robust_weighted_circumcenter_filtered_traits_3.h
@@ -90,7 +90,8 @@ public:
const Weighted_point & r,
const Weighted_point & s ) const
{
- return this->operator()(p.point(), q.point(), r.point(), s.point());
+ typename K::Construct_point_3 cp = K().construct_point_3_object();
+ return this->operator()(cp(p), cp(q), cp(r), cp(s));
}
FT operator() ( const Bare_point & p,
@@ -182,7 +183,8 @@ public:
const Weighted_point & s,
bool force_exact = false) const
{
- CGAL_precondition(Rt().orientation_3_object()(p.point(),q.point(),r.point(),s.point()) == CGAL::POSITIVE);
+ CGAL_precondition(Rt().orientation_3_object()(
+ wp2p(p), wp2p(q), wp2p(r), wp2p(s)) == CGAL::POSITIVE);
// We use power_side_of_power_sphere_3: it is static filtered and
// we know that p,q,r,s are positive oriented
@@ -211,7 +213,7 @@ public:
Bare_point res(p.x() + num_x*inv, p.y() - num_y*inv, p.z() + num_z*inv);
if(unweighted){
- if(side_of_oriented_sphere(p.point(),q.point(),r.point(),s.point(), res)
+ if (side_of_oriented_sphere(wp2p(p), wp2p(q), wp2p(r), wp2p(s), res)
== CGAL::ON_POSITIVE_SIDE )
return res;
} else {
@@ -279,12 +281,14 @@ public:
typename Rt::Side_of_bounded_sphere_3 side_of_bounded_sphere =
Rt().side_of_bounded_sphere_3_object();
-
+ typename Rt::Construct_point_3 cp =
+ Rt().construct_point_3_object();
+
// No division here
result_type point = weighted_circumcenter(p,q);
// Fast output
- if ( side_of_bounded_sphere(p.point(),q.point(),point) == CGAL::ON_BOUNDED_SIDE )
+ if ( side_of_bounded_sphere(cp(p), cp(q), point) == CGAL::ON_BOUNDED_SIDE )
return point;
// Switch to exact
diff --git a/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h b/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h
index 260cfabd53a..ce8c1cc3291 100644
--- a/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h
+++ b/Mesh_3/include/CGAL/Mesh_3/Slivers_exuder.h
@@ -1124,7 +1124,8 @@ pump_vertex(const Vertex_handle& pumped_vertex,
// If best_weight < pumped_vertex weight, nothing to do
if ( best_weight > pumped_vertex->point().weight() )
{
- Weighted_point wp(pumped_vertex->point().point(), best_weight);
+ typename Gt::Construct_point_3 wp2p = Gt().construct_point_3_object();
+ Weighted_point wp(wp2p(pumped_vertex->point()), best_weight);
// Insert weighted point into mesh
// note it can fail if the mesh is non-manifold at pumped_vertex