mirror of https://github.com/CGAL/cgal
the notion of border for a halfedge is not encoded using a property map
This commit is contained in:
parent
da77e0d819
commit
0b8314e28d
|
|
@ -250,14 +250,6 @@ namespace CGAL {
|
|||
return Params(p, *this);
|
||||
}
|
||||
|
||||
template <typename IsBorderMap>
|
||||
cgal_bgl_named_params<IsBorderMap, halfedge_is_border_t, self>
|
||||
halfedge_is_border_map(const IsBorderMap& p) const
|
||||
{
|
||||
typedef cgal_bgl_named_params<IsBorderMap, halfedge_is_border_t, self> Params;
|
||||
return Params(p, *this);
|
||||
}
|
||||
|
||||
template <typename Visitor>
|
||||
cgal_bgl_named_params<Visitor, boost::graph_visitor_t, self>
|
||||
visitor(const Visitor& p) const
|
||||
|
|
@ -377,14 +369,6 @@ namespace CGAL {
|
|||
return Params(pmap);
|
||||
}
|
||||
|
||||
template <typename IsBorderMap>
|
||||
cgal_bgl_named_params<IsBorderMap, halfedge_is_border_t>
|
||||
halfedge_is_border_map(IsBorderMap const& p)
|
||||
{
|
||||
typedef cgal_bgl_named_params<IsBorderMap, halfedge_is_border_t> Params;
|
||||
return Params(p);
|
||||
}
|
||||
|
||||
template <typename Visitor>
|
||||
cgal_bgl_named_params<Visitor, boost::graph_visitor_t>
|
||||
visitor(const Visitor& p)
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ enum vertex_external_index_t { vertex_external_index } ;
|
|||
|
||||
/// A property tag which refers to the property
|
||||
/// of a halfedge of being a border halfedge.
|
||||
enum halfedge_is_border_t { halfedge_is_border };
|
||||
enum edge_external_index_t { edge_external_index } ;
|
||||
|
||||
/// A property tag which identifies the *index* property of
|
||||
|
|
@ -100,8 +99,6 @@ using boost::halfedge_index_t;
|
|||
using boost::halfedge_index;
|
||||
using boost::halfedge_external_index_t;
|
||||
using boost::halfedge_external_index;
|
||||
using boost::halfedge_is_border_t;
|
||||
using boost::halfedge_is_border;
|
||||
using boost::edge_external_index_t;
|
||||
using boost::edge_external_index;
|
||||
using boost::face_index_t;
|
||||
|
|
|
|||
|
|
@ -52,36 +52,6 @@ private:
|
|||
const OpenMesh::PolyMesh_ArrayKernelT<K>& sm_;
|
||||
};
|
||||
|
||||
|
||||
template<typename K, typename Key>
|
||||
class OM_is_border_pmap
|
||||
{
|
||||
public:
|
||||
typedef boost::read_write_property_map_tag category;
|
||||
typedef bool value_type;
|
||||
typedef bool reference;
|
||||
typedef Key key_type;
|
||||
|
||||
OM_is_border_pmap(const OpenMesh::PolyMesh_ArrayKernelT<K>& sm)
|
||||
: sm_(sm)
|
||||
{}
|
||||
|
||||
friend reference get(OM_is_border_pmap pm, key_type k)
|
||||
{
|
||||
return pm.sm_.is_boundary(k);
|
||||
}
|
||||
|
||||
friend void put(OM_is_border_pmap pm, key_type k , bool b)
|
||||
{
|
||||
if(b){
|
||||
const_cast<OpenMesh::PolyMesh_ArrayKernelT<K>& >(pm.sm_).set_face_handle(k, typename OpenMesh::PolyMesh_ArrayKernelT<K>::FaceHandle());
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
const OpenMesh::PolyMesh_ArrayKernelT<K>& sm_;
|
||||
};
|
||||
|
||||
template <typename K, typename VEF>
|
||||
class OM_index_pmap : public boost::put_get_helper<std::size_t, OM_index_pmap<K,VEF> >
|
||||
{
|
||||
|
|
@ -224,31 +194,6 @@ struct property_map<OpenMesh::PolyMesh_ArrayKernelT<K>, boost::vertex_point_t >
|
|||
typedef type const_type;
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// vertex_is_border
|
||||
//
|
||||
|
||||
template<typename K>
|
||||
struct property_map<OpenMesh::PolyMesh_ArrayKernelT<K>, CGAL::vertex_is_border_t >
|
||||
{
|
||||
typedef CGAL::OM_is_border_pmap<K, typename boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >::vertex_descriptor>
|
||||
type;
|
||||
typedef type const_type;
|
||||
};
|
||||
|
||||
//
|
||||
// halfedge_is_border
|
||||
//
|
||||
|
||||
template<typename K>
|
||||
struct property_map<OpenMesh::PolyMesh_ArrayKernelT<K>, CGAL::halfedge_is_border_t >
|
||||
{
|
||||
typedef CGAL::OM_is_border_pmap<K, typename boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >::halfedge_descriptor>
|
||||
type;
|
||||
typedef type const_type;
|
||||
};
|
||||
|
||||
} // namespace boost
|
||||
|
||||
namespace boost {
|
||||
|
|
@ -306,21 +251,6 @@ get(boost::vertex_point_t, const OpenMesh::PolyMesh_ArrayKernelT<K>& g)
|
|||
return CGAL::OM_point_pmap<K,P>(g);
|
||||
}
|
||||
|
||||
|
||||
template<typename K>
|
||||
CGAL::OM_is_border_pmap<K, typename boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >::vertex_descriptor>
|
||||
get(boost::vertex_is_border_t, const OpenMesh::PolyMesh_ArrayKernelT<K>& g)
|
||||
{
|
||||
return CGAL::OM_is_border_pmap<K, typename boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >::vertex_descriptor>(g);
|
||||
}
|
||||
|
||||
template<typename K>
|
||||
CGAL::OM_is_border_pmap<K, typename boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >::halfedge_descriptor>
|
||||
get(boost::halfedge_is_border_t, const OpenMesh::PolyMesh_ArrayKernelT<K>& g)
|
||||
{
|
||||
return CGAL::OM_is_border_pmap<K, typename boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> >::halfedge_descriptor>(g);
|
||||
}
|
||||
|
||||
// get for intrinsic properties
|
||||
#define CGAL_OM_INTRINSIC_PROPERTY(RET, PROP, TYPE) \
|
||||
template<typename K> \
|
||||
|
|
@ -336,7 +266,6 @@ get(boost::halfedge_is_border_t, const OpenMesh::PolyMesh_ArrayKernelT<K>& g)
|
|||
// CGAL_OM_INTRINSIC_PROPERTY(std::size_t, boost::halfedge_index_t, face_descriptor)
|
||||
CGAL_OM_INTRINSIC_PROPERTY(typename CGAL::Exact_predicates_inexact_constructions_kernel::Point_3, boost::vertex_point_t, vertex_descriptor)
|
||||
CGAL_OM_INTRINSIC_PROPERTY(bool, boost::vertex_is_border_t, vertex_descriptor)
|
||||
CGAL_OM_INTRINSIC_PROPERTY(bool, boost::halfedge_is_border_t, halfedge_descriptor)
|
||||
|
||||
#undef CGAL_OM_INTRINSIC_PROPERTY
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@ void concept_check_polyhedron() {
|
|||
boost::function_requires< boost::concepts::ReadablePropertyGraph<Sm, face_descriptor, CGAL::face_index_t> >();
|
||||
boost::function_requires< boost::concepts::ReadablePropertyGraph<Sm, halfedge_descriptor, CGAL::halfedge_index_t> >();
|
||||
// boost::function_requires< boost::concepts::ReadablePropertyGraph<Sm, vertex_descriptor, CGAL::vertex_is_border_t> >();
|
||||
boost::function_requires< boost::concepts::ReadablePropertyGraph<Sm, halfedge_descriptor, CGAL::halfedge_is_border_t> >();
|
||||
// null
|
||||
boost::graph_traits<Sm>::null_vertex();
|
||||
boost::graph_traits<Sm>::null_face();
|
||||
|
|
|
|||
|
|
@ -51,8 +51,6 @@ void concept_check_polyhedron() {
|
|||
|
||||
boost::function_requires< boost::concepts::PropertyGraph<
|
||||
Polyhedron, halfedge_descriptor, CGAL::halfedge_index_t> >();
|
||||
boost::function_requires< boost::concepts::ReadablePropertyGraph<
|
||||
Polyhedron, halfedge_descriptor, CGAL::halfedge_is_border_t> >();
|
||||
boost::function_requires< boost::concepts::ReadablePropertyGraph<
|
||||
Polyhedron, edge_descriptor, boost::edge_index_t> >();
|
||||
boost::function_requires< boost::concepts::ReadablePropertyGraph<
|
||||
|
|
|
|||
Loading…
Reference in New Issue