14 #include <boost/graph/graph_traits.hpp>
15 #include <boost/graph/properties.hpp>
36 typename HalfedgeGraph,
38 typename halfedge_descriptor =
39 typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor,
40 typename edge_descriptor =
41 typename boost::graph_traits< HalfedgeGraph >::edge_descriptor,
47 edge_descriptor starting_edge,
48 std::list< bool > &edge_bitmask
52 halfedge_descriptor starting_halfedge =
halfedge(starting_edge, g);
55 halfedge_descriptor current_edge = starting_halfedge;
67 if(
source(current_edge, g) == mem.
get_v4() && first ==
true)
71 edge_bitmask.push_back(
true);
77 edge_bitmask.push_back(
false);
81 }
while(current_edge != starting_halfedge);
82 if(mem.
get_v4() != boost::graph_traits< HalfedgeGraph >::null_vertex() &&
83 mem.
get_v3() == boost::graph_traits< HalfedgeGraph >::null_vertex())
87 if(mem.
get_v3() != boost::graph_traits< HalfedgeGraph >::null_vertex() &&
88 mem.
get_v4() == boost::graph_traits< HalfedgeGraph >::null_vertex())
97 typename HalfedgeGraph,
99 typename halfedge_descriptor =
100 typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor,
101 typename edge_descriptor =
102 typename boost::graph_traits< HalfedgeGraph >::edge_descriptor,
106 const HalfedgeGraph &g,
109 std::list< bool > &edge_bitmask,
114 Geometry >& spanningtree
118 auto mem_it = list_memory.begin(), mem_it_e = list_memory.end();
119 for( ; mem_it != mem_it_e; ++mem_it)
121 auto min_edge = spanningtree.get_spanning_tree_min_incident_edge((*mem_it).get_vkept());