Skip to content

Commit 8a5a0c4

Browse files
authored
Merge pull request #921 from Geode-solutions/fix/modify-component-mesh-edges-method
fix(SurfaceComponentMeshEdges): assure that component edges does not …
2 parents 81900f2 + 4cabadd commit 8a5a0c4

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

src/geode/model/helpers/component_mesh_edges.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,19 @@ namespace geode
161161
const auto& mesh = surface.mesh();
162162
for( const auto& pair : surface_pair.second )
163163
{
164-
for( auto& polygon_vertex :
165-
mesh.polygons_from_edge_vertices( pair ) )
164+
if( auto edge = mesh.polygon_edge_from_vertices(
165+
pair[0], pair[1] ) )
166+
167+
{
168+
edges[surface.id()].emplace_back(
169+
std::move( edge.value() ) );
170+
continue;
171+
}
172+
if( auto edge = mesh.polygon_edge_from_vertices(
173+
pair[1], pair[0] ) )
166174
{
167175
edges[surface.id()].emplace_back(
168-
std::move( polygon_vertex ) );
176+
std::move( edge.value() ) );
169177
}
170178
}
171179
}

src/geode/model/helpers/detail/split_along_surface_mesh_borders.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,25 @@ namespace geode
219219
}
220220
for( auto& edge : it->second )
221221
{
222-
edges.emplace_back( std::move( edge ) );
222+
const auto& surface_mesh = surface.mesh();
223+
const auto& edge_vertices =
224+
surface_mesh.polygon_edge_vertices( edge );
225+
edges.emplace_back(
226+
surface_mesh
227+
.polygon_edge_from_vertices(
228+
edge_vertices[0], edge_vertices[1] )
229+
.value() );
230+
if( surface_mesh
231+
.polygon_edge_from_vertices(
232+
edge_vertices[1], edge_vertices[0] )
233+
.has_value() )
234+
{
235+
edges.emplace_back(
236+
surface_mesh
237+
.polygon_edge_from_vertices(
238+
edge_vertices[1], edge_vertices[0] )
239+
.value() );
240+
}
223241
}
224242
}
225243
}

0 commit comments

Comments
 (0)