52#ifndef OPENMESH_DECIMATER_MODHAUSDORFFT_HH
53#define OPENMESH_DECIMATER_MODHAUSDORFFT_HH
58#include <OpenMesh/Core/Utils/Property.hh>
87 typedef std::vector<Point> Points;
90 explicit ModHausdorffT(MeshT& _mesh, Scalar _error_tolerance = FLT_MAX) :
91 Base(_mesh, true), mesh_(Base::
mesh()), tolerance_(_error_tolerance) {
92 mesh_.add_property(points_);
97 mesh_.remove_property(points_);
111 virtual void initialize()
override;
123 virtual float collapse_priority(
const CollapseInfo& _ci)
override;
126 virtual void postprocess_collapse(
const CollapseInfo& _ci)
override;
129 void set_error_tolerance_factor(
double _factor)
override;
134 Scalar distPointTriangleSquared(
const Point& _p,
const Point& _v0,
const Point& _v1,
const Point& _v2);
137 Scalar compute_sqr_error(
FaceHandle _fh,
const Point& _p)
const;
154#if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_DECIMATER_MODHAUSDORFFT_C)
155#define OPENMESH_DECIMATER_MODHAUSDORFFT_TEMPLATES
Base class for all decimation modules.
#define DECIMATING_MODULE(Classname, MeshT, Name)
Convenience macro, to be used in derived modules The macro defines the types.
Definition ModBaseT.hh:149
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition MeshItems.hh:59
Handle for a face entity.
Definition Handles.hh:142
Polygonal mesh based on the ArrayKernel.
Definition PolyMesh_ArrayKernelT.hh:96
Kernel::Scalar Scalar
Scalar type.
Definition PolyMeshT.hh:110
Kernel::FaceHandle FaceHandle
Scalar type.
Definition PolyMeshT.hh:139
Kernel::Point Point
Coordinate type.
Definition PolyMeshT.hh:112
Handle representing a face property.
Definition Property.hh:462
Base class for all decimation modules.
Definition ModBaseT.hh:193
MeshT & mesh()
Access the mesh associated with the decimater.
Definition ModBaseT.hh:277
Use Hausdorff distance to control decimation.
Definition ModHausdorffT.hh:79
ModHausdorffT(MeshT &_mesh, Scalar _error_tolerance=FLT_MAX)
Constructor.
Definition ModHausdorffT.hh:90
void set_tolerance(Scalar _e)
set max error tolerance
Definition ModHausdorffT.hh:106
Scalar tolerance() const
get max error tolerance
Definition ModHausdorffT.hh:101
~ModHausdorffT()
Destructor.
Definition ModHausdorffT.hh:96