diff options
author | Marius Kintel <marius@kintel.net> | 2011-12-28 23:46:27 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-12-28 23:46:27 (GMT) |
commit | 1fbe453cae84788689b0502526ecded6a25a69d4 (patch) | |
tree | 625804af46f3ecc9f1cfed0cb663019f9936269b | |
parent | 2799c8e9909ebc3a8e25946463cb259713daa5c1 (diff) |
Plug CGAL-3.6 exception crash reported by Don
-rw-r--r-- | src/CGALEvaluator.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/CGALEvaluator.cc b/src/CGALEvaluator.cc index a6b2f06..ed2cca6 100644 --- a/src/CGALEvaluator.cc +++ b/src/CGALEvaluator.cc @@ -269,7 +269,15 @@ Response CGALEvaluator::visit(State &state, const TransformNode &node) node.matrix(0,0), node.matrix(0,1), node.matrix(0,2), node.matrix(0,3), node.matrix(1,0), node.matrix(1,1), node.matrix(1,2), node.matrix(1,3), node.matrix(2,0), node.matrix(2,1), node.matrix(2,2), node.matrix(2,3), node.matrix(3,3)); - N.p3->transform(t); + CGAL::Failure_behaviour old_behaviour = CGAL::set_error_behaviour(CGAL::THROW_EXCEPTION); + try { + N.p3->transform(t); + } + catch (CGAL::Assertion_exception e) { + // CGAL-3.6 sometimes throws an exception here + PRINTF("CGAL error in CGAL_Nef_polyhedron3::transform(): %s", e.what()); + } + CGAL::set_error_behaviour(old_behaviour); } } else { |