Developer Documentation
Loading...
Searching...
No Matches
unittests_smoother.cc
1
2#include <gtest/gtest.h>
3#include <Unittests/unittests_common.hh>
5
6namespace {
7
8class OpenMeshSmoother_Poly : public OpenMeshBasePoly {
9
10 protected:
11
12 // This function is called before each test is run
13 virtual void SetUp() {
14
15 // Do some initial stuff with the member data here...
16 }
17
18 // This function is called after all tests are through
19 virtual void TearDown() {
20
21 // Do some final stuff with the member data here...
22 }
23
24 // Member already defined in OpenMeshBase
25 //Mesh mesh_;
26};
27
28class OpenMeshSmoother_Triangle : public OpenMeshBase {
29
30 protected:
31
32 // This function is called before each test is run
33 virtual void SetUp() {
34
35 // Do some initial stuff with the member data here...
36 }
37
38 // This function is called after all tests are through
39 virtual void TearDown() {
40
41 // Do some final stuff with the member data here...
42 }
43
44 // Member already defined in OpenMeshBase
45 //Mesh mesh_;
46};
47
48/*
49 * ====================================================================
50 * Define tests below
51 * ====================================================================
52 */
53
54/*
55 */
56TEST_F(OpenMeshSmoother_Triangle, Smoother_Poly_Laplace) {
57
58 mesh_.clear();
59
60
61 bool ok = OpenMesh::IO::read_mesh(mesh_, "cube1.off");
62
63 ASSERT_TRUE(ok);
64
65 // Check setup
66 EXPECT_EQ(7526u, mesh_.n_vertices() ) << "Wrong number of vertices";
67 EXPECT_EQ(15048u, mesh_.n_faces() ) << "Wrong number of faces";
68
69
70 // Initialize subdivider
72
73 // Just call function to instanciate template
74 smoother.set_absolute_local_error(0.5f);
75
76 // Set an error
77 smoother.set_relative_local_error(0.1f);
78
79 // Run algorithm with 5 steps
80 smoother.smooth(5);
81
82
83 EXPECT_EQ(7526u, mesh_.n_vertices() ) << "Wrong number of vertices after smoothing?";
84 EXPECT_EQ(15048u, mesh_.n_faces() ) << "Wrong number of faces after smoothing?";
85
86}
87
88/*
89 * ====================================================================
90 * Define tests below
91 * ====================================================================
92 */
93
94/*
95 */
96TEST_F(OpenMeshSmoother_Poly, Smoother_Triangle_Laplace) {
97
98 mesh_.clear();
99
100
101 bool ok = OpenMesh::IO::read_mesh(mesh_, "cube1.off");
102
103 ASSERT_TRUE(ok);
104
105 // Check setup
106 EXPECT_EQ(7526u, mesh_.n_vertices() ) << "Wrong number of vertices";
107 EXPECT_EQ(15048u, mesh_.n_faces() ) << "Wrong number of faces";
108
109
110 // Initialize subdivider
112
113 // Just call function to instantiate template
114 smoother.set_absolute_local_error(0.5f);
115
116 // Set an error
117 smoother.set_relative_local_error(0.1f);
118
119 // Run algorithm with 5 steps
120 smoother.smooth(5);
121
122
123 EXPECT_EQ(7526u, mesh_.n_vertices() ) << "Wrong number of vertices after smoothing?";
124 EXPECT_EQ(15048u, mesh_.n_faces() ) << "Wrong number of faces after smoothing?";
125
126}
127
128
129}
bool read_mesh(Mesh &_mesh, const std::string &_filename)
Read a mesh from file _filename.
Definition MeshIO.hh:95