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>`
|
*\sa `AABB_halfedge_graph_segment_primitive<HalfedgeGraph,OneHalfedgeGraphPerTree,CacheDatum>`
|
||||||
*/
|
*/
|
||||||
template < class FaceGraph,
|
template < class FaceGraph,
|
||||||
class VertexPointPMap = Default,
|
class VertexPointPMap = typename boost::property_map< FaceGraph, vertex_point_t>::type,
|
||||||
class OneFaceGraphPerTree = Tag_true,
|
class OneFaceGraphPerTree = Tag_true,
|
||||||
class CacheDatum=Tag_false >
|
class CacheDatum=Tag_false >
|
||||||
class AABB_face_graph_triangle_primitive
|
class AABB_face_graph_triangle_primitive
|
||||||
#ifndef DOXYGEN_RUNNING
|
#ifndef DOXYGEN_RUNNING
|
||||||
: public AABB_primitive<typename boost::graph_traits<FaceGraph>::face_descriptor,
|
: public AABB_primitive<typename boost::graph_traits<FaceGraph>::face_descriptor,
|
||||||
Triangle_from_face_descriptor_property_map<
|
Triangle_from_face_descriptor_property_map<FaceGraph, VertexPointPMap>,
|
||||||
FaceGraph,
|
One_point_from_face_descriptor_property_map<FaceGraph, VertexPointPMap>,
|
||||||
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>,
|
|
||||||
OneFaceGraphPerTree,
|
OneFaceGraphPerTree,
|
||||||
CacheDatum >
|
CacheDatum >
|
||||||
#endif
|
#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 typename boost::graph_traits<FaceGraph>::face_descriptor Id_;
|
||||||
typedef Triangle_from_face_descriptor_property_map<FaceGraph,VertexPointPMap_> Triangle_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 One_point_from_face_descriptor_property_map<FaceGraph,VertexPointPMap> Point_property_map;
|
||||||
|
|
||||||
typedef AABB_primitive< Id_,
|
typedef AABB_primitive< Id_,
|
||||||
Triangle_property_map,
|
Triangle_property_map,
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ template < class HalfedgeGraph,
|
||||||
class VertexPointPMap >
|
class VertexPointPMap >
|
||||||
struct Segment_from_edge_descriptor_property_map{
|
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)
|
Segment_from_edge_descriptor_property_map(HalfedgeGraph* g)
|
||||||
|
|
@ -126,9 +126,12 @@ Segment_from_edge_descriptor_property_map(HalfedgeGraph* g)
|
||||||
template <class FaceGraph,
|
template <class FaceGraph,
|
||||||
class VertexPointPMap>
|
class VertexPointPMap>
|
||||||
struct One_point_from_face_descriptor_property_map{
|
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_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 )
|
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,
|
template < class HalfedgeGraph,
|
||||||
class VertexPointPMap >
|
class VertexPointPMap >
|
||||||
struct Source_point_from_edge_descriptor{
|
struct Source_point_from_edge_descriptor{
|
||||||
Source_point_from_edge_descriptor(
|
Source_point_from_edge_descriptor() : m_graph(NULL)
|
||||||
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(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(
|
Source_point_from_edge_descriptor(
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ int main()
|
||||||
CGAL::Euler::make_tetrahedron(m, p, q, r, s);
|
CGAL::Euler::make_tetrahedron(m, p, q, r, s);
|
||||||
|
|
||||||
// constructs AABB tree
|
// constructs AABB tree
|
||||||
Tree tree(m.faces_begin(),m.faces_end(),m);
|
Tree tree(faces(m).first, faces(m).second, m);
|
||||||
|
|
||||||
// constructs segment query
|
// constructs segment query
|
||||||
Point a(-0.2, 0.2, -0.2);
|
Point a(-0.2, 0.2, -0.2);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue