mirror of https://github.com/CGAL/cgal
Change namespaces from internal::Convex_hull_3 to Convex_hull_3::internal
On-going uniformization work
This commit is contained in:
parent
75bd7b3b79
commit
1db10135a6
|
|
@ -142,7 +142,7 @@ namespace CGAL
|
|||
boost::optional<typename Kernel_traits<typename std::iterator_traits<PlaneIterator>::value_type>::Kernel::Point_3> const& origin = boost::none) {
|
||||
typedef typename Kernel_traits<typename std::iterator_traits<PlaneIterator>::value_type>::Kernel K;
|
||||
typedef typename K::Point_3 Point_3;
|
||||
typedef typename internal::Convex_hull_3::Default_traits_for_Chull_3<Point_3>::type Traits;
|
||||
typedef typename Convex_hull_3::internal::Default_traits_for_Chull_3<Point_3>::type Traits;
|
||||
|
||||
halfspace_intersection_with_constructions_3(pbegin, pend, P, origin, Traits());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,11 +24,10 @@
|
|||
#include <CGAL/convex_hull_3.h>
|
||||
#include <CGAL/result_of.h>
|
||||
|
||||
|
||||
|
||||
namespace CGAL {
|
||||
namespace Convex_hull_3 {
|
||||
namespace internal {
|
||||
|
||||
namespace Convex_hull_impl{
|
||||
template <class F, class PointPropertyMap>
|
||||
struct Forward_functor
|
||||
: public F
|
||||
|
|
@ -67,10 +66,13 @@ struct Forward_functor
|
|||
get(vpm_,s));
|
||||
}
|
||||
};
|
||||
}//end Convex_hull_impl
|
||||
|
||||
} // namespace internal
|
||||
} // namespace Convex_hull_3
|
||||
|
||||
template<
|
||||
class PointPropertyMap,
|
||||
class Base_traits=typename internal::Convex_hull_3::Default_traits_for_Chull_3<
|
||||
class Base_traits = typename Convex_hull_3::internal::Default_traits_for_Chull_3<
|
||||
typename boost::property_traits<PointPropertyMap>::value_type>::type
|
||||
>
|
||||
class Extreme_points_traits_adapter_3
|
||||
|
|
@ -85,10 +87,11 @@ public:
|
|||
{}
|
||||
typedef typename boost::property_traits<PointPropertyMap>::key_type Vertex;
|
||||
typedef Vertex Point_3;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Base_traits::Equal_3, PointPropertyMap> Equal_3;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Base_traits::Collinear_3, PointPropertyMap> Collinear_3;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Base_traits::Coplanar_3, PointPropertyMap> Coplanar_3;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Base_traits::Less_distance_to_point_3, PointPropertyMap> Less_distance_to_point_3;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Base_traits::Equal_3, PointPropertyMap> Equal_3;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Base_traits::Collinear_3, PointPropertyMap> Collinear_3;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Base_traits::Coplanar_3, PointPropertyMap> Coplanar_3;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Base_traits::Less_distance_to_point_3, PointPropertyMap> Less_distance_to_point_3;
|
||||
|
||||
class Less_signed_distance_to_plane_3
|
||||
:public Base_traits::Less_signed_distance_to_plane_3
|
||||
{
|
||||
|
|
@ -167,11 +170,11 @@ public:
|
|||
Proj_traits_3(const PointPropertyMap& map,const Btt& base):
|
||||
Base_proj_traits(base),vpm_(map){}
|
||||
typedef Point_3 Point_2;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Btt::Equal_2, PointPropertyMap> Equal_2;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Btt::Less_xy_2, PointPropertyMap> Less_xy_2;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Btt::Less_yx_2, PointPropertyMap> Less_yx_2;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Btt::Less_signed_distance_to_line_2, PointPropertyMap> Less_signed_distance_to_line_2;
|
||||
typedef Convex_hull_impl::Forward_functor<typename Btt::Left_turn_2, PointPropertyMap> Left_turn_2;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Btt::Equal_2, PointPropertyMap> Equal_2;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Btt::Less_xy_2, PointPropertyMap> Less_xy_2;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Btt::Less_yx_2, PointPropertyMap> Less_yx_2;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Btt::Less_signed_distance_to_line_2, PointPropertyMap> Less_signed_distance_to_line_2;
|
||||
typedef Convex_hull_3::internal::Forward_functor<typename Btt::Left_turn_2, PointPropertyMap> Left_turn_2;
|
||||
|
||||
class Less_rotate_ccw_2:public Btt::Less_rotate_ccw_2
|
||||
{
|
||||
|
|
@ -212,7 +215,7 @@ public:
|
|||
Orientation_2 orientation_2_object ()const{return Orientation_2(vpm_,static_cast<const Btt*>(this)->orientation_2_object() );}
|
||||
};
|
||||
|
||||
typedef internal::Convex_hull_3::Projection_traits<Base_traits> Base_PTraits;
|
||||
typedef Convex_hull_3::internal::Projection_traits<Base_traits> Base_PTraits;
|
||||
typedef Proj_traits_3<typename Base_PTraits::Traits_xy_3> Traits_xy_3;
|
||||
typedef Proj_traits_3<typename Base_PTraits::Traits_yz_3> Traits_yz_3;
|
||||
typedef Proj_traits_3<typename Base_PTraits::Traits_xz_3> Traits_xz_3;
|
||||
|
|
|
|||
|
|
@ -67,7 +67,8 @@ namespace CGAL {
|
|||
// Forward declaration
|
||||
template<class VertexPointMap,class Base_traits> class Extreme_points_traits_adapter_3;
|
||||
|
||||
namespace internal{ namespace Convex_hull_3{
|
||||
namespace Convex_hull_3 {
|
||||
namespace internal {
|
||||
|
||||
// wrapper used as a MutableFaceGraph to extract extreme points
|
||||
template <class OutputIterator>
|
||||
|
|
@ -81,7 +82,7 @@ struct Output_iterator_wrapper
|
|||
|
||||
template <class Point_3, class OutputIterator>
|
||||
void add_isolated_points(const Point_3& point,
|
||||
internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator>& w)
|
||||
Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator>& w)
|
||||
{
|
||||
*w.out++ = point;
|
||||
}
|
||||
|
|
@ -94,16 +95,17 @@ void add_isolated_points(const Point_3& point, Polyhedron_3& P)
|
|||
|
||||
template <class Point_3, class OutputIterator>
|
||||
void copy_ch2_to_face_graph(const std::list<Point_3>& CH_2,
|
||||
internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator>& w)
|
||||
Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator>& w)
|
||||
{
|
||||
for(const Point_3& p : CH_2)
|
||||
*w.out++ = p;
|
||||
}
|
||||
|
||||
} } // internal::Convex_hull_3
|
||||
} // namespace internal
|
||||
} // namespace Convex_hull_3
|
||||
|
||||
template <class TDS, class OutputIterator>
|
||||
void copy_face_graph(const TDS& tds, internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator>& wrapper)
|
||||
void copy_face_graph(const TDS& tds, Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator>& wrapper)
|
||||
{
|
||||
typedef typename boost::graph_traits<TDS>::vertex_descriptor vertex_descriptor;
|
||||
typename boost::property_map<TDS, boost::vertex_point_t >::const_type vpm = get(boost::vertex_point, tds);
|
||||
|
|
@ -114,12 +116,12 @@ void copy_face_graph(const TDS& tds, internal::Convex_hull_3::Output_iterator_wr
|
|||
}
|
||||
|
||||
template <class OutputIterator>
|
||||
void clear(internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator>&)
|
||||
void clear(Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator>&)
|
||||
{}
|
||||
|
||||
template <class Point, class OutputIterator>
|
||||
void make_tetrahedron(const Point& p0, const Point& p1, const Point& p2, const Point& p3,
|
||||
internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator>& w)
|
||||
Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator>& w)
|
||||
{
|
||||
*w.out++ = p0;
|
||||
*w.out++ = p1;
|
||||
|
|
@ -129,19 +131,20 @@ void make_tetrahedron(const Point& p0, const Point& p1, const Point& p2, const P
|
|||
|
||||
} // CGAL
|
||||
|
||||
namespace boost{
|
||||
namespace boost {
|
||||
|
||||
// needed so that the regular make_tetrahedron of CGAL does not complain when tried to be instantiated
|
||||
template <class OutputIterator>
|
||||
struct graph_traits<CGAL::internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator> >
|
||||
struct graph_traits<CGAL::Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator> >
|
||||
{
|
||||
typedef void* halfedge_descriptor;
|
||||
};
|
||||
}
|
||||
|
||||
} // namespace boost
|
||||
|
||||
namespace CGAL {
|
||||
|
||||
|
||||
namespace internal{ namespace Convex_hull_3{
|
||||
namespace Convex_hull_3 {
|
||||
namespace internal {
|
||||
|
||||
//struct to select the default traits class for computing convex hull
|
||||
template< class Point_3,
|
||||
|
|
@ -440,7 +443,7 @@ void coplanar_3_hull(InputIterator first, InputIterator beyond,
|
|||
const Point_3& p1, const Point_3& p2, const Point_3& p3,
|
||||
Polyhedron_3& P, const Traits& traits )
|
||||
{
|
||||
typedef typename internal::Convex_hull_3::Projection_traits<Traits> PTraits;
|
||||
typedef typename Convex_hull_3::internal::Projection_traits<Traits> PTraits;
|
||||
typedef typename PTraits::Traits_xy_3 Traits_xy_3;
|
||||
typedef typename PTraits::Traits_yz_3 Traits_yz_3;
|
||||
typedef typename PTraits::Traits_xz_3 Traits_xz_3;
|
||||
|
|
@ -848,7 +851,8 @@ ch_quickhull_polyhedron_3(std::list<typename Traits::Point_3>& points,
|
|||
|
||||
}
|
||||
|
||||
} } //namespace internal::Convex_hull_3
|
||||
} // namespace internal
|
||||
} // namespace Convex_hull_3
|
||||
|
||||
template <class InputIterator, class Traits>
|
||||
void
|
||||
|
|
@ -936,7 +940,7 @@ convex_hull_3(InputIterator first, InputIterator beyond,
|
|||
}
|
||||
|
||||
// result will be a polyhedron
|
||||
typedef typename internal::Convex_hull_3::Default_polyhedron_for_Chull_3<Traits>::type Polyhedron;
|
||||
typedef typename Convex_hull_3::internal::Default_polyhedron_for_Chull_3<Traits>::type Polyhedron;
|
||||
Polyhedron P;
|
||||
|
||||
P3_iterator minx, maxx, miny, it;
|
||||
|
|
@ -948,9 +952,9 @@ convex_hull_3(InputIterator first, InputIterator beyond,
|
|||
if(it->y() < miny->y()) miny = it;
|
||||
}
|
||||
if(! collinear(*minx, *maxx, *miny) ){
|
||||
internal::Convex_hull_3::ch_quickhull_polyhedron_3(points, minx, maxx, miny, P, traits);
|
||||
Convex_hull_3::internal::ch_quickhull_polyhedron_3(points, minx, maxx, miny, P, traits);
|
||||
} else {
|
||||
internal::Convex_hull_3::ch_quickhull_polyhedron_3(points, point1_it, point2_it, point3_it, P, traits);
|
||||
Convex_hull_3::internal::ch_quickhull_polyhedron_3(points, point1_it, point2_it, point3_it, P, traits);
|
||||
}
|
||||
CGAL_assertion(num_vertices(P)>=3);
|
||||
typename boost::graph_traits<Polyhedron>::vertex_iterator b,e;
|
||||
|
|
@ -976,7 +980,7 @@ template <class InputIterator>
|
|||
void convex_hull_3(InputIterator first, InputIterator beyond, Object& ch_object)
|
||||
{
|
||||
typedef typename std::iterator_traits<InputIterator>::value_type Point_3;
|
||||
typedef typename internal::Convex_hull_3::Default_traits_for_Chull_3<Point_3>::type Traits;
|
||||
typedef typename Convex_hull_3::internal::Default_traits_for_Chull_3<Point_3>::type Traits;
|
||||
convex_hull_3(first, beyond, ch_object, Traits());
|
||||
}
|
||||
|
||||
|
|
@ -1009,7 +1013,7 @@ void convex_hull_3(InputIterator first, InputIterator beyond,
|
|||
// if there is only one point or all points are equal
|
||||
if(point2_it == points.end())
|
||||
{
|
||||
internal::Convex_hull_3::add_isolated_points(*point1_it, polyhedron);
|
||||
Convex_hull_3::internal::add_isolated_points(*point1_it, polyhedron);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1028,12 +1032,12 @@ void convex_hull_3(InputIterator first, InputIterator beyond,
|
|||
min_max_element(points.begin(), points.end(),
|
||||
boost::bind(less_dist, *points.begin(), _1, _2),
|
||||
boost::bind(less_dist, *points.begin(), _1, _2));
|
||||
internal::Convex_hull_3::add_isolated_points(*endpoints.first, polyhedron);
|
||||
internal::Convex_hull_3::add_isolated_points(*endpoints.second, polyhedron);
|
||||
Convex_hull_3::internal::add_isolated_points(*endpoints.first, polyhedron);
|
||||
Convex_hull_3::internal::add_isolated_points(*endpoints.second, polyhedron);
|
||||
return;
|
||||
}
|
||||
|
||||
internal::Convex_hull_3::ch_quickhull_polyhedron_3(points, point1_it, point2_it, point3_it,
|
||||
Convex_hull_3::internal::ch_quickhull_polyhedron_3(points, point1_it, point2_it, point3_it,
|
||||
polyhedron, traits);
|
||||
}
|
||||
|
||||
|
|
@ -1046,7 +1050,7 @@ void convex_hull_3(InputIterator first, InputIterator beyond,
|
|||
>::type* =0) //workaround to avoid ambiguity with next overload.
|
||||
{
|
||||
typedef typename std::iterator_traits<InputIterator>::value_type Point_3;
|
||||
typedef typename internal::Convex_hull_3::Default_traits_for_Chull_3<Point_3, Polyhedron_3>::type Traits;
|
||||
typedef typename Convex_hull_3::internal::Default_traits_for_Chull_3<Point_3, Polyhedron_3>::type Traits;
|
||||
convex_hull_3(first, beyond, polyhedron, Traits());
|
||||
}
|
||||
|
||||
|
|
@ -1080,7 +1084,7 @@ extreme_points_3(const InputRange& range,
|
|||
OutputIterator out,
|
||||
const Traits& traits)
|
||||
{
|
||||
internal::Convex_hull_3::Output_iterator_wrapper<OutputIterator> wrapper(out);
|
||||
Convex_hull_3::internal::Output_iterator_wrapper<OutputIterator> wrapper(out);
|
||||
convex_hull_3(range.begin(), range.end(), wrapper, traits);
|
||||
return out;
|
||||
}
|
||||
|
|
@ -1091,7 +1095,7 @@ extreme_points_3(const InputRange& range, OutputIterator out)
|
|||
{
|
||||
typedef typename InputRange::const_iterator Iterator_type;
|
||||
typedef typename std::iterator_traits<Iterator_type>::value_type Point_3;
|
||||
typedef typename internal::Convex_hull_3::Default_traits_for_Chull_3<Point_3>::type Traits;
|
||||
typedef typename Convex_hull_3::internal::Default_traits_for_Chull_3<Point_3>::type Traits;
|
||||
|
||||
return extreme_points_3(range, out, Traits());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ typedef CGAL::Simple_cartesian<double> SCD;
|
|||
typedef CGAL::Simple_homogeneous<double> SHD;
|
||||
typedef CGAL::Simple_cartesian<Exact_rational> SCR;
|
||||
|
||||
using namespace CGAL::internal::Convex_hull_3;
|
||||
using namespace CGAL::Convex_hull_3::internal;
|
||||
|
||||
int main()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue