Skip to content

Commit e358c69

Browse files
committed
fix(MeshHelpers): handle polygon with less than 3 vertices in triangulate_surface_mesh
1 parent fd3635e commit e358c69

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/geode/mesh/helpers/convert_surface_mesh.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,17 +156,15 @@ namespace geode
156156
std::vector< bool > to_delete( surface.nb_polygons(), false );
157157
for( const auto p : geode::Range{ surface.nb_polygons() } )
158158
{
159-
if( surface.nb_polygon_vertices( p ) > 3 )
159+
const auto nb_vertices = surface.nb_polygon_vertices( p );
160+
to_delete[p] = nb_vertices != 3;
161+
if( nb_vertices > 3 )
160162
{
161-
to_delete[p] = true;
162-
const auto v0 = surface.polygon_vertex( { p, 0 } );
163-
for( const auto v :
164-
LRange{ 2, surface.nb_polygon_vertices( p ) } )
163+
const auto vertices = surface.polygon_vertices( p );
164+
for( const auto v : LRange{ 2, nb_vertices } )
165165
{
166-
builder.create_polygon( { v0,
167-
surface.polygon_vertex(
168-
{ p, static_cast< local_index_t >( v - 1 ) } ),
169-
surface.polygon_vertex( { p, v } ) } );
166+
builder.create_polygon(
167+
{ vertices[0], vertices[v - 1], vertices[v] } );
170168
}
171169
}
172170
}

0 commit comments

Comments
 (0)