51 #ifndef OPENMESH_DECIMATER_MODHAUSDORFFT_HH
52 #define OPENMESH_DECIMATER_MODHAUSDORFFT_HH
57 #include <OpenMesh/Core/Utils/Property.hh>
77 template<
class DecimaterT>
83 typedef typename Mesh::Scalar Scalar;
84 typedef typename Mesh::Point Point;
85 typedef typename Mesh::FaceHandle FaceHandle;
86 typedef std::vector<Point> Points;
90 Base(_dec, true), mesh_(Base::
mesh()), tolerance_(_error_tolerance) {
91 mesh_.add_property(points_);
96 mesh_.remove_property(points_);
110 virtual void initialize();
122 virtual float collapse_priority(
const CollapseInfo& _ci);
125 virtual void postprocess_collapse(
const CollapseInfo& _ci);
130 Scalar distPointTriangleSquared(
const Point& _p,
const Point& _v0,
131 const Point& _v1,
const Point& _v2, Point& _nearestPoint);
134 Scalar compute_sqr_error(
FaceHandle _fh,
const Point& _p)
const;
148 #if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_DECIMATER_MODHAUSDORFFT_C)
149 #define OPENMESH_DECIMATER_MODHAUSDORFFT_TEMPLATES
153 #endif // OPENMESH_DECIMATER_MODHAUSDORFFT_HH defined