Skip to content

feat(BRepTopology): report Lines and Surfaces embedded in several components - #209

Merged
BenPinet merged 2 commits into
nextfrom
fix/multiply-embedded-lines-surfaces
Oct 26, 2026
Merged

BenPinet merged 2 commits into
nextfrom
fix/multiply-embedded-lines-surfaces

Conversation

@panquez

@panquez panquez commented Oct 26, 2026

Copy link
Copy Markdown
Member

Summary

  • BRep topology inspection did not report Lines internal to several Blocks, so is_brep_valid accepted a model (10_01_meshing_after_conversion.og_istrm) where 4 pieces of a split arc were each internal to 2 Blocks. When Blocks are not meshed, every Block embedding check is skipped, and no check looked at the number of embeddings from the relationships alone.
  • New per-Line result BRepLinesTopologyInspectionResult::lines_multiply_embedded: a Line with more than one active embedding, at least one of them a Block (same rule as the existing corner_is_multiply_embedded). A Line internal to a Block and a Surface is reported; a Line internal to two Surfaces is not.
  • New per-Surface result BRepSurfacesTopologyInspectionResult::surfaces_multiply_embedded: a Surface internal to more than one active Block.
  • Both only use relationships (they also apply to non-meshed Blocks), are counted in nb_issues/string, reported by is_brep_valid and exposed in the Python bindings.

Test plan

  • New test_multiply_embedded_line and test_multiply_embedded_surface in test-brep-topology (2 flagged Lines / 1 flagged Surface, single embeddings not flagged)
  • All 29 C++ tests pass locally (issue counts on existing models unchanged)
  • 10_01_meshing_after_conversion.og_istrm now reports the 4 Lines Arc #13 #0/#1/#3/#4, each internal to 2 Blocks
  • Python bindings (not built locally, CI)

🤖 Generated with Claude Code

panquez and others added 2 commits October 26, 2026 18:11
…including a Block

A Line internal to two Blocks, or to a Block and a Surface, was not
reported, in particular when Blocks are not meshed since all Block
embedding checks are skipped in that case. The check only relies on
relationships.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Surface internal to several Blocks was not reported. The check only
relies on relationships, so it also applies when Blocks are not meshed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v21.1.8) reports: 38 concern(s)
  • bindings/python/src/inspection/topology/brep_topology.hpp:31:42: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

       31 |     void define_brep_topology_inspector( pybind11::module& module )
          |                                          ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:33:9: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

       33 |         pybind11::class_< BRepCornersTopologyInspectionResult >(
          |         ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:33:27: error: [clang-diagnostic-error]

    'BRepCornersTopologyInspectionResult' does not refer to a value

       33 |         pybind11::class_< BRepCornersTopologyInspectionResult >(
          |                           ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/include/geode/inspector/inspection/topology/brep_corners_topology.hpp:44:44: note: declared here
       44 |         opengeode_inspector_inspection_api BRepCornersTopologyInspectionResult
          |                                            ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:35:19: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

       35 |             .def( pybind11::init<>() )
          |                   ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:35:34: error: [clang-diagnostic-error]

    expected expression

       35 |             .def( pybind11::init<>() )
          |                                  ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:35:36: error: [clang-diagnostic-error]

    expected expression

       35 |             .def( pybind11::init<>() )
          |                                    ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:59:18: error: [clang-diagnostic-error]

    use of undeclared identifier 'issues_repr'

       59 |                 &issues_repr< BRepCornersTopologyInspectionResult > )
          |                  ^~~~~~~~~~~
  • bindings/python/src/inspection/topology/brep_topology.hpp:63:9: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

       63 |         pybind11::class_< BRepLinesTopologyInspectionResult >(
          |         ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:63:27: error: [clang-diagnostic-error]

    'BRepLinesTopologyInspectionResult' does not refer to a value

       63 |         pybind11::class_< BRepLinesTopologyInspectionResult >(
          |                           ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/include/geode/inspector/inspection/topology/brep_lines_topology.hpp:43:47: note: declared here
       43 |     struct opengeode_inspector_inspection_api BRepLinesTopologyInspectionResult
          |                                               ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:65:19: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

       65 |             .def( pybind11::init<>() )
          |                   ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:65:34: error: [clang-diagnostic-error]

    expected expression

       65 |             .def( pybind11::init<>() )
          |                                  ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:65:36: error: [clang-diagnostic-error]

    expected expression

       65 |             .def( pybind11::init<>() )
          |                                    ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:98:30: error: [clang-diagnostic-error]

    use of undeclared identifier 'issues_repr'

       98 |                 "__repr__", &issues_repr< BRepLinesTopologyInspectionResult > )
          |                              ^~~~~~~~~~~
  • bindings/python/src/inspection/topology/brep_topology.hpp:102:9: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

      102 |         pybind11::class_< BRepSurfacesTopologyInspectionResult >(
          |         ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:102:27: error: [clang-diagnostic-error]

    'BRepSurfacesTopologyInspectionResult' does not refer to a value

      102 |         pybind11::class_< BRepSurfacesTopologyInspectionResult >(
          |                           ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/include/geode/inspector/inspection/topology/brep_surfaces_topology.hpp:42:44: note: declared here
       42 |         opengeode_inspector_inspection_api BRepSurfacesTopologyInspectionResult
          |                                            ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:104:19: error: [clang-diagnostic-error]

    use of undeclared identifier 'pybind11'

      104 |             .def( pybind11::init<>() )
          |                   ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:104:34: error: [clang-diagnostic-error]

    expected expression

      104 |             .def( pybind11::init<>() )
          |                                  ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:104:36: error: [clang-diagnostic-error]

    expected expression

      104 |             .def( pybind11::init<>() )
          |                                    ^
  • bindings/python/src/inspection/topology/brep_topology.hpp:132:18: error: [clang-diagnostic-error]

    use of undeclared identifier 'issues_repr'

      132 |                 &issues_repr< BRepSurfacesTopologyInspectionResult > )
          |                  ^~~~~~~~~~~
  • include/geode/inspector/inspection/topology/brep_lines_topology.hpp:132:37: warning: [readability-avoid-const-params-in-decls]

    parameter 'edge_index' is const-qualified in the function declaration; const-qualification of parameters only has an effect in function definitions

      132 |                 const Line3D& line, const index_t edge_index ) const;
          |                                     ^~~~~
  • include/geode/inspector/inspection/topology/brep_surfaces_topology.hpp:124:40: warning: [readability-avoid-const-params-in-decls]

    parameter 'facet_index' is const-qualified in the function declaration; const-qualification of parameters only has an effect in function definitions

      124 |                 const Surface3D& line, const index_t facet_index ) const;
          |                                        ^~~~~
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:49:20: warning: [readability-identifier-length]

    variable name 'id' is too short, expected at least 3 characters

       49 |         const auto id = embedding.id.string();
          |                    ^
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:216:28: warning: [readability-function-cognitive-complexity]

    function 'vertex_is_part_of_invalid_embedded_line' has cognitive complexity of 17 (threshold 10)

      216 |         BRepLinesTopology::vertex_is_part_of_invalid_embedded_line(
          |                            ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:219:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      219 |         for( const auto& line_cmv :
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:222:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      222 |             if( line_cmv.component_id.type != Line3D::component_type_static() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:228:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      228 |             if( !line.is_active() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:232:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      232 |             for( const auto& embedding : brep_.embeddings( line_id ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:234:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      234 |                 if( brep_.Relationships::is_boundary( line_id, embedding.id ) )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:243:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      243 |                 if( embedding.type == Block3D::component_type_static()
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:244:21: note: +1
      244 |                     && !internal::brep_blocks_are_meshed( brep_ ) )
          |                     ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:248:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      248 |                 if( !absl::c_any_of(
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:250:25: note: nesting level increased to 3
      250 |                         [&embedding]( const ComponentMeshVertex& cmv ) {
          |                         ^
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:268:28: warning: [readability-function-cognitive-complexity]

    function 'vertex_is_part_of_invalid_single_line' has cognitive complexity of 23 (threshold 10)

      268 |         BRepLinesTopology::vertex_is_part_of_invalid_single_line(
          |                            ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:273:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      273 |         if( line_uuids.size() != 1 )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:279:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      279 |         if( !line.is_active() )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:287:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      287 |         if( brep_.nb_embedding_surfaces( line ) < 1
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:288:13: note: +1
      288 |             && brep_.nb_incidences( line_id ) < 1 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:292:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      292 |         if( surface_uuids.size() == 1 )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:294:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      294 |             if( !brep_.Relationships::is_internal( line_id, surface_uuids[0] )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:295:17: note: +1
      295 |                 && !( brep_.Relationships::nb_embeddings( surface_uuids[0] ) > 0
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:296:23: note: +1
      296 |                       || brep_.Relationships::is_boundary(
          |                       ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:312:14: note: +1, nesting level increased to 1
      312 |         else if( surface_uuids.empty() )
          |              ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:314:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      314 |             if( !internal::brep_blocks_are_meshed( brep_ ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:318:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      318 |             if( block_uuids.size() != 1 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:326:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      326 |             if( !brep_.Relationships::is_internal( line_id, block_uuids[0] ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:336:9: note: +1, nesting level increased to 1
      336 |         else
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:338:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      338 |             for( const auto& surface_id : surface_uuids )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:341:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      341 |                 if( !brep_.is_boundary( line, surface )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:342:21: note: +1
      342 |                     && !brep_.is_internal( line, surface ) )
          |                     ^
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:295:20: warning: [readability-simplify-boolean-expr]

    boolean expression can be simplified by DeMorgan's theorem

      295 |                 && !( brep_.Relationships::nb_embeddings( surface_uuids[0] ) > 0
          |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                                                              <=
      296 |                       || brep_.Relationships::is_boundary(
          |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                       && !
      297 |                           line_id, surface_uuids[0] ) ) )
          |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:359:9: warning: [readability-function-cognitive-complexity]

    function 'vertex_is_part_of_line_with_wrong_relationships_to_surface' has cognitive complexity of 38 (threshold 10)

      359 |         vertex_is_part_of_line_with_wrong_relationships_to_surface(
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:362:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      362 |         for( const auto& cmv :
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:365:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      365 |             if( cmv.component_id.type != Line3D::component_type_static() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:370:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      370 |             if( !line.is_active() || line.mesh().nb_edges() == 0 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:370:35: note: +1
      370 |             if( !line.is_active() || line.mesh().nb_edges() == 0 )
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:375:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      375 |             for( const auto& incident_surface : brep_.incidences( line ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:377:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      377 |                 if( !incident_surface.is_active() )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:381:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      381 |                 if( !cme.surface_edges.contains( incident_surface.id() ) )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:392:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      392 |                 if( cme.surface_edges.at( incident_surface.id() ).size() != 1 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:406:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      406 |             for( const auto& embedding_surface :
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:409:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      409 |                 if( !embedding_surface.is_active() )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:413:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      413 |                 if( !cme.surface_edges.contains( embedding_surface.id() ) )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:425:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      425 |                 if( cme.surface_edges.at( embedding_surface.id() ).size() <= 1 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:439:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      439 |             if( brep_.nb_incidences( cmv.component_id.id ) == 0
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:440:17: note: +1
      440 |                 && brep_.nb_embedding_surfaces( line ) == 0 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:442:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      442 |                 for( const auto& [surface_id, _] : cme.surface_edges )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:444:21: note: +4, including nesting penalty of 3, nesting level increased to 4
      444 |                     if( brep_.surface( surface_id ).is_active() )
          |                     ^
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:491:28: warning: [readability-function-cognitive-complexity]

    function 'line_edge_has_wrong_component_edges_around' has cognitive complexity of 36 (threshold 10)

      491 |         BRepLinesTopology::line_edge_has_wrong_component_edges_around(
          |                            ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:495:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      495 |         for( const auto& [surface_id, surface_edges] : cme.surface_edges )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:498:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      498 |             if( !surface.is_active() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:502:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      502 |             if( brep_.is_boundary( line, surface ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:504:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      504 |                 if( surface_edges.size() != 1 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:517:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      517 |             if( brep_.is_internal( line, surface ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:519:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      519 |                 if( surface_edges.size() != 2 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:537:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      537 |         for( const auto& embedding_surface : brep_.embedding_surfaces( line ) )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:539:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      539 |             if( !embedding_surface.is_active() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:543:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      543 |             if( !cme.surface_edges.contains( embedding_surface.id() ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:554:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      554 |         for( const auto& incident_surface : brep_.incidences( line ) )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:556:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      556 |             if( !incident_surface.is_active() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:560:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      560 |             if( !cme.surface_edges.contains( incident_surface.id() ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:571:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      571 |         for( const auto& [block_id, block_edges] : cme.block_edges )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:574:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      574 |             if( block.is_active() && brep_.is_internal( line, block ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:574:35: note: +1
      574 |             if( block.is_active() && brep_.is_internal( line, block ) )
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:576:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      576 |                 if( block_edges.size() != 1 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:588:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      588 |         for( const auto& embedding_block : brep_.embedding_blocks( line ) )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:590:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      590 |             if( !embedding_block.is_active()
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:591:17: note: +1
      591 |                 || embedding_block.mesh().nb_polyhedra() == 0 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:595:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      595 |             if( !cme.block_edges.contains( embedding_block.id() ) )
          |             ^
  • src/geode/inspector/inspection/topology/brep_lines_topology.cpp:610:28: warning: [readability-function-cognitive-complexity]

    function 'inspect_lines_topology' has cognitive complexity of 18 (threshold 10)

      610 |         BRepLinesTopology::inspect_lines_topology() const
          |                            ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:613:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      613 |         for( const auto& line : brep_.active_lines() )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:615:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      615 |             if( !line_is_meshed( brep_.line( line.id() ) ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:622:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      622 |             if( brep_.nb_embeddings( line.id() ) == 0
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:623:17: note: +1
      623 |                 && brep_.nb_incidences( line.id() ) == 0 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:631:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      631 |             if( const auto message =
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:640:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      640 |             if( line_result.nb_issues() != 0 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:654:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      654 |             for( const auto edge_id : Range{ line.mesh().nb_edges() } )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:656:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      656 |                 if( const auto problem_message =
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:664:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      664 |             if( line_edges_with_wrong_cme.nb_issues() != 0 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:671:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      671 |         for( const auto unique_vertex_id : Range{ brep_.nb_unique_vertices() } )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:675:35: note: nesting level increased to 2
      675 |                 unique_vertex_id, [&] {
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:682:35: note: nesting level increased to 2
      682 |                 unique_vertex_id, [&] {
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:688:35: note: nesting level increased to 2
      688 |                 unique_vertex_id, [&] {
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_lines_topology.cpp:695:35: note: nesting level increased to 2
      695 |                 unique_vertex_id, [&] {
          |                                   ^
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:65:21: warning: [readability-identifier-length]

    variable name 'it' is too short, expected at least 3 characters

       65 |         const auto [it, inserted] =
          |                     ^
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:85:34: warning: [readability-function-cognitive-complexity]

    function 'polygon_has_wrong_component_facets_around' has cognitive complexity of 13 (threshold 10)

       85 |     std::optional< std::string > polygon_has_wrong_component_facets_around(
          |                                  ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:96:9: note: +1, including nesting penalty of 0, nesting level increased to 1
       96 |         for( const auto& [block_id, block_facets] : block_polygons )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:101:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      101 |             if( relation == SURFACE_BLOCK_RELATION::inactive )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:105:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      105 |             if( relation == SURFACE_BLOCK_RELATION::boundary )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:107:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      107 |                 if( block_facets.size() != 1 )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:118:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      118 |             if( relation == SURFACE_BLOCK_RELATION::internal )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:120:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      120 |                 if( block_facets.size() != 2 )
          |                 ^
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:85:34: warning: [readability-function-size]

    function 'polygon_has_wrong_component_facets_around' exceeds recommended size/complexity thresholds

       85 |     std::optional< std::string > polygon_has_wrong_component_facets_around(
          |                                  ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:85:34: note: 5 parameters (threshold 4)
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:285:31: warning: [readability-function-cognitive-complexity]

    function 'vertex_is_part_of_invalid_embedded_surface' has cognitive complexity of 15 (threshold 10)

      285 |         BRepSurfacesTopology::vertex_is_part_of_invalid_embedded_surface(
          |                               ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:288:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      288 |         for( const auto surface_id : internal::components_uuids( brep_,
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:292:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      292 |             if( !surface.is_active() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:296:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      296 |             for( const auto& embedding : brep_.embeddings( surface_id ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:299:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      299 |                 if( !block.is_active() )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:303:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      303 |                 if( brep_.Relationships::is_boundary(
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:314:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      314 |                 if( internal::brep_blocks_are_meshed( brep_ )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:315:21: note: +1
      315 |                     && !absl::c_any_of(
          |                     ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:317:25: note: nesting level increased to 3
      317 |                         [&embedding]( const ComponentMeshVertex& cmv ) {
          |                         ^
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:337:31: warning: [readability-function-cognitive-complexity]

    function 'vertex_is_part_of_invalid_multiple_surfaces' has cognitive complexity of 44 (threshold 10)

      337 |         BRepSurfacesTopology::vertex_is_part_of_invalid_multiple_surfaces(
          |                               ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:342:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      342 |         if( absl::c_count_if( surface_uuids,
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:343:17: note: nesting level increased to 1
      343 |                 [this]( const uuid& surface_id ) {
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:352:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      352 |         if( line_uuids.empty() )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:355:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      355 |             for( const auto& cmv :
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:358:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      358 |                 if( cmv.component_id.type != Corner3D::component_type_static() )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:363:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      363 |                 for( const auto& surface_id : surface_uuids )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:366:21: note: +4, including nesting penalty of 3, nesting level increased to 4
      366 |                     if( surface.is_active()
          |                     ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:367:25: note: +1
      367 |                         && !brep_.is_internal( corner, surface ) )
          |                         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:383:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      383 |             if( !has_corner_internal_to_all_surfaces )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:391:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      391 |         if( line_uuids.size() == 1 )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:395:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      395 |             for( const auto& cmv :
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:398:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      398 |                 if( cmv.component_id.type != Line3D::component_type_static() )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:403:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      403 |                 for( const auto& surface_id : surface_uuids )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:405:21: note: +4, including nesting penalty of 3, nesting level increased to 4
      405 |                     if( brep_.Relationships::is_boundary(
          |                     ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:407:25: note: +1
      407 |                         || brep_.Relationships::is_internal(
          |                         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:414:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      414 |             if( nb_cmv_lines >= 2 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:418:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      418 |             for( const auto& cmv :
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:421:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      421 |                 if( cmv.component_id.type != Corner3D::component_type_static() )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:425:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      425 |                 if( brep_.Relationships::nb_embeddings( cmv.component_id.id )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:434:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      434 |                 if( brep_.Relationships::nb_embeddings( cmv.component_id.id )
          |                 ^
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:449:31: warning: [readability-function-cognitive-complexity]

    function 'vertex_is_part_of_line_and_not_on_surface_border' has cognitive complexity of 13 (threshold 10)

      449 |         BRepSurfacesTopology::vertex_is_part_of_line_and_not_on_surface_border(
          |                               ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:454:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      454 |         if( line_uuids.empty() )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:458:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      458 |         for( const auto& cmv :
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:461:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      461 |             if( cmv.component_id.type != Surface3D::component_type_static() )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:466:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      466 |             if( surface.mesh().is_vertex_on_border( cmv.vertex ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:470:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      470 |             for( const auto& line_id : line_uuids )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:473:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      473 |                 if( line.is_active()
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:474:21: note: +1
      474 |                     && ( brep_.is_boundary( line, surface )
          |                     ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:475:26: note: +1
      475 |                          || brep_.is_internal( line, surface ) ) )
          |                          ^
  • src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:500:31: warning: [readability-function-cognitive-complexity]

    function 'inspect_surfaces_topology' has cognitive complexity of 22 (threshold 10)

      500 |         BRepSurfacesTopology::inspect_surfaces_topology() const
          |                               ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:504:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      504 |         for( const auto& surface : brep_.active_surfaces() )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:506:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      506 |             if( !surface_is_meshed( brep_.surface( surface.id() ) ) )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:513:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      513 |             if( const auto message =
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:523:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      523 |             if( surface_result.nb_issues() != 0 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:534:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      534 |             if( !meshed_blocks )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:545:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      545 |             for( const auto v : Indices{ unique_vertices } )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:551:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      551 |             for( const auto facet_id : Range{ mesh.nb_polygons() } )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:555:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      555 |                 for( auto& vertex : polygon_unique_vertices )
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:559:17: note: +3, including nesting penalty of 2, nesting level increased to 3
      559 |                 if( const auto problem_message =
          |                 ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:568:13: note: +2, including nesting penalty of 1, nesting level increased to 2
      568 |             if( surface_facets_with_wrong_cme.nb_issues() != 0 )
          |             ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:575:9: note: +1, including nesting penalty of 0, nesting level increased to 1
      575 |         for( const auto unique_vertex_id : Range{ brep_.nb_unique_vertices() } )
          |         ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:580:35: note: nesting level increased to 2
      580 |                 unique_vertex_id, [&] {
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:586:35: note: nesting level increased to 2
      586 |                 unique_vertex_id, [&] {
          |                                   ^
    /__w/OpenGeode-Inspector/OpenGeode-Inspector/src/geode/inspector/inspection/topology/brep_surfaces_topology.cpp:593:35: note: nesting level increased to 2
      593 |                 unique_vertex_id, [&] {
          |                                   ^
  • tests/inspection/test-brep-topology.cpp:111:41: warning: [cppcoreguidelines-avoid-magic-numbers]

    6 is a magic number; consider replacing it with a named constant

      111 |         builder.create_unique_vertices( 6 );
          |                                         ^
  • tests/inspection/test-brep-topology.cpp:118:64: warning: [cppcoreguidelines-avoid-magic-numbers]

    5 is a magic number; consider replacing it with a named constant

      118 |         builder.set_unique_vertex( { line.component_id(), 1 }, 5 );
          |                                                                ^
  • tests/inspection/test-brep-topology.cpp:231:25: warning: [readability-identifier-length]

    variable name 'c' is too short, expected at least 3 characters

      231 |         for( const auto c : geode::LRange{ 3 } )
          |                         ^

✨ Powered by cpp-linter -- ⭐ Star • ❤️ Sponsor • 💬 Feedback

@BenPinet
BenPinet merged commit f6188e7 into next Oct 26, 2026
28 checks passed
@BenPinet
BenPinet deleted the fix/multiply-embedded-lines-surfaces branch October 26, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants