summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorMarcel Admiraal <madmiraal@users.noreply.github.com>2020-06-21 14:47:14 +0100
committerMarcel Admiraal <madmiraal@users.noreply.github.com>2020-06-21 14:48:01 +0100
commitf5b99b578eb3e85128e84c64ebd52cababad67e2 (patch)
tree5786d8d9b6f7628abe81a1b2c2403e65ae6f0865 /modules
parent277d2f1f50fe060ad7ff4b2696bf67a742a0ea83 (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.cpp8
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;
}