mirror of https://github.com/CGAL/cgal
fix default point property map used in BGL primitives
This commit is contained in:
parent
4d0b730f62
commit
67414ef0c8
|
|
@ -54,31 +54,21 @@ namespace CGAL {
|
|||
*\sa `AABB_halfedge_graph_segment_primitive<HalfedgeGraph,OneHalfedgeGraphPerTree,CacheDatum>`
|
||||
*/
|
||||
template < class FaceGraph,
|
||||
class VertexPointPMap = Default,
|
||||
class VertexPointPMap = typename boost::property_map< FaceGraph, vertex_point_t>::type,
|
||||
class OneFaceGraphPerTree = Tag_true,
|
||||
class CacheDatum=Tag_false >
|
||||
class AABB_face_graph_triangle_primitive
|
||||
#ifndef DOXYGEN_RUNNING
|
||||
: public AABB_primitive<typename boost::graph_traits<FaceGraph>::face_descriptor,
|
||||
Triangle_from_face_descriptor_property_map<
|
||||
FaceGraph,
|
||||
typename Default::Get<VertexPointPMap,
|
||||
typename boost::property_map< FaceGraph,
|
||||
vertex_point_t>::type >::type>,
|
||||
One_point_from_face_descriptor_property_map<
|
||||
FaceGraph,
|
||||
typename Default::Get<VertexPointPMap,
|
||||
typename boost::property_map< FaceGraph,
|
||||
vertex_point_t>::type >::type>,
|
||||
Triangle_from_face_descriptor_property_map<FaceGraph, VertexPointPMap>,
|
||||
One_point_from_face_descriptor_property_map<FaceGraph, VertexPointPMap>,
|
||||
OneFaceGraphPerTree,
|
||||
CacheDatum >
|
||||
#endif
|
||||
{
|
||||
typedef typename Default::Get<VertexPointPMap, typename boost::property_map< FaceGraph, vertex_point_t>::type >::type VertexPointPMap_;
|
||||
|
||||
typedef typename boost::graph_traits<FaceGraph>::face_descriptor Id_;
|
||||
typedef Triangle_from_face_descriptor_property_map<FaceGraph,VertexPointPMap_> Triangle_property_map;
|
||||
typedef One_point_from_face_descriptor_property_map<FaceGraph,VertexPointPMap_> Point_property_map;
|
||||
typedef Triangle_from_face_descriptor_property_map<FaceGraph,VertexPointPMap> Triangle_property_map;
|
||||
typedef One_point_from_face_descriptor_property_map<FaceGraph,VertexPointPMap> Point_property_map;
|
||||
|
||||
typedef AABB_primitive< Id_,
|
||||
Triangle_property_map,
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ template < class HalfedgeGraph,
|
|||
class VertexPointPMap >
|
||||
struct Segment_from_edge_descriptor_property_map{
|
||||
|
||||
Segment_from_edge_descriptor_property_map()
|
||||
Segment_from_edge_descriptor_property_map() : m_graph(NULL)
|
||||
{}
|
||||
|
||||
Segment_from_edge_descriptor_property_map(HalfedgeGraph* g)
|
||||
|
|
@ -126,9 +126,12 @@ Segment_from_edge_descriptor_property_map(HalfedgeGraph* g)
|
|||
template <class FaceGraph,
|
||||
class VertexPointPMap>
|
||||
struct One_point_from_face_descriptor_property_map{
|
||||
One_point_from_face_descriptor_property_map() : m_graph(NULL)
|
||||
{}
|
||||
|
||||
One_point_from_face_descriptor_property_map(FaceGraph* g = NULL)
|
||||
One_point_from_face_descriptor_property_map(FaceGraph* g)
|
||||
: m_graph( const_cast<typename boost::remove_const<FaceGraph>::type*>(g) )
|
||||
, m_vppm( get(vertex_point, *m_graph) )
|
||||
{}
|
||||
|
||||
One_point_from_face_descriptor_property_map(FaceGraph* g, VertexPointPMap vppm )
|
||||
|
|
@ -159,10 +162,12 @@ struct One_point_from_face_descriptor_property_map{
|
|||
template < class HalfedgeGraph,
|
||||
class VertexPointPMap >
|
||||
struct Source_point_from_edge_descriptor{
|
||||
Source_point_from_edge_descriptor(
|
||||
HalfedgeGraph* g = NULL ) :
|
||||
m_graph( const_cast<typename boost::remove_const<HalfedgeGraph>::type*>(g) ),
|
||||
m_vppm( get(vertex_point, *m_graph) )
|
||||
Source_point_from_edge_descriptor() : m_graph(NULL)
|
||||
{}
|
||||
|
||||
Source_point_from_edge_descriptor(HalfedgeGraph* g)
|
||||
: m_graph( const_cast<typename boost::remove_const<HalfedgeGraph>::type*>(g) )
|
||||
, m_vppm( get(vertex_point, *m_graph) )
|
||||
{}
|
||||
|
||||
Source_point_from_edge_descriptor(
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ int main()
|
|||
CGAL::Euler::make_tetrahedron(m, p, q, r, s);
|
||||
|
||||
// constructs AABB tree
|
||||
Tree tree(m.faces_begin(),m.faces_end(),m);
|
||||
Tree tree(faces(m).first, faces(m).second, m);
|
||||
|
||||
// constructs segment query
|
||||
Point a(-0.2, 0.2, -0.2);
|
||||
|
|
|
|||
Loading…
Reference in New Issue