mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
Prevent trying to invert singular matrix
This commit is contained in:
parent
2b1f43f5d8
commit
06bc35360d
@ -1236,12 +1236,20 @@ adjust_under() {
|
|||||||
// Our own transform also affects our node frame.
|
// Our own transform also affects our node frame.
|
||||||
_node_frame =
|
_node_frame =
|
||||||
new MatrixFrame(get_transform3d() * get_node_frame());
|
new MatrixFrame(get_transform3d() * 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 =
|
_node_frame_inv =
|
||||||
new MatrixFrame(invert(get_node_frame()));
|
new MatrixFrame(invert(get_node_frame()));
|
||||||
|
}
|
||||||
|
|
||||||
_vertex_to_node =
|
_vertex_to_node =
|
||||||
new MatrixFrame(get_vertex_frame() * get_node_frame_inv());
|
new MatrixFrame(get_vertex_frame() * get_node_frame_inv());
|
||||||
_node_to_vertex =
|
_node_to_vertex =
|
||||||
new MatrixFrame(get_node_frame() * get_vertex_frame_inv());
|
new MatrixFrame(get_node_frame() * get_vertex_frame_inv());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_instance_type()) {
|
if (is_instance_type()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user