diff --git a/src/OpenMesh/Apps/Decimating/CmdOption.hh b/src/OpenMesh/Apps/Decimating/CmdOption.hh index 2668a346..ebaed634 100644 --- a/src/OpenMesh/Apps/Decimating/CmdOption.hh +++ b/src/OpenMesh/Apps/Decimating/CmdOption.hh @@ -49,7 +49,7 @@ public: typedef T value_type; - CmdOption(const T& _val) : val_(_val), valid_(true) { } + CmdOption(const T& _val) : val_(_val), valid_(true), enabled_(false) { } CmdOption() : valid_(false), enabled_(false) { } // has been set and has a value @@ -69,10 +69,10 @@ public: return *this; } - operator T () { return val_; } + operator T () const { return val_; } // operator const T& () const { return val_; } - operator T* () { return is_valid() ? &val_ : NULL; } + operator T* () const { return is_valid() ? &val_ : NULL; } private: diff --git a/src/OpenMesh/Apps/QtViewer/QGLViewerWidget.cc b/src/OpenMesh/Apps/QtViewer/QGLViewerWidget.cc index 9c153f23..a1a6e09a 100644 --- a/src/OpenMesh/Apps/QtViewer/QGLViewerWidget.cc +++ b/src/OpenMesh/Apps/QtViewer/QGLViewerWidget.cc @@ -316,7 +316,6 @@ QGLViewerWidget::mouseMoveEvent( QMouseEvent* _event ) // Left & middle button: zoom in/out - float value_y; Vec3f newPoint3D; bool newPoint_hitSphere = map_to_sphere( newPoint2D, newPoint3D ); @@ -336,7 +335,7 @@ QGLViewerWidget::mouseMoveEvent( QMouseEvent* _event ) if ( (_event->buttons() == (LeftButton+MidButton)) || (_event->buttons() == LeftButton && _event->modifiers() == ControlModifier)) { - value_y = radius_ * dy * 3.0 / h; + float value_y = radius_ * dy * 3.0 / h; translate(Vec3f(0.0, 0.0, value_y)); } @@ -367,30 +366,31 @@ QGLViewerWidget::mouseMoveEvent( QMouseEvent* _event ) // rotate - else if (_event->buttons() == LeftButton) - { - if (last_point_ok_) - { - if ( (newPoint_hitSphere = map_to_sphere(newPoint2D, newPoint3D)) ) - { - Vec3f axis = last_point_3D_ % newPoint3D; - if (axis.sqrnorm() < 1e-7) { - axis = Vec3f(1,0,0); - } else { - axis.normalize(); - } - // find the amount of rotation - Vec3f d = last_point_3D_ - newPoint3D; - float t = 0.5*d.norm()/TRACKBALL_RADIUS; - if (t<-1.0) t=-1.0; - else if (t>1.0) t=1.0; - float phi = 2.0 * asin(t); - float angle = phi * 180.0 / M_PI; - rotate( axis, angle ); - } + else if (_event->buttons() == LeftButton) { + + if (last_point_ok_) { + if ((newPoint_hitSphere = map_to_sphere(newPoint2D, newPoint3D))) { + Vec3f axis = last_point_3D_ % newPoint3D; + if (axis.sqrnorm() < 1e-7) { + axis = Vec3f(1, 0, 0); + } else { + axis.normalize(); + } + // find the amount of rotation + Vec3f d = last_point_3D_ - newPoint3D; + float t = 0.5 * d.norm() / TRACKBALL_RADIUS; + if (t < -1.0) + t = -1.0; + else if (t > 1.0) + t = 1.0; + float phi = 2.0 * asin(t); + float angle = phi * 180.0 / M_PI; + rotate(axis, angle); } } + } + // remember this point last_point_2D_ = newPoint2D; diff --git a/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/QGLViewerWidget.cc b/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/QGLViewerWidget.cc index 0c2a5f43..af554888 100644 --- a/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/QGLViewerWidget.cc +++ b/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/QGLViewerWidget.cc @@ -275,9 +275,7 @@ QGLViewerWidget::mouseMoveEvent( QMouseEvent* _event ) // Left button: rotate around center_ // Middle button: translate object // Left & middle button: zoom in/out - - float value_y; Vec3f newPoint3D; bool newPoint_hitSphere = map_to_sphere( newPoint2D, newPoint3D ); @@ -296,7 +294,7 @@ QGLViewerWidget::mouseMoveEvent( QMouseEvent* _event ) // move in z direction if ( (_event->button() == Qt::LeftButton) && (_event->button() == Qt::MidButton)) { - value_y = radius_ * dy * 3.0 / h; + float value_y = radius_ * dy * 3.0 / h; translate(Vec3f(0.0, 0.0, value_y)); } diff --git a/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/VDPMClientViewerWidget.cc b/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/VDPMClientViewerWidget.cc index 88bbf0c9..fa2114d4 100644 --- a/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/VDPMClientViewerWidget.cc +++ b/src/OpenMesh/Apps/Unsupported/Streaming-qt4/Client/VDPMClientViewerWidget.cc @@ -703,7 +703,6 @@ open_vd_base_mesh(const char* _filename) #ifdef EXAMPLE_CREATION - int tree_id, node_id; // load details for (i=0; istate() & LeftButton) && (_event->state() & MidButton)) { - value_y = radius_ * dy * 3.0 / h; + float value_y = radius_ * dy * 3.0 / h; translate(Vec3f(0.0, 0.0, value_y)); }