Skip to content

Commit 39ab08f

Browse files
committed
fix(Mesh): recompute adjacency only for triangulated elements
1 parent 0d0e22f commit 39ab08f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/geode/mesh/helpers/convert_surface_mesh.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,17 +352,19 @@ namespace geode
352352
to_delete[p] = nb_vertices != 3;
353353
if( nb_vertices > 3 )
354354
{
355+
std::vector< index_t > new_polygons;
356+
new_polygons.reserve( nb_vertices - 2 );
355357
const auto vertices = surface.polygon_vertices( p );
356358
for( const auto v : LRange{ 2, nb_vertices } )
357359
{
358-
builder.create_polygon(
359-
{ vertices[0], vertices[v - 1], vertices[v] } );
360+
new_polygons.emplace_back( builder.create_polygon(
361+
{ vertices[0], vertices[v - 1], vertices[v] } ) );
360362
}
363+
builder.compute_polygon_adjacencies( new_polygons );
361364
}
362365
}
363366
to_delete.resize( surface.nb_polygons(), false );
364367
builder.delete_polygons( to_delete );
365-
builder.compute_polygon_adjacencies();
366368
}
367369

368370
std::unique_ptr< SurfaceMesh3D > convert_surface_mesh2d_into_3d(

0 commit comments

Comments
 (0)