Go to the documentation of this file.
23 typename HalfedgeGraph,
30 typename boost::graph_traits< HalfedgeGraph >::edge_iterator;
32 typename boost::graph_traits< HalfedgeGraph >::edge_descriptor;
62 auto edge_ite = edge_iterator_pair.first;
65 for( ; edge_ite != edge_iterator_pair.second; ++edge_ite)
75 std::make_tuple(*edge_ite, weight, collapsePos));
77 std::make_pair(weight,collapsePos));
priority_queue_edges _queue
std::string get_as_string() const override
edge2cost_map _edges_cost
queue with the cost/weight as the key
std::pair< typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::edge_iterator, typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::edge_iterator > edges(const FEVV::DataStructures::AIF::AIFMesh &sm)
Returns the iterator range of the edges of the mesh.
typename FEVV::Geometry_traits< HalfedgeGraph >::Vector Vector
GeometryTraits::Vector sub_p(const typename GeometryTraits::Point &p1, const typename GeometryTraits::Point &p2)
Returns point P1 minus point P2.
std::priority_queue< std::tuple< edge_descriptor, double, Point >, std::vector< std::tuple< edge_descriptor, double, Point > >, Compare_weights2< HalfedgeGraph > > priority_queue_edges
Refer to Geometry_traits_documentation_dummy for further documentation on provided types and algorith...
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::vertex_descriptor source(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::edge_descriptor e, const FEVV::DataStructures::AIF::AIFMesh &)
Returns the source vertex of e.
Abstract class to compute the collapse cost of each edge in a mesh. It also manages a priority queue ...
FEVV::PCLPointCloudPointMap::value_type get(const FEVV::PCLPointCloudPointMap &pm, FEVV::PCLPointCloudPointMap::key_type key)
Specialization of get(point_map, key) for PCLPointCloud.
virtual Point compute_position(typename boost::graph_traits< HalfedgeGraph >::edge_descriptor edge)=0
Compute the kept vertex position of an edge.
typename boost::graph_traits< HalfedgeGraph >::edge_iterator edge_iterator
Interfaces for plugins These interfaces will be used for different plugins.
boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::vertex_descriptor target(typename boost::graph_traits< FEVV::DataStructures::AIF::AIFMesh >::edge_descriptor e, const FEVV::DataStructures::AIF::AIFMesh &)
Returns the target vertex of e.
Kept_position< HalfedgeGraph, PointMap > * _vkept
Error_metric< HalfedgeGraph, PointMap > Super_class
Concrete class to compute the collapse cost of each edge in a mesh as the edge length (L2).
std::map< edge_descriptor, std::pair< double, Point > > edge2cost_map
typename FEVV::Geometry_traits< HalfedgeGraph >::Point Point
Edge_length_metric(HalfedgeGraph &g, PointMap &pm, Kept_position< HalfedgeGraph, PointMap > *vkept, FEVV::Filters::Uniform_dequantization< HalfedgeGraph, PointMap > &dequantiz)
FEVV::Filters::VKEPT_POSITION _operator
typename boost::graph_traits< HalfedgeGraph >::edge_descriptor edge_descriptor
void compute_error() override
typename FEVV::Geometry_traits< HalfedgeGraph > Geometry
double compute_cost_edge(edge_descriptor e, const Point &) override