diff --git a/modules/viz/include/opencv2/viz/viz3d.hpp b/modules/viz/include/opencv2/viz/viz3d.hpp index a83d8e8fc..7cb7d0cea 100644 --- a/modules/viz/include/opencv2/viz/viz3d.hpp +++ b/modules/viz/include/opencv2/viz/viz3d.hpp @@ -105,6 +105,7 @@ namespace cv void spin(); void spinOnce(int time = 1, bool force_redraw = false); bool wasStopped() const; + void close(); void registerKeyboardCallback(KeyboardCallback callback, void* cookie = 0); void registerMouseCallback(MouseCallback callback, void* cookie = 0); diff --git a/modules/viz/src/viz3d.cpp b/modules/viz/src/viz3d.cpp index 2d4aefc0b..56f978c0e 100644 --- a/modules/viz/src/viz3d.cpp +++ b/modules/viz/src/viz3d.cpp @@ -101,6 +101,7 @@ void cv::viz::Viz3d::release() void cv::viz::Viz3d::spin() { impl_->spin(); } void cv::viz::Viz3d::spinOnce(int time, bool force_redraw) { impl_->spinOnce(time, force_redraw); } bool cv::viz::Viz3d::wasStopped() const { return impl_->wasStopped(); } +void cv::viz::Viz3d::close() { impl_->close(); } void cv::viz::Viz3d::registerKeyboardCallback(KeyboardCallback callback, void* cookie) { impl_->registerKeyboardCallback(callback, cookie); } diff --git a/modules/viz/src/vizimpl.cpp b/modules/viz/src/vizimpl.cpp index 32c717c4f..5fa49e2f9 100644 --- a/modules/viz/src/vizimpl.cpp +++ b/modules/viz/src/vizimpl.cpp @@ -104,6 +104,7 @@ void cv::viz::Viz3d::VizImpl::close() return; interactor_->GetRenderWindow()->Finalize(); interactor_->TerminateApp(); // This tends to close the window... + interactor_ = 0; } void cv::viz::Viz3d::VizImpl::recreateRenderWindow()