44 #ifndef ISOTROPICREMESHER_HH 45 #define ISOTROPICREMESHER_HH 46 #include "ProgressEmitter.hh" 49 template<
class MeshT >
57 void remesh( MeshT& _mesh,
const double _targetEdgeLength );
63 void collapseShortEdges( MeshT& _mesh,
const double _minEdgeLength,
const double _maxEdgeLength );
65 void equalizeValences( MeshT& _mesh );
68 int targetValence( MeshT& _mesh,
const typename MeshT::VertexHandle& _vh );
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" 101 #endif // ISOTROPICREMESHER_HH defined void remesh(MeshT &_mesh, const double _targetEdgeLength)
do the remeshing
int targetValence(MeshT &_mesh, const typename MeshT::VertexHandle &_vh)
returns 4 for boundary vertices and 6 otherwise
void splitLongEdges(MeshT &_mesh, const double _maxEdgeLength)
performs edge splits until all edges are shorter than the threshold
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...