From 55345ff334fda914c4487213eb14dae5824cdc1e Mon Sep 17 00:00:00 2001 From: Arnaud Botella Date: Mon, 21 Aug 2023 16:22:51 +0200 Subject: [PATCH] fix(Topology): do not check empty corners --- src/geode/inspector/topology/brep_topology.cpp | 10 +++++++++- src/geode/inspector/topology/section_topology.cpp | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/geode/inspector/topology/brep_topology.cpp b/src/geode/inspector/topology/brep_topology.cpp index 982d2b33..0065441a 100644 --- a/src/geode/inspector/topology/brep_topology.cpp +++ b/src/geode/inspector/topology/brep_topology.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -43,6 +44,12 @@ namespace { + bool brep_corner_is_meshed( + const geode::BRep& brep, const geode::uuid& corner_id ) + { + return brep.corner( corner_id ).mesh().nb_vertices() != 0; + } + bool brep_line_is_meshed( const geode::BRep& brep, const geode::uuid& line_id ) { @@ -182,7 +189,8 @@ namespace geode index_t counter{ 0 }; for( const auto& corner : brep_.corners() ) { - if( !brep_has_unique_vertex_associated_to_component( + if( brep_corner_is_meshed( brep_, corner.id() ) + && !brep_has_unique_vertex_associated_to_component( brep_, corner.id() ) ) { if( verbose_ ) diff --git a/src/geode/inspector/topology/section_topology.cpp b/src/geode/inspector/topology/section_topology.cpp index 249619b8..ecb18c49 100644 --- a/src/geode/inspector/topology/section_topology.cpp +++ b/src/geode/inspector/topology/section_topology.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -40,6 +41,12 @@ namespace { + bool section_corner_is_meshed( + const geode::Section& section, const geode::uuid& corner_id ) + { + return section.corner( corner_id ).mesh().nb_vertices() != 0; + } + bool section_line_is_meshed( const geode::Section& section, const geode::uuid& line_id ) { @@ -118,7 +125,8 @@ namespace geode { for( const auto& corner : section_.corners() ) { - if( !section_has_unique_vertex_associated_to_component( + if( section_corner_is_meshed( section_, corner.id() ) + && !section_has_unique_vertex_associated_to_component( section_, corner.id() ) ) { return false;