Easy3D 2.5.3
surface_mesh_features.h
1/********************************************************************
2 * Copyright (C) 2020-2021 by Liangliang Nan <liangliang.nan@gmail.com>
3 * Copyright (C) 2011-2020 the Polygon Mesh Processing Library developers.
4 *
5 * The code in this file is adapted from the PMP (Polygon Mesh Processing
6 * Library) with modifications.
7 * https://github.com/pmp-library/pmp-library
8 * The original code was distributed under a MIT-style license, see
9 * https://github.com/pmp-library/pmp-library/blob/master/LICENSE.txt
10 ********************************************************************/
11
12#ifndef EASY3D_ALGO_SURFACE_MESH_FEATURES_H
13#define EASY3D_ALGO_SURFACE_MESH_FEATURES_H
14
15#include <easy3d/core/surface_mesh.h>
16
17
18namespace easy3d {
19
23 public:
25 explicit SurfaceMeshFeatures(SurfaceMesh *mesh);
26
28 void clear();
29
31 void detect_boundary();
32
34 void detect_angle(float angle);
35
36 private:
37 SurfaceMesh *mesh_;
38
41 };
42
43} // namespace easy3d
44
45#endif // EASY3D_ALGO_SURFACE_MESH_FEATURES_H
Definition: surface_mesh.h:233
Definition: surface_mesh.h:185
Detect and mark feature edges based on boundary or dihedral angle.
Definition: surface_mesh_features.h:22
void detect_angle(float angle)
Mark edges with dihedral angle larger than angle as feature.
Definition: surface_mesh_features.cpp:46
SurfaceMeshFeatures(SurfaceMesh *mesh)
Construct with mesh to be analyzed.
Definition: surface_mesh_features.cpp:17
void detect_boundary()
Mark all boundary edges as features.
Definition: surface_mesh_features.cpp:34
void clear()
Clear features.
Definition: surface_mesh_features.cpp:24
A halfedge data structure for polygonal meshes of 2-manifold.
Definition: surface_mesh.h:52
Definition: collider.cpp:182