MEPP2 Project
|
Abstract class to compute the collapse cost of each edge in a mesh. It also manages a priority queue of (edge, cost, collapse position). More...
#include <Error_metric.h>
Public Types | |
using | vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor |
using | halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor |
using | edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator |
using | edge_descriptor = typename boost::graph_traits< HalfedgeGraph >::edge_descriptor |
using | Vector = typename FEVV::Geometry_traits< HalfedgeGraph >::Vector |
using | Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point |
using | Geometry = typename FEVV::Geometry_traits< HalfedgeGraph > |
typedef std::priority_queue< std::tuple< edge_descriptor, double, Point >, std::vector< std::tuple< edge_descriptor, double, Point > >, Compare_weights2< HalfedgeGraph > > | priority_queue_edges |
typedef std::map< edge_descriptor, std::pair< double, Point > > | edge2cost_map |
Public Member Functions | |
Error_metric (HalfedgeGraph &g, PointMap &pm, Kept_position< HalfedgeGraph, PointMap > *vkept, FEVV::Filters::Uniform_dequantization< HalfedgeGraph, PointMap > &dequantiz) | |
virtual | ~Error_metric () |
virtual void | compute_error ()=0 |
virtual double | compute_cost_edge (edge_descriptor e, const Point &collapsePos)=0 |
bool | is_queue_empty () |
std::tuple< typename boost::graph_traits< HalfedgeGraph >::edge_descriptor, double, typename Geometry::Point > | get_top_queue () const |
void | pop_queue () |
double | get_top_cost () const |
double | get_mean_threshold () const |
void | delete_from_descriptors (edge_descriptor e) |
bool | is_present_in_map (edge_descriptor e) const |
void | remove_old_edges (vertex_descriptor vs, vertex_descriptor vt) |
size_t | get_size_queue () const |
Kept_position< HalfedgeGraph, PointMap > * | get_vkept () |
virtual std::string | get_as_string () const =0 |
Protected Attributes | |
HalfedgeGraph & | _g |
const Geometry | _gt |
PointMap & | _pm |
priority_queue_edges | _queue |
edge2cost_map | _edges_cost |
queue with the cost/weight as the key More... | |
FEVV::Filters::VKEPT_POSITION | _operator |
Kept_position< HalfedgeGraph, PointMap > * | _vkept |
double | _threshold |
FEVV::Filters::Uniform_dequantization< HalfedgeGraph, PointMap > & | _dequantiz |
Abstract class to compute the collapse cost of each edge in a mesh. It also manages a priority queue of (edge, cost, collapse position).
Definition at line 61 of file Error_metric.h.
typedef std::map< edge_descriptor, std::pair< double, Point > > FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::edge2cost_map |
Priority queue object, manages the priority of (edge, cost, kept vertex position) tuples according to their cost.
Definition at line 85 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::edge_descriptor = typename boost::graph_traits< HalfedgeGraph >::edge_descriptor |
Definition at line 70 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator |
Definition at line 68 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::Geometry = typename FEVV::Geometry_traits< HalfedgeGraph> |
Definition at line 74 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::halfedge_descriptor = typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor |
Definition at line 66 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point |
Definition at line 73 of file Error_metric.h.
typedef std::priority_queue< std::tuple< edge_descriptor, double, Point >, std::vector< std::tuple< edge_descriptor, double, Point > >, Compare_weights2< HalfedgeGraph > > FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::priority_queue_edges |
Definition at line 81 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::Vector = typename FEVV::Geometry_traits< HalfedgeGraph >::Vector |
Definition at line 72 of file Error_metric.h.
using FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >::vertex_descriptor = typename boost::graph_traits< HalfedgeGraph >::vertex_descriptor |
Definition at line 64 of file Error_metric.h.
|
inline |
Definition at line 87 of file Error_metric.h.
|
inlinevirtual |
Definition at line 98 of file Error_metric.h.
|
pure virtual |
Method to compute the cost associated with an edge to collapse. It usually depends on the resulting vertex position (the collapsed position).
Implemented in FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >, FEVV::Filters::QEM_3D< HalfedgeGraph, PointMap >, and FEVV::Filters::Edge_length_metric< HalfedgeGraph, PointMap >.
|
pure virtual |
Method to compute 1) all edge costs of the mesh; 2) the mean cost threshold.
Implemented in FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >, FEVV::Filters::QEM_3D< HalfedgeGraph, PointMap >, and FEVV::Filters::Edge_length_metric< HalfedgeGraph, PointMap >.
|
inline |
Definition at line 121 of file Error_metric.h.
|
pure virtual |
Implemented in FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >, FEVV::Filters::QEM_3D< HalfedgeGraph, PointMap >, and FEVV::Filters::Edge_length_metric< HalfedgeGraph, PointMap >.
|
inline |
Definition at line 119 of file Error_metric.h.
|
inline |
Definition at line 193 of file Error_metric.h.
|
inline |
Definition at line 117 of file Error_metric.h.
|
inline |
Definition at line 114 of file Error_metric.h.
|
inline |
Definition at line 196 of file Error_metric.h.
|
inline |
|
inline |
Definition at line 110 of file Error_metric.h.
|
inline |
Definition at line 115 of file Error_metric.h.
|
inline |
|
protected |
Definition at line 215 of file Error_metric.h.
|
protected |
queue with the cost/weight as the key
Definition at line 209 of file Error_metric.h.
|
protected |
Definition at line 204 of file Error_metric.h.
|
protected |
Definition at line 205 of file Error_metric.h.
|
protected |
Definition at line 211 of file Error_metric.h.
|
protected |
Definition at line 206 of file Error_metric.h.
|
protected |
Definition at line 208 of file Error_metric.h.
|
protected |
Definition at line 214 of file Error_metric.h.
|
protected |
Definition at line 213 of file Error_metric.h.