viz getWindowSize, setWindowSize
authorozantonkal <ozantonkal@gmail.com>
Wed, 7 Aug 2013 07:28:39 +0000 (09:28 +0200)
committerozantonkal <ozantonkal@gmail.com>
Wed, 7 Aug 2013 07:28:39 +0000 (09:28 +0200)
modules/viz/include/opencv2/viz/viz3d.hpp
modules/viz/src/types.cpp
modules/viz/src/viz3d.cpp
modules/viz/src/viz3d_impl.cpp
modules/viz/src/viz3d_impl.hpp

index 72e3076df4766a53cebb51d100bbaec56231c7cd..33b2743254cda7c22e19ba10e1444a3dc7fcd285 100644 (file)
@@ -7,6 +7,7 @@
 #include <opencv2/core.hpp>
 #include <opencv2/viz/types.hpp>
 #include <opencv2/viz/widgets.hpp>
+#include <boost/concept_check.hpp>
 
 namespace cv
 {
@@ -46,6 +47,9 @@ namespace cv
             
             void convertToWindowCoordinates(const Point3d &pt, Point3d &window_coord);
             void converTo3DRay(const Point3d &window_coord, Point3d &origin, Vec3d &direction);
+            
+            Size getWindowSize() const;
+            void setWindowSize(const Size &window_size);
 
             void spin();
             void spinOnce(int time = 1, bool force_redraw = false);
index 3395b0e66eb99e79291ace308e51aec2c1c7c03d..7ab918fddeb123096f88dbb82a2684bf2cae3f64 100644 (file)
@@ -196,7 +196,7 @@ void cv::viz::Camera::setWindowSize(const Size &window_size)
     float aspect_ratio_new = static_cast<float>(window_size.width) / static_cast<float>(window_size.height);
     
     if (principal_point_[0] < 0.0f)
-        fov_[0] = 2.f * atan(tan(fov_[1] * 0.5) * aspect_ratio_new); // This assumes that the lens is symmetric!
+        fov_[0] = 2.f * atan(tan(fov_[1] * 0.5f) * aspect_ratio_new); // This assumes that the lens is symmetric!
     else
         fov_[0] = (atan2(principal_point_[0],focal_[0]) + atan2(window_size.width-principal_point_[0],focal_[0])); // TODO I need to check this
     
index 6908bc8a46a07d6558d5a2f036805c82a12d9d3c..ced6e73e18f644c8b67beb57e23f8d92b1076354 100644 (file)
@@ -52,4 +52,7 @@ void cv::viz::Viz3d::setViewerPose(const Affine3f &pose) { impl_->setViewerPose(
 cv::Affine3f cv::viz::Viz3d::getViewerPose() { return impl_->getViewerPose(); }
 
 void cv::viz::Viz3d::convertToWindowCoordinates(const Point3d &pt, Point3d &window_coord) { impl_->convertToWindowCoordinates(pt, window_coord); }
-void cv::viz::Viz3d::converTo3DRay(const Point3d &window_coord, Point3d &origin, Vec3d &direction) { impl_->converTo3DRay(window_coord, origin, direction); }
\ No newline at end of file
+void cv::viz::Viz3d::converTo3DRay(const Point3d &window_coord, Point3d &origin, Vec3d &direction) { impl_->converTo3DRay(window_coord, origin, direction); }
+
+cv::Size cv::viz::Viz3d::getWindowSize() const { return impl_->getWindowSize(); }
+void cv::viz::Viz3d::setWindowSize(const Size &window_size) { impl_->setWindowSize(window_size.width, window_size.height); }
\ No newline at end of file
index 8dbf1fb10e9f472b08d197d35a1f0d754e4a6ed8..fc2b3a55d74376575b2156b52b7c18118a59c3ef 100644 (file)
@@ -963,6 +963,7 @@ void cv::viz::Viz3d::VizImpl::setWindowName (const std::string &name)
 
 void cv::viz::Viz3d::VizImpl::setWindowPosition (int x, int y) { window_->SetPosition (x, y); }
 void cv::viz::Viz3d::VizImpl::setWindowSize (int xw, int yw) { window_->SetSize (xw, yw); }
+cv::Size cv::viz::Viz3d::VizImpl::getWindowSize() const { return Size(window_->GetSize()[0], window_->GetSize()[1]); }
 
 bool cv::viz::Viz3d::VizImpl::addPolygonMesh (const Mesh3d& /*mesh*/, const Mat& /*mask*/, const std::string &/*id*/)
 {
index d38204a25e398ca4a7112520d63cb270a7a7bdd7..e190b720bb062ed47589b7a9ae89f7d8ef40e056 100644 (file)
@@ -135,10 +135,10 @@ public:
 
 
 
-
     //to implemnt in Viz3d
     void saveScreenshot (const String &file);
     void setWindowPosition (int x, int y);
+    Size getWindowSize() const;
     void setWindowSize (int xw, int yw);
     void setFullScreen (bool mode);
     void setWindowName (const String &name);