From 5abe2d0cc236157e4951e508aca98bd0c695731e Mon Sep 17 00:00:00 2001 From: Ansgar Philippsen <ansgar.philippsen@gmail.com> Date: Thu, 28 Jun 2012 17:01:00 -0400 Subject: [PATCH] fix for previous commit 81d57f7860289fc6, putting geom::Invert calls into try block --- modules/gfx/src/scene.cc | 14 ++++++++++---- modules/mol/base/src/transform.cc | 8 +++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc index 5ade15ded..0b619af75 100644 --- a/modules/gfx/src/scene.cc +++ b/modules/gfx/src/scene.cc @@ -2020,10 +2020,16 @@ void Scene::stereo_projection(int view) } // TODO: generate both directly from near/far/fov - float pm[16]; - glGetFloatv(GL_PROJECTION_MATRIX,pm); - pmat_=geom::Transpose(geom::Mat4(pm)); - ipmat_=geom::Invert(pmat_); + try { + float pm[16]; + glGetFloatv(GL_PROJECTION_MATRIX,pm); + pmat_=geom::Transpose(geom::Mat4(pm)); + ipmat_=geom::Invert(pmat_); + } catch (geom::GeomException& e) { + LOG_WARNING("caught GeomException in Scene::stereo_projection: " << e.what()); + pmat_=geom::Mat4(); + ipmat_=geom::Mat4(); + } } void Scene::render_stereo() diff --git a/modules/mol/base/src/transform.cc b/modules/mol/base/src/transform.cc index 560216cc2..cb76e7196 100644 --- a/modules/mol/base/src/transform.cc +++ b/modules/mol/base/src/transform.cc @@ -22,6 +22,7 @@ #include <ost/info/info.hh> #include <ost/info/geom_info_conversion.hh> #endif +#include <ost/log.hh> #include "transform.hh" namespace ost { @@ -203,7 +204,12 @@ void Transform::update_tm() 0.0,0.0,0.0,1.0); ttm_ = Transpose(tm_); // TODO: calculate from rot, cen and trans - itm_ = Invert(tm_); + try { + itm_ = Invert(tm_); + } catch (GeomException& e) { + LOG_WARNING("caught GeomException in Transform::update_tm: " << e.what()); + itm_=geom::Mat4(); + } } void Transform::update_components() -- GitLab