44#ifndef ISOTROPICREMESHER_HH
45#define ISOTROPICREMESHER_HH
46#include "IsoRemesherProgressEmitter.hh"
49template<
class MeshT >
57 void remesh(
MeshT& _mesh,
const double _targetEdgeLength );
65 void equalizeValences(
MeshT& _mesh );
70 void tangentialRelaxation(
MeshT& _mesh );
72 template <
class SpatialSearchT>
74 findNearestPoint(
const MeshT& _mesh,
75 const typename MeshT::Point& _point,
76 typename MeshT::FaceHandle& _fh,
77 SpatialSearchT* _ssearch,
82 template<
class SpatialSearchT >
83 void projectToSurface(
MeshT& _mesh,
MeshT& _original, SpatialSearchT* _ssearch );
86 bool isBoundary(
MeshT& _mesh,
const typename MeshT::VertexHandle& _vh);
89 bool isFeature(
MeshT& _mesh,
const typename MeshT::VertexHandle& _vh);
96#if defined(INCLUDE_TEMPLATES) && !defined(ISOTROPICREMESHER_C)
97#define ISOTROPICREMESHER_TEMPLATES
98#include "IsotropicRemesherT_impl.hh"
void collapseShortEdges(MeshT &_mesh, const double _minEdgeLength, const double _maxEdgeLength)
collapse edges shorter than minEdgeLength if collapsing doesn't result in new edge longer than maxEdg...
void remesh(MeshT &_mesh, const double _targetEdgeLength)
do the remeshing
void splitLongEdges(MeshT &_mesh, const double _maxEdgeLength)
performs edge splits until all edges are shorter than the threshold
int targetValence(MeshT &_mesh, const typename MeshT::VertexHandle &_vh)
returns 4 for boundary vertices and 6 otherwise