@@ -88,11 +88,16 @@ namespace geode
8888 async::task< std::pair< uuid, InspectionIssues< index_t > > > >
8989 surface_tasks;
9090 surface_tasks.reserve ( model_.nb_surfaces () );
91+ const auto surfaces_to_enable = surfaces_on_which_enable_edges ();
9192 for ( const auto & surface : model_.surfaces () )
9293 {
93- surface_tasks.emplace_back ( async::spawn ( [this , &threshold,
94+ surface_tasks.emplace_back ( async::spawn ( [&surfaces_to_enable,
95+ &threshold,
9496 &surface] {
95- this ->enable_edges_on_surface ( surface );
97+ if ( absl::c_contains ( surfaces_to_enable, surface.id () ) )
98+ {
99+ surface.mesh ().enable_edges ();
100+ }
96101 const geode::SurfaceMeshDegeneration< Model::dim >
97102 inspector{ surface.mesh () };
98103 auto issues = inspector.small_edges ( threshold );
@@ -163,15 +168,20 @@ namespace geode
163168 }
164169
165170 template < typename Model >
166- void ComponentMeshesDegeneration< Model >::enable_edges_on_surface(
167- const Surface< Model::dim >& surface ) const
171+ std::vector< uuid > ComponentMeshesDegeneration<
172+ Model >::surfaces_on_which_enable_edges( ) const
168173 {
169- const auto & mesh = surface. mesh () ;
170- if ( !mesh. are_edges_enabled () )
174+ std::vector< uuid > result ;
175+ for ( const auto & surface : model_. surfaces () )
171176 {
172- mesh.enable_edges ();
173- enabled_edges_surfaces_.emplace ( surface.id () );
177+ const auto & mesh = surface.mesh ();
178+ if ( !mesh.are_edges_enabled () )
179+ {
180+ result.emplace_back ( surface.id () );
181+ enabled_edges_surfaces_.emplace ( surface.id () );
182+ }
174183 }
184+ return result;
175185 }
176186
177187 template class opengeode_inspector_inspector_api
0 commit comments