From 19e627cab34a04a3d01b2e3a868b7bf91d56e8f9 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 18 Mar 2014 18:54:41 +0600 Subject: Backport revisions for the final 2.70 release e6a359a, 9437927, a205700, d908c90, a6e3471, deef641, 4080673, 0141265, 0c6e744, f959e3d, ade6646, caf5d90, 5febb09, d08e6ab, 22873ea, 3d031d1, c450ea2, 60cab47, ed26edb, df25dbf, f127f49. --- extern/carve/lib/intersect_face_division.cpp | 4 ++++ extern/carve/patches/face_hole_merge_workaround.patch | 14 ++++++++++++++ extern/carve/patches/series | 1 + 3 files changed, 19 insertions(+) create mode 100644 extern/carve/patches/face_hole_merge_workaround.patch (limited to 'extern') diff --git a/extern/carve/lib/intersect_face_division.cpp b/extern/carve/lib/intersect_face_division.cpp index e826948128c..0016724e16c 100644 --- a/extern/carve/lib/intersect_face_division.cpp +++ b/extern/carve/lib/intersect_face_division.cpp @@ -719,6 +719,10 @@ namespace { unassigned--; } } + + if (!removed.size()) + throw carve::exception("Failed to merge holes"); + for (std::set::iterator f = removed.begin(); f != removed.end(); ++f) { for (unsigned i = 0; i < containing_faces.size(); ++i) { containing_faces[i].erase(std::remove(containing_faces[i].begin(), diff --git a/extern/carve/patches/face_hole_merge_workaround.patch b/extern/carve/patches/face_hole_merge_workaround.patch new file mode 100644 index 00000000000..834e03a4b12 --- /dev/null +++ b/extern/carve/patches/face_hole_merge_workaround.patch @@ -0,0 +1,14 @@ +diff -r e82d852e4fb0 lib/intersect_face_division.cpp +--- a/lib/intersect_face_division.cpp Wed Jan 15 13:16:14 2014 +1100 ++++ b/lib/intersect_face_division.cpp Thu Mar 13 15:39:26 2014 +0600 +@@ -719,6 +719,10 @@ + unassigned--; + } + } ++ ++ if (!removed.size()) ++ throw carve::exception("Failed to merge holes"); ++ + for (std::set::iterator f = removed.begin(); f != removed.end(); ++f) { + for (unsigned i = 0; i < containing_faces.size(); ++i) { + containing_faces[i].erase(std::remove(containing_faces[i].begin(), diff --git a/extern/carve/patches/series b/extern/carve/patches/series index 62a24d9d730..286d594bbef 100644 --- a/extern/carve/patches/series +++ b/extern/carve/patches/series @@ -9,3 +9,4 @@ interpolator_reorder.patch mesh_simplify_dissolve_edges.patch memory_leak_fix.patch mavc_fix.patch +face_hole_merge_workaround.patch -- cgit v1.2.3