|
1 | 1 | import unittest |
2 | 2 |
|
3 | 3 | from mesh_model.mesh_struct.mesh import Mesh |
4 | | -from mesh_model.mesh_struct.mesh_elements import Dart |
| 4 | +from mesh_model.mesh_struct.mesh_elements import Dart, Node |
5 | 5 | from mesh_model.mesh_analysis.trimesh_analysis import TriMeshQualityAnalysis, TriMeshOldAnalysis |
6 | 6 | from environment.actions.triangular_actions import split_edge_ids |
7 | 7 | from view.mesh_plotter.mesh_plots import plot_mesh |
@@ -155,6 +155,42 @@ def test_isTruncated(self): |
155 | 155 | darts_list.append(d_info[0]) |
156 | 156 | self.assertFalse(m_analysis.isTruncated(darts_list)) |
157 | 157 |
|
| 158 | + def test_get_geometric_quality(self): |
| 159 | + nodes = [[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0], [2.0, 0.0]] |
| 160 | + faces = [[0, 1, 2], [0, 2, 3], [1, 4, 2], [0, 1, 4], [0, 4, 1]] |
| 161 | + cmap = Mesh(nodes, faces) |
| 162 | + plot_mesh(cmap) |
| 163 | + m_analysis = TriMeshQualityAnalysis(cmap) |
| 164 | + |
| 165 | + # Half flat |
| 166 | + d_to_test = Dart(cmap, 0) |
| 167 | + self.assertEqual(m_analysis.get_dart_geometric_quality(d_to_test), 4) |
| 168 | + |
| 169 | + # Full flat |
| 170 | + d_to_test = Dart(cmap, 11) |
| 171 | + self.assertEqual(m_analysis.get_dart_geometric_quality(d_to_test), 6) |
| 172 | + |
| 173 | + nodes = [[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0]] |
| 174 | + faces = [[0, 1, 2], [2, 1, 3]] |
| 175 | + cmap = Mesh(nodes, faces) |
| 176 | + plot_mesh(cmap) |
| 177 | + m_analysis = TriMeshQualityAnalysis(cmap) |
| 178 | + |
| 179 | + # Crossed |
| 180 | + d_to_test = Dart(cmap, 1) |
| 181 | + self.assertEqual(m_analysis.get_dart_geometric_quality(d_to_test), 3) |
| 182 | + |
| 183 | + def test_find_star_vertex(self): |
| 184 | + # Polygon with ker |
| 185 | + nodes = [[0.0, 0.0], [1.0, 1.0], [1.0, -1.0], [0.0, -2.0], [-1.0, 0.0], [-0.5, 0.5], [-0.25, -0.25]] |
| 186 | + faces = [[0, 2, 1], [0, 3, 2], [0, 4, 3], [0, 5, 4], [0, 1, 5]] |
| 187 | + cmap = Mesh(nodes, faces) |
| 188 | + plot_mesh(cmap) |
| 189 | + m_analysis = TriMeshQualityAnalysis(cmap) |
| 190 | + n_to_test = Node(cmap, 0) |
| 191 | + self.assertTrue(m_analysis.find_star_vertex(n_to_test)[0]) |
| 192 | + |
| 193 | + |
158 | 194 | class TestMeshOldAnalysis(unittest.TestCase): |
159 | 195 |
|
160 | 196 | def test_mesh_regular_score(self): |
|
0 commit comments