50#ifndef BASE_REMESHERT_HH
51#define BASE_REMESHERT_HH
62#include <OpenMesh/Core/Utils/Property.hh>
63#include <ACG/Geometry/bsp/TriangleBSPT.hh>
65#include "../ProgressEmitter.hh"
99 void remesh(
unsigned int _iters,
100 unsigned int _area_iters,
101 bool _use_projection =
true,
102 Selection _selection=VERTEX_SELECTION);
112 void remeshh(
unsigned int _iters,
unsigned int _aiters,
bool _proj);
115 virtual void init_reference();
116 virtual void delete_reference();
117 virtual void project_to_reference(VertexHandle _vh)
const;
119 void split_long_edges();
120 void collapse_short_edges();
122 void tangential_smoothing(
bool _use_projection);
123 void balanace_area(
unsigned int _iters,
bool _use_projection);
126 virtual bool is_too_long (VertexHandle _v0, VertexHandle _v1)
const = 0;
127 virtual bool is_too_short (VertexHandle _v0, VertexHandle _v1)
const = 0;
129 bool edge_flip_flips_normal(EdgeHandle _eh);
130 bool collapse_flips_normal(HalfedgeHandle _heh);
140 bool nothing_selected_;
153#if defined(INCLUDE_TEMPLATES) && !defined(BASE_REMESHERT_C)
154#define BASE_REMESHERT_TEMPLATES
155#include "BaseRemesherT_impl.hh"
Kernel::VertexHandle VertexHandle
Handle for referencing the corresponding item.
Kernel::Scalar Scalar
Scalar type.
Kernel::EdgeHandle EdgeHandle
Scalar type.
Kernel::HalfedgeHandle HalfedgeHandle
Scalar type.
Kernel::Point Point
Coordinate type.
void prepare_vertex_selection()
prepare for remeshing only selected vertices (if no vertex was selected, remesh whole mesh)
void prepare_face_selection()
prepare for remeshing only vertices which are fully surrounded by selected faces (if no face was sele...