12#ifndef EASY3D_ALGO_SURFACE_MESH_REMESHING_H
13#define EASY3D_ALGO_SURFACE_MESH_REMESHING_H
15#include <easy3d/core/surface_mesh.h>
19 class TriangleMeshKdTree;
42 bool use_projection =
true);
51 float approx_error,
unsigned int iterations = 10,
52 bool use_projection =
true);
56 void postprocessing();
57 void split_long_edges();
58 void collapse_short_edges();
60 void tangential_smoothing(
unsigned int iterations);
66 return distance(points_[v0], points_[v1]) >
67 4.0 / 3.0 * std::min(vsizing_[v0], vsizing_[v1]);
71 return distance(points_[v0], points_[v1]) <
72 4.0 / 5.0 * std::min(vsizing_[v0], vsizing_[v1]);
83 float target_edge_length_;
84 float min_edge_length_;
85 float max_edge_length_;
Definition: surface_mesh.h:233
Definition: surface_mesh.h:185
A halfedge data structure for polygonal meshes of 2-manifold.
Definition: surface_mesh.h:52
A class for uniform and adaptive surface remeshing.
Definition: surface_mesh_remeshing.h:31
void adaptive_remeshing(float min_edge_length, float max_edge_length, float approx_error, unsigned int iterations=10, bool use_projection=true)
Perform adaptive remeshing.
Definition: surface_mesh_remeshing.cpp:70
void uniform_remeshing(float edge_length, unsigned int iterations=10, bool use_projection=true)
Perform uniform remeshing.
Definition: surface_mesh_remeshing.cpp:37
A k-d tree for triangular surface meshes.
Definition: triangle_mesh_kdtree.h:24
Definition: collider.cpp:182
T distance(const Vec< N, T > &v1, const Vec< N, T > &v2)
Computes the distance between two vectors/points.
Definition: vec.h:295
Definition: surface_mesh.h:104