diff options
author | Marcel Admiraal <madmiraal@users.noreply.github.com> | 2020-06-21 14:47:14 +0100 |
---|---|---|
committer | Marcel Admiraal <madmiraal@users.noreply.github.com> | 2020-06-21 14:48:01 +0100 |
commit | f5b99b578eb3e85128e84c64ebd52cababad67e2 (patch) | |
tree | 5786d8d9b6f7628abe81a1b2c2403e65ae6f0865 /modules | |
parent | 277d2f1f50fe060ad7ff4b2696bf67a742a0ea83 (diff) |
Check if point's index exists before adding it to the list of points
that need to split faces when avoiding creating degenerate faces
while merging CSG faces.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/csg/csg.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp index ded0b970dc..d0c9bf5d38 100644 --- a/modules/csg/csg.cpp +++ b/modules/csg/csg.cpp @@ -904,8 +904,12 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_ vertices[p_segment_indices[closest_idx]].point }; if (are_segements_parallel(edge1, edge2, vertex_snap2)) { - degenerate_points.push_back(outer_edge_idx[0]); - degenerate_points.push_back(outer_edge_idx[1]); + if (!degenerate_points.find(outer_edge_idx[0])) { + degenerate_points.push_back(outer_edge_idx[0]); + } + if (!degenerate_points.find(outer_edge_idx[1])) { + degenerate_points.push_back(outer_edge_idx[1]); + } continue; } |