Prevent trying to invert singular matrix

This commit is contained in:
Chris Brunner 2010-06-29 22:47:44 +00:00
parent 2b1f43f5d8
commit 06bc35360d

View File

@ -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()) {