From 06bc35360da2e55b08fa0087e03c63e364ba3ebf Mon Sep 17 00:00:00 2001 From: Chris Brunner Date: Tue, 29 Jun 2010 22:47:44 +0000 Subject: [PATCH] Prevent trying to invert singular matrix --- panda/src/egg/eggGroup.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/panda/src/egg/eggGroup.cxx b/panda/src/egg/eggGroup.cxx index 7c0a218ef5..7bdbc283cb 100644 --- a/panda/src/egg/eggGroup.cxx +++ b/panda/src/egg/eggGroup.cxx @@ -1236,12 +1236,20 @@ adjust_under() { // Our own transform also affects our node frame. _node_frame = new MatrixFrame(get_transform3d() * get_node_frame()); - _node_frame_inv = - new MatrixFrame(invert(get_node_frame())); + + // To prevent trying to invert a sigular matrix + LMatrix4d mat; + bool invert_ok = mat.invert_from(get_node_frame()); + if (invert_ok) { + _node_frame_inv = + new MatrixFrame(invert(get_node_frame())); + } + _vertex_to_node = new MatrixFrame(get_vertex_frame() * get_node_frame_inv()); _node_to_vertex = new MatrixFrame(get_node_frame() * get_vertex_frame_inv()); + } if (is_instance_type()) {