MEPP2 Project
|
Concrete class to compute the collapse cost of each edge in a mesh as the local absolute volume error.
More...
#include <Volume_preserving.h>
Public Types | |
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 Error_metric< HalfedgeGraph, PointMap > | Super_class |
![]() | |
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 | |
Volume_preserving (HalfedgeGraph &g, PointMap &pm, Kept_position< HalfedgeGraph, PointMap > *vkept, FEVV::Filters::Uniform_dequantization< HalfedgeGraph, PointMap > &dequantiz) | |
~Volume_preserving () | |
void | compute_error () override |
double | compute_cost_edge (edge_descriptor e, const Point &collapsePos) override |
std::string | get_as_string () const override |
![]() | |
Error_metric (HalfedgeGraph &g, PointMap &pm, Kept_position< HalfedgeGraph, PointMap > *vkept, FEVV::Filters::Uniform_dequantization< HalfedgeGraph, PointMap > &dequantiz) | |
virtual | ~Error_metric () |
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 () |
Private Member Functions | |
double | tetrahedron_volume (const Point &a, const Point &b, const Point &c, const Point &d) const |
void | compute_volumes (edge_descriptor e, const Point &collapsePos, double &sum_first_vertex, double &sum_second_vertex) |
Additional Inherited Members | |
![]() | |
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 |
Concrete class to compute the collapse cost of each edge in a mesh as the local absolute volume error.
Definition at line 23 of file Volume_preserving.h.
using FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >::edge_descriptor = typename boost::graph_traits< HalfedgeGraph >::edge_descriptor |
Definition at line 28 of file Volume_preserving.h.
using FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >::edge_iterator = typename boost::graph_traits< HalfedgeGraph >::edge_iterator |
Definition at line 26 of file Volume_preserving.h.
using FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >::Geometry = typename FEVV::Geometry_traits< HalfedgeGraph> |
Definition at line 32 of file Volume_preserving.h.
using FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >::Point = typename FEVV::Geometry_traits< HalfedgeGraph >::Point |
Definition at line 31 of file Volume_preserving.h.
typedef Error_metric< HalfedgeGraph, PointMap > FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >::Super_class |
Definition at line 34 of file Volume_preserving.h.
using FEVV::Filters::Volume_preserving< HalfedgeGraph, PointMap >::Vector = typename FEVV::Geometry_traits< HalfedgeGraph >::Vector |
Definition at line 30 of file Volume_preserving.h.
|
inline |
Definition at line 36 of file Volume_preserving.h.
|
inline |
Definition at line 42 of file Volume_preserving.h.
|
inlineoverridevirtual |
Method to compute the cost associated with an edge to collapse. It usually depends on the resulting vertex position (the collapsed position).
Implements FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >.
Definition at line 78 of file Volume_preserving.h.
|
inlineoverridevirtual |
Method to compute 1) all edge costs of the mesh; 2) the mean cost threshold.
Implements FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >.
Definition at line 44 of file Volume_preserving.h.
|
inlineprivate |
Definition at line 100 of file Volume_preserving.h.
|
inlineoverridevirtual |
Implements FEVV::Filters::Error_metric< HalfedgeGraph, PointMap >.
Definition at line 85 of file Volume_preserving.h.
|
inlineprivate |
Definition at line 90 of file Volume_preserving.h.