Skip to content

Commit

Permalink
remove functions counting problems
Browse files Browse the repository at this point in the history
  • Loading branch information
francoisbonneau committed Oct 4, 2023
1 parent 5c08849 commit 325c1f7
Show file tree
Hide file tree
Showing 14 changed files with 179 additions and 451 deletions.
132 changes: 58 additions & 74 deletions bindings/python/src/inspector/topology/brep_topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,83 +25,67 @@

#include <geode/inspector/topology/brep_topology.h>

#define PYTHON_BREP_TOPOLOGY() \
pybind11::class_< BRepTopologyInspector >( \
module, "BRepTopologyInspector" ) \
.def( pybind11::init< const BRep& >() ) \
.def( pybind11::init< const BRep&, bool >() ) \
.def( "brep_topology_is_valid", \
&BRepTopologyInspector::brep_topology_is_valid ) \
.def( "brep_meshed_components_are_linked_to_unique_vertices", \
&BRepTopologyInspector:: \
brep_meshed_components_are_linked_to_unique_vertices ) \
.def( "brep_unique_vertices_are_linked_to_a_component_vertex", \
&BRepTopologyInspector:: \
brep_unique_vertices_are_linked_to_a_component_vertex ) \
.def( "nb_corners_not_linked_to_a_unique_vertex", \
&BRepTopologyInspector::nb_corners_not_linked_to_a_unique_vertex ) \
.def( "nb_lines_meshed_but_not_linked_to_unique_vertices", \
&BRepTopologyInspector:: \
nb_lines_meshed_but_not_linked_to_unique_vertices ) \
.def( "nb_surfaces_meshed_but_not_linked_to_unique_vertices", \
&BRepTopologyInspector:: \
nb_surfaces_meshed_but_not_linked_to_unique_vertices ) \
.def( "nb_blocks_meshed_but_not_linked_to_unique_vertices", \
&BRepTopologyInspector:: \
nb_blocks_meshed_but_not_linked_to_unique_vertices ) \
.def( "nb_unique_vertices_not_linked_to_a_component_vertex", \
&BRepTopologyInspector:: \
nb_unique_vertices_not_linked_to_a_component_vertex ) \
.def( "unique_vertices_not_linked_to_a_component_vertex", \
&BRepTopologyInspector:: \
unique_vertices_not_linked_to_a_component_vertex ) \
.def( "invalid_components_topology_unique_vertices", \
&BRepTopologyInspector:: \
invalid_components_topology_unique_vertices ) \
.def( "multiple_corners_unique_vertices", \
&BRepTopologyInspector::multiple_corners_unique_vertices ) \
.def( "multiple_internals_corner_vertices", \
&BRepTopologyInspector::multiple_internals_corner_vertices ) \
.def( "not_internal_nor_boundary_corner_vertices", \
&BRepTopologyInspector:: \
not_internal_nor_boundary_corner_vertices ) \
.def( "line_corners_without_boundary_status", \
&BRepTopologyInspector::line_corners_without_boundary_status ) \
.def( "part_of_not_boundary_nor_internal_line_unique_vertices", \
&BRepTopologyInspector:: \
part_of_not_boundary_nor_internal_line_unique_vertices ) \
.def( "part_of_line_with_invalid_internal_topology_unique_vertices", \
&BRepTopologyInspector:: \
part_of_line_with_invalid_internal_topology_unique_vertices ) \
.def( "part_of_invalid_unique_line_unique_vertices", \
&BRepTopologyInspector:: \
part_of_invalid_unique_line_unique_vertices ) \
.def( "part_of_lines_but_not_corner_unique_vertices", \
&BRepTopologyInspector:: \
part_of_lines_but_not_corner_unique_vertices ) \
.def( "part_of_not_boundary_nor_internal_surface_unique_vertices", \
&BRepTopologyInspector:: \
part_of_not_boundary_nor_internal_surface_unique_vertices ) \
.def( \
"part_of_surface_with_invalid_internal_topology_unique_vertices", \
&BRepTopologyInspector:: \
part_of_surface_with_invalid_internal_topology_unique_vertices ) \
.def( "part_of_invalid_unique_surface_unique_vertices", \
&BRepTopologyInspector:: \
part_of_invalid_unique_surface_unique_vertices ) \
.def( "part_of_invalid_multiple_surfaces_unique_vertices", \
&BRepTopologyInspector:: \
part_of_invalid_multiple_surfaces_unique_vertices ) \
.def( "part_of_line_and_not_on_surface_border_unique_vertices", \
&BRepTopologyInspector:: \
part_of_line_and_not_on_surface_border_unique_vertices ) \
.def( "part_of_invalid_blocks_unique_vertices", \
&BRepTopologyInspector::part_of_invalid_blocks_unique_vertices )

namespace geode
{
void define_brep_topology_inspector( pybind11::module& module )
{
PYTHON_BREP_TOPOLOGY();
pybind11::class_< BRepTopologyInspector >(
module, "BRepTopologyInspector" )
.def( pybind11::init< const BRep& >() )
.def( pybind11::init< const BRep&, bool >() )
.def( "brep_topology_is_valid",
&BRepTopologyInspector::brep_topology_is_valid )
.def( "brep_meshed_components_are_linked_to_unique_vertices",
&BRepTopologyInspector::
brep_meshed_components_are_linked_to_unique_vertices )
.def( "brep_unique_vertices_are_linked_to_a_component_vertex",
&BRepTopologyInspector::
brep_unique_vertices_are_linked_to_a_component_vertex )
.def( "unique_vertices_not_linked_to_a_component_vertex",
&BRepTopologyInspector::
unique_vertices_not_linked_to_a_component_vertex )
.def( "invalid_components_topology_unique_vertices",
&BRepTopologyInspector::
invalid_components_topology_unique_vertices )
.def( "multiple_corners_unique_vertices",
&BRepTopologyInspector::multiple_corners_unique_vertices )
.def( "multiple_internals_corner_vertices",
&BRepTopologyInspector::multiple_internals_corner_vertices )
.def( "not_internal_nor_boundary_corner_vertices",
&BRepTopologyInspector::
not_internal_nor_boundary_corner_vertices )
.def( "line_corners_without_boundary_status",
&BRepTopologyInspector::line_corners_without_boundary_status )
.def( "part_of_not_boundary_nor_internal_line_unique_vertices",
&BRepTopologyInspector::
part_of_not_boundary_nor_internal_line_unique_vertices )
.def( "part_of_line_with_invalid_internal_topology_unique_vertices",
&BRepTopologyInspector::
part_of_line_with_invalid_internal_topology_unique_vertices )
.def( "part_of_invalid_unique_line_unique_vertices",
&BRepTopologyInspector::
part_of_invalid_unique_line_unique_vertices )
.def( "part_of_lines_but_not_corner_unique_vertices",
&BRepTopologyInspector::
part_of_lines_but_not_corner_unique_vertices )
.def( "part_of_not_boundary_nor_internal_surface_unique_vertices",
&BRepTopologyInspector::
part_of_not_boundary_nor_internal_surface_unique_vertices )
.def( "part_of_surface_with_invalid_internal_topology_unique_"
"vertices",
&BRepTopologyInspector::
part_of_surface_with_invalid_internal_topology_unique_vertices )
.def( "part_of_invalid_unique_surface_unique_vertices",
&BRepTopologyInspector::
part_of_invalid_unique_surface_unique_vertices )
.def( "part_of_invalid_multiple_surfaces_unique_vertices",
&BRepTopologyInspector::
part_of_invalid_multiple_surfaces_unique_vertices )
.def( "part_of_line_and_not_on_surface_border_unique_vertices",
&BRepTopologyInspector::
part_of_line_and_not_on_surface_border_unique_vertices )
.def( "part_of_invalid_blocks_unique_vertices",
&BRepTopologyInspector::
part_of_invalid_blocks_unique_vertices );
}
} // namespace geode
106 changes: 46 additions & 60 deletions bindings/python/src/inspector/topology/section_topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,69 +25,55 @@

#include <geode/inspector/topology/section_topology.h>

#define PYTHON_SECTION_TOPOLOGY() \
pybind11::class_< SectionTopologyInspector >( \
module, "SectionTopologyInspector" ) \
.def( pybind11::init< const Section& >() ) \
.def( pybind11::init< const Section&, bool >() ) \
.def( "section_topology_is_valid", \
&SectionTopologyInspector::section_topology_is_valid ) \
.def( "section_meshed_components_are_linked_to_unique_vertices", \
&SectionTopologyInspector:: \
section_meshed_components_are_linked_to_unique_vertices ) \
.def( "section_unique_vertices_are_linked_to_a_component_vertex", \
&SectionTopologyInspector:: \
section_unique_vertices_are_linked_to_a_component_vertex ) \
.def( "nb_corners_not_linked_to_a_unique_vertex", \
&SectionTopologyInspector:: \
nb_corners_not_linked_to_a_unique_vertex ) \
.def( "nb_lines_meshed_but_not_linked_to_unique_vertices", \
&SectionTopologyInspector:: \
nb_lines_meshed_but_not_linked_to_unique_vertices ) \
.def( "nb_surfaces_meshed_but_not_linked_to_unique_vertices", \
&SectionTopologyInspector:: \
nb_surfaces_meshed_but_not_linked_to_unique_vertices ) \
.def( "nb_unique_vertices_not_linked_to_a_component_vertex", \
&SectionTopologyInspector:: \
nb_unique_vertices_not_linked_to_a_component_vertex ) \
.def( "unique_vertices_not_linked_to_a_component_vertex", \
&SectionTopologyInspector:: \
unique_vertices_not_linked_to_a_component_vertex ) \
.def( "invalid_components_topology_unique_vertices", \
&SectionTopologyInspector:: \
invalid_components_topology_unique_vertices ) \
.def( "multiple_corners_unique_vertices", \
&SectionTopologyInspector::multiple_corners_unique_vertices ) \
.def( "multiple_internals_corner_vertices", \
&SectionTopologyInspector::multiple_internals_corner_vertices ) \
.def( "not_internal_nor_boundary_corner_vertices", \
&SectionTopologyInspector:: \
not_internal_nor_boundary_corner_vertices ) \
.def( "line_corners_without_boundary_status", \
&SectionTopologyInspector::line_corners_without_boundary_status ) \
.def( "part_of_not_boundary_nor_internal_line_unique_vertices", \
&SectionTopologyInspector:: \
part_of_not_boundary_nor_internal_line_unique_vertices ) \
.def( "part_of_line_with_invalid_internal_topology_unique_vertices", \
&SectionTopologyInspector:: \
part_of_line_with_invalid_internal_topology_unique_vertices ) \
.def( "part_of_invalid_unique_line_unique_vertices", \
&SectionTopologyInspector:: \
part_of_invalid_unique_line_unique_vertices ) \
.def( "part_of_lines_but_not_corner_unique_vertices", \
&SectionTopologyInspector:: \
part_of_lines_but_not_corner_unique_vertices ) \
.def( "part_of_invalid_surfaces_unique_vertices", \
&SectionTopologyInspector:: \
part_of_invalid_surfaces_unique_vertices ) \
.def( "part_of_line_and_not_on_surface_border_unique_vertices", \
&SectionTopologyInspector:: \
part_of_line_and_not_on_surface_border_unique_vertices )

namespace geode
{
void define_section_topology_inspector( pybind11::module& module )
{
PYTHON_SECTION_TOPOLOGY();
pybind11::class_< SectionTopologyInspector >(
module, "SectionTopologyInspector" )
.def( pybind11::init< const Section& >() )
.def( pybind11::init< const Section&, bool >() )
.def( "section_topology_is_valid",
&SectionTopologyInspector::section_topology_is_valid )
.def( "section_meshed_components_are_linked_to_unique_vertices",
&SectionTopologyInspector::
section_meshed_components_are_linked_to_unique_vertices )
.def( "section_unique_vertices_are_linked_to_a_component_vertex",
&SectionTopologyInspector::
section_unique_vertices_are_linked_to_a_component_vertex )
.def( "unique_vertices_not_linked_to_a_component_vertex",
&SectionTopologyInspector::
unique_vertices_not_linked_to_a_component_vertex )
.def( "invalid_components_topology_unique_vertices",
&SectionTopologyInspector::
invalid_components_topology_unique_vertices )
.def( "multiple_corners_unique_vertices",
&SectionTopologyInspector::multiple_corners_unique_vertices )
.def( "multiple_internals_corner_vertices",
&SectionTopologyInspector::multiple_internals_corner_vertices )
.def( "not_internal_nor_boundary_corner_vertices",
&SectionTopologyInspector::
not_internal_nor_boundary_corner_vertices )
.def( "line_corners_without_boundary_status",
&SectionTopologyInspector::
line_corners_without_boundary_status )
.def( "part_of_not_boundary_nor_internal_line_unique_vertices",
&SectionTopologyInspector::
part_of_not_boundary_nor_internal_line_unique_vertices )
.def( "part_of_line_with_invalid_internal_topology_unique_vertices",
&SectionTopologyInspector::
part_of_line_with_invalid_internal_topology_unique_vertices )
.def( "part_of_invalid_unique_line_unique_vertices",
&SectionTopologyInspector::
part_of_invalid_unique_line_unique_vertices )
.def( "part_of_lines_but_not_corner_unique_vertices",
&SectionTopologyInspector::
part_of_lines_but_not_corner_unique_vertices )
.def( "part_of_invalid_surfaces_unique_vertices",
&SectionTopologyInspector::
part_of_invalid_surfaces_unique_vertices )
.def( "part_of_line_and_not_on_surface_border_unique_vertices",
&SectionTopologyInspector::
part_of_line_and_not_on_surface_border_unique_vertices );
}
} // namespace geode
29 changes: 15 additions & 14 deletions bindings/python/tests/test-py-brep.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,23 @@


def check_components_linking(brep_inspector):
nb_unlinked_corners = brep_inspector.nb_corners_not_linked_to_a_unique_vertex()
print("There are ", nb_unlinked_corners,
" corners not linked to a unique vertex.")
nb_unlinked_lines = brep_inspector.nb_lines_meshed_but_not_linked_to_unique_vertices()
print("There are ", nb_unlinked_lines,
" lines meshed but not linked to unique vertices.")
nb_unlinked_surfaces = brep_inspector.nb_surfaces_meshed_but_not_linked_to_unique_vertices()
print("There are ", nb_unlinked_surfaces,
" surfaces meshed but not linked to unique vertices.")
nb_unlinked_blocks = brep_inspector.nb_blocks_meshed_but_not_linked_to_unique_vertices()
print("There are ", nb_unlinked_blocks,
" blocks meshed but not linked to unique vertices.")
nb_unlinked_uv = brep_inspector.nb_unique_vertices_not_linked_to_a_component_vertex()
# nb_unlinked_corners = brep_inspector.nb_corners_not_linked_to_a_unique_vertex()
# print("There are ", nb_unlinked_corners,
# " corners not linked to a unique vertex.")
# nb_unlinked_lines = brep_inspector.nb_lines_meshed_but_not_linked_to_unique_vertices()
# print("There are ", nb_unlinked_lines,
# " lines meshed but not linked to unique vertices.")
# nb_unlinked_surfaces = brep_inspector.nb_surfaces_meshed_but_not_linked_to_unique_vertices()
# print("There are ", nb_unlinked_surfaces,
# " surfaces meshed but not linked to unique vertices.")
# nb_unlinked_blocks = brep_inspector.nb_blocks_meshed_but_not_linked_to_unique_vertices()
# print("There are ", nb_unlinked_blocks,
# " blocks meshed but not linked to unique vertices.")
nb_unlinked_uv = len(brep_inspector.unique_vertices_not_linked_to_a_component_vertex())
print("There are ", nb_unlinked_uv,
" unique vertices not linked to a component mesh vertex.")
return nb_unlinked_blocks + nb_unlinked_surfaces + nb_unlinked_lines + nb_unlinked_corners + nb_unlinked_uv
return nb_unlinked_uv
# return nb_unlinked_blocks + nb_unlinked_surfaces + nb_unlinked_lines + nb_unlinked_corners + nb_unlinked_uv


def check_unique_vertices_colocation(brep_inspector):
Expand Down
Loading

0 comments on commit 325c1f7

Please sign in to comment.