diff --git a/Operations_on_polyhedra/include/CGAL/orient_polyhedron_3.h b/Operations_on_polyhedra/include/CGAL/orient_polyhedron_3.h index 2e9055b4a88..d6cf0ea0296 100644 --- a/Operations_on_polyhedra/include/CGAL/orient_polyhedron_3.h +++ b/Operations_on_polyhedra/include/CGAL/orient_polyhedron_3.h @@ -2,7 +2,7 @@ #define CGAL_ORIENT_POLYHEDRON_3 #include -#include +#include namespace CGAL { namespace internal { @@ -14,47 +14,6 @@ struct Axis_compare { { return v0.point()[axis] < v1.point()[axis]; } }; -// Taken from compute_normal.h inside Polyhedron demo // -template -typename Kernel::Vector_3 compute_facet_normal(const Facet& f) -{ - typedef typename Kernel::Point_3 Point; - typedef typename Kernel::Vector_3 Vector; - typedef typename Facet::Halfedge_around_facet_const_circulator HF_circulator; - Vector normal = CGAL::NULL_VECTOR; - HF_circulator he = f.facet_begin(); - HF_circulator end = he; - CGAL_For_all(he,end) - { - const Point& prev = he->prev()->vertex()->point(); - const Point& curr = he->vertex()->point(); - const Point& next = he->next()->vertex()->point(); - Vector n = CGAL::cross_product(next-curr,prev-curr); - normal = normal + n; - } - return normal / std::sqrt(normal * normal); -} - -template -typename Kernel::Vector_3 compute_vertex_normal(const Vertex& v) -{ - typedef typename Kernel::Vector_3 Vector; - typedef typename Vertex::Halfedge_around_vertex_const_circulator HV_circulator; - typedef typename Vertex::Facet Facet; - Vector normal = CGAL::NULL_VECTOR; - HV_circulator he = v.vertex_begin(); - HV_circulator end = he; - CGAL_For_all(he,end) - { - if(!he->is_border()) - { - Vector n = compute_facet_normal(*he->facet()); - normal = normal + (n / std::sqrt(n*n)); - } - } - return normal; // No need to normalize here -} - } // namespace internal /** @@ -86,7 +45,7 @@ bool is_oriented(const Polyhedron& polyhedron) { = std::min_element(polyhedron.vertices_begin(), polyhedron.vertices_end(), internal::Axis_compare()); typedef typename Polyhedron::Traits K; - const typename K::Vector_3& normal_v_min = internal::compute_vertex_normal(*v_min); + const typename K::Vector_3& normal_v_min = compute_vertex_normal(*v_min); CGAL_warning(normal_v_min[axis] != 0); return normal_v_min[axis] < 0;