Skip to content

Commit 785b65a

Browse files
committed
melchior's comment
1 parent 938f9ae commit 785b65a

File tree

14 files changed

+636
-419
lines changed

14 files changed

+636
-419
lines changed

bindings/python/src/inspector/topology/brep_topology.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,18 @@ namespace geode
6060
.def_readwrite( "lines_not_linked_to_a_unique_vertex",
6161
&BRepLinesTopologyInspectionResult::
6262
lines_not_linked_to_a_unique_vertex )
63+
.def_readwrite( "unique_vertices_linked_to_line_with_wrong_"
64+
"relationship_to_surface",
65+
&BRepLinesTopologyInspectionResult::
66+
unique_vertices_linked_to_line_with_wrong_relationship_to_surface )
6367
.def_readwrite(
6468
"unique_vertices_linked_to_a_line_with_invalid_embeddings",
6569
&BRepLinesTopologyInspectionResult::
6670
unique_vertices_linked_to_a_line_with_invalid_embeddings )
71+
.def_readwrite(
72+
"unique_vertices_linked_to_a_single_and_invalid_line",
73+
&BRepLinesTopologyInspectionResult::
74+
unique_vertices_linked_to_a_single_and_invalid_line )
6775
.def_readwrite( "unique_vertices_linked_to_several_lines_but_not_"
6876
"linked_to_a_corner",
6977
&BRepLinesTopologyInspectionResult::
@@ -111,14 +119,6 @@ namespace geode
111119
.def_readwrite( "unique_vertices_with_incorrect_block_cmvs_count",
112120
&BRepBlocksTopologyInspectionResult::
113121
unique_vertices_with_incorrect_block_cmvs_count )
114-
.def_readwrite(
115-
"unique_vertices_linked_to_not_internal_nor_boundary_line",
116-
&BRepBlocksTopologyInspectionResult::
117-
unique_vertices_linked_to_not_internal_nor_boundary_line )
118-
.def_readwrite(
119-
"unique_vertices_linked_to_a_single_and_invalid_line",
120-
&BRepBlocksTopologyInspectionResult::
121-
unique_vertices_linked_to_a_single_and_invalid_line )
122122
.def_readwrite( "unique_vertices_linked_to_surface_with_wrong_"
123123
"relationship_to_blocks",
124124
&BRepBlocksTopologyInspectionResult::

bindings/python/src/inspector/topology/section_topology.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ namespace geode
6464
.def_readwrite( "lines_not_linked_to_a_unique_vertex",
6565
&SectionLinesTopologyInspectionResult::
6666
lines_not_linked_to_a_unique_vertex )
67-
.def_readwrite(
68-
"unique_vertices_linked_to_not_internal_nor_boundary_line",
67+
.def_readwrite( "unique_vertices_linked_to_line_with_wrong_"
68+
"relationship_to_surface",
6969
&SectionLinesTopologyInspectionResult::
70-
unique_vertices_linked_to_not_internal_nor_boundary_line )
70+
unique_vertices_linked_to_line_with_wrong_relationship_to_surface )
7171
.def_readwrite(
7272
"unique_vertices_linked_to_a_line_with_invalid_embeddings",
7373
&SectionLinesTopologyInspectionResult::

bindings/python/tests/test-py-brep.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ def lines_topological_validity(result, verbose):
5555
nb_issues += (
5656
result.unique_vertices_linked_to_a_line_with_invalid_embeddings.nb_issues()
5757
)
58+
nb_issues += result.unique_vertices_linked_to_a_single_and_invalid_line.nb_issues()
59+
nb_issues += (
60+
result.unique_vertices_linked_to_line_with_wrong_relationship_to_surface.nb_issues()
61+
)
5862
nb_issues += (
5963
result.unique_vertices_linked_to_several_lines_but_not_linked_to_a_corner.nb_issues()
6064
)
@@ -90,10 +94,6 @@ def blocks_topological_validity(result, verbose):
9094
result.unique_vertices_part_of_two_blocks_and_no_boundary_surface.nb_issues()
9195
)
9296
nb_issues += result.unique_vertices_with_incorrect_block_cmvs_count.nb_issues()
93-
nb_issues += result.unique_vertices_linked_to_a_single_and_invalid_line.nb_issues()
94-
nb_issues += (
95-
result.unique_vertices_linked_to_not_internal_nor_boundary_line.nb_issues()
96-
)
9797
nb_issues += (
9898
result.unique_vertices_linked_to_a_single_and_invalid_surface.nb_issues()
9999
)

bindings/python/tests/test-py-section.py

Lines changed: 95 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -22,133 +22,158 @@
2222
import os
2323
import sys
2424
import platform
25+
2526
if sys.version_info >= (3, 8, 0) and platform.system() == "Windows":
26-
for path in [x.strip() for x in os.environ['PATH'].split('') if x]:
27+
for path in [x.strip() for x in os.environ["PATH"].split("") if x]:
2728
os.add_dll_directory(path)
2829

2930
import opengeode
3031
import opengeode_inspector_py_inspector as inspector
3132

3233

33-
def corners_topological_validity( result, verbose ):
34+
def corners_topological_validity(result, verbose):
3435
nb_issues = 0
35-
for corner_issue in result.corners_not_linked_to_a_unique_vertex.issues_map() :
36+
for corner_issue in result.corners_not_linked_to_a_unique_vertex.issues_map():
3637
nb_issues += corner_issue[1].nb_issues()
3738
nb_issues += result.corners_not_meshed.nb_issues()
3839
nb_issues += result.unique_vertices_linked_to_not_boundary_line_corner.nb_issues()
3940
nb_issues += result.unique_vertices_linked_to_multiple_corners.nb_issues()
4041
nb_issues += result.unique_vertices_linked_to_multiple_internals_corner.nb_issues()
41-
nb_issues += result.unique_vertices_linked_to_not_internal_nor_boundary_corner.nb_issues()
42-
print( "Section Corners Topology check: ", nb_issues, " issues." )
43-
if verbose :
44-
print( result.string(), "\n" )
42+
nb_issues += (
43+
result.unique_vertices_linked_to_not_internal_nor_boundary_corner.nb_issues()
44+
)
45+
print("Section Corners Topology check: ", nb_issues, " issues.")
46+
if verbose:
47+
print(result.string(), "\n")
4548
return nb_issues
4649

47-
def lines_topological_validity( result, verbose ):
50+
51+
def lines_topological_validity(result, verbose):
4852
nb_issues = 0
49-
for issue in result.lines_not_linked_to_a_unique_vertex.issues_map() :
53+
for issue in result.lines_not_linked_to_a_unique_vertex.issues_map():
5054
nb_issues += issue[1].nb_issues()
5155
nb_issues += result.lines_not_meshed.nb_issues()
52-
nb_issues += result.unique_vertices_linked_to_a_line_with_invalid_embeddings.nb_issues()
56+
nb_issues += (
57+
result.unique_vertices_linked_to_a_line_with_invalid_embeddings.nb_issues()
58+
)
5359
nb_issues += result.unique_vertices_linked_to_a_single_and_invalid_line.nb_issues()
54-
nb_issues += result.unique_vertices_linked_to_not_internal_nor_boundary_line.nb_issues()
55-
nb_issues += result.unique_vertices_linked_to_several_lines_but_not_linked_to_a_corner.nb_issues()
56-
print( "Section Lines Topology check: ", nb_issues, " issues." )
57-
if verbose : print( result.string(), "\n" )
60+
nb_issues += (
61+
result.unique_vertices_linked_to_line_with_wrong_relationship_to_surface.nb_issues()
62+
)
63+
nb_issues += (
64+
result.unique_vertices_linked_to_several_lines_but_not_linked_to_a_corner.nb_issues()
65+
)
66+
print("Section Lines Topology check: ", nb_issues, " issues.")
67+
if verbose:
68+
print(result.string(), "\n")
5869
return nb_issues
5970

60-
def surfaces_topological_validity( result, verbose ):
71+
72+
def surfaces_topological_validity(result, verbose):
6173
nb_issues = 0
62-
for issue in result.surfaces_not_linked_to_a_unique_vertex.issues_map() :
74+
for issue in result.surfaces_not_linked_to_a_unique_vertex.issues_map():
6375
nb_issues += issue[1].nb_issues()
6476
nb_issues += result.surfaces_not_meshed.nb_issues()
65-
nb_issues += result.unique_vertices_linked_to_a_line_but_is_not_on_a_surface_border.nb_issues()
66-
nb_issues += result.unique_vertices_linked_to_a_surface_with_invalid_embbedings.nb_issues()
67-
print( "Section Surfaces Topology check: ", nb_issues, " issues." )
68-
if verbose :
69-
print( result.string(), "\n" )
77+
nb_issues += (
78+
result.unique_vertices_linked_to_a_line_but_is_not_on_a_surface_border.nb_issues()
79+
)
80+
nb_issues += (
81+
result.unique_vertices_linked_to_a_surface_with_invalid_embbedings.nb_issues()
82+
)
83+
print("Section Surfaces Topology check: ", nb_issues, " issues.")
84+
if verbose:
85+
print(result.string(), "\n")
7086
return nb_issues
7187

72-
def launch_topological_validity_checks( result, verbose ) :
73-
nb_issues = corners_topological_validity( result.corners, verbose )
74-
nb_issues += lines_topological_validity( result.lines, verbose )
75-
nb_issues += surfaces_topological_validity( result.surfaces, verbose )
88+
89+
def launch_topological_validity_checks(result, verbose):
90+
nb_issues = corners_topological_validity(result.corners, verbose)
91+
nb_issues += lines_topological_validity(result.lines, verbose)
92+
nb_issues += surfaces_topological_validity(result.surfaces, verbose)
7693
return nb_issues
7794

78-
def meshes_adjacencies_validity( result, verbose ):
95+
96+
def meshes_adjacencies_validity(result, verbose):
7997
nb_issues = 0
80-
for issue in result.surfaces_edges_with_wrong_adjacencies.issues_map() :
98+
for issue in result.surfaces_edges_with_wrong_adjacencies.issues_map():
8199
nb_issues += issue[1].nb_issues()
82-
print( "Section meshes adjacencies check: ", nb_issues, " issues." )
83-
if verbose :
84-
print( result.string(), "\n" )
100+
print("Section meshes adjacencies check: ", nb_issues, " issues.")
101+
if verbose:
102+
print(result.string(), "\n")
85103
return nb_issues
86104

87-
def meshes_degenerations_validity( result, verbose ):
105+
106+
def meshes_degenerations_validity(result, verbose):
88107
nb_issues = 0
89-
for degenerated_elements in result.degenerated_edges.issues_map() :
108+
for degenerated_elements in result.degenerated_edges.issues_map():
90109
nb_issues += degenerated_elements[1].nb_issues()
91-
for degenerated_elements in result.degenerated_polygons.issues_map() :
110+
for degenerated_elements in result.degenerated_polygons.issues_map():
92111
nb_issues += degenerated_elements[1].nb_issues()
93-
print("Section meshes degenerated elements check: ", nb_issues, " issues." )
94-
if verbose :
95-
print( result.string(), "\n" )
112+
print("Section meshes degenerated elements check: ", nb_issues, " issues.")
113+
if verbose:
114+
print(result.string(), "\n")
96115
return nb_issues
97116

98-
def meshes_intersections_validity( result, verbose ) :
117+
118+
def meshes_intersections_validity(result, verbose):
99119
nb_issues = 0
100120
nb_issues += result.elements_intersections.nb_issues()
101121

102-
print( "Section meshes element intersections check: ", nb_issues, " issues." )
103-
if verbose :
104-
print( result.string(), "\n" )
122+
print("Section meshes element intersections check: ", nb_issues, " issues.")
123+
if verbose:
124+
print(result.string(), "\n")
105125
return nb_issues
106126

107-
def meshes_manifolds_validity( result, verbose ):
127+
128+
def meshes_manifolds_validity(result, verbose):
108129
nb_issues = 0
109-
for issue in result.meshes_non_manifold_vertices.issues_map() :
130+
for issue in result.meshes_non_manifold_vertices.issues_map():
110131
nb_issues += issue[1].nb_issues()
111-
for issue in result.meshes_non_manifold_edges.issues_map() :
132+
for issue in result.meshes_non_manifold_edges.issues_map():
112133
nb_issues += issue[1].nb_issues()
113-
print( "Section meshes non manifolds check: ", nb_issues, " issues." )
114-
if verbose :
115-
print( result.string(), "\n" )
134+
print("Section meshes non manifolds check: ", nb_issues, " issues.")
135+
if verbose:
136+
print(result.string(), "\n")
116137
return nb_issues
117138

118-
def meshes_colocations_validity( result, verbose ):
139+
140+
def meshes_colocations_validity(result, verbose):
119141
nb_issues = 0
120-
for issue in result.colocated_points_groups.issues_map() :
142+
for issue in result.colocated_points_groups.issues_map():
121143
nb_issues += issue[1].nb_issues()
122-
print( "Section meshes Colocations check: ", nb_issues, " issues." )
123-
if verbose :
124-
print( result.string(), "\n" )
144+
print("Section meshes Colocations check: ", nb_issues, " issues.")
145+
if verbose:
146+
print(result.string(), "\n")
125147
return nb_issues
126148

127-
def meshes_unique_vertices_validity( result, verbose ):
149+
150+
def meshes_unique_vertices_validity(result, verbose):
128151
nb_issues = 0
129-
for issue in result.colocated_unique_vertices_groups.issues() :
152+
for issue in result.colocated_unique_vertices_groups.issues():
130153
nb_issues += len(issue)
131154
nb_issues += result.unique_vertices_linked_to_different_points.nb_issues()
132-
print("Section unique vertices check: ", nb_issues, " issues." )
133-
if verbose :
134-
print( result.string(), "\n" )
155+
print("Section unique vertices check: ", nb_issues, " issues.")
156+
if verbose:
157+
print(result.string(), "\n")
135158
return nb_issues
136159

137-
def launch_component_meshes_validity_checks(result, verbose ):
138-
nb_issues = meshes_adjacencies_validity( result.meshes_adjacencies, verbose )
139-
nb_issues = meshes_degenerations_validity( result.meshes_degenerations, verbose )
140-
nb_issues += meshes_intersections_validity( result.meshes_intersections, verbose )
141-
nb_issues += meshes_manifolds_validity( result.meshes_non_manifolds, verbose )
142-
nb_issues += meshes_colocations_validity( result.meshes_colocation, verbose )
160+
161+
def launch_component_meshes_validity_checks(result, verbose):
162+
nb_issues = meshes_adjacencies_validity(result.meshes_adjacencies, verbose)
163+
nb_issues = meshes_degenerations_validity(result.meshes_degenerations, verbose)
164+
nb_issues += meshes_intersections_validity(result.meshes_intersections, verbose)
165+
nb_issues += meshes_manifolds_validity(result.meshes_non_manifolds, verbose)
166+
nb_issues += meshes_colocations_validity(result.meshes_colocation, verbose)
143167
nb_issues += meshes_unique_vertices_validity(
144-
result.unique_vertices_colocation, verbose )
168+
result.unique_vertices_colocation, verbose
169+
)
145170
return nb_issues
146171

172+
147173
def check_section(verbose):
148174
test_dir = os.path.dirname(__file__)
149175
data_dir = os.path.abspath(os.path.join(test_dir, "../../../tests/data"))
150-
model_section = opengeode.load_section(
151-
data_dir + "/vertical_lines.og_sctn")
176+
model_section = opengeode.load_section(data_dir + "/vertical_lines.og_sctn")
152177
result = inspector.inspect_section(model_section)
153178
section_inspector = inspector.SectionInspector(model_section)
154179
if section_inspector.section_topology_is_valid():
@@ -158,14 +183,16 @@ def check_section(verbose):
158183
nb_issues = launch_topological_validity_checks(result.topology, verbose)
159184
if nb_issues != 0:
160185
raise ValueError(
161-
"[Test] There should be no topological issues with vertical_lines.og_sctn")
186+
"[Test] There should be no topological issues with vertical_lines.og_sctn"
187+
)
162188
nb_issues = launch_component_meshes_validity_checks(result.meshes, verbose)
163189
if nb_issues != 0:
164190
raise ValueError(
165-
"[Test] There should be no mesh issues with vertical_lines.og_sctn")
191+
"[Test] There should be no mesh issues with vertical_lines.og_sctn"
192+
)
166193

167194

168-
if __name__ == '__main__':
195+
if __name__ == "__main__":
169196
inspector.InspectorInspectorLibrary.initialize()
170197
verbose = False
171198
check_section(verbose)

0 commit comments

Comments
 (0)