summaryrefslogtreecommitdiff
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
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.
-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;
}