plane widget size
authorozantonkal <ozantonkal@gmail.com>
Sun, 7 Jul 2013 18:19:21 +0000 (21:19 +0300)
committerozantonkal <ozantonkal@gmail.com>
Sun, 7 Jul 2013 18:19:21 +0000 (21:19 +0300)
modules/viz/include/opencv2/viz/widgets.hpp
modules/viz/src/simple_widgets.cpp
modules/viz/test/test_viz3d.cpp

index ea615a1..cc70d26 100644 (file)
@@ -46,8 +46,8 @@ namespace temp_viz
     class CV_EXPORTS PlaneWidget : public Widget
     {
     public:
-        PlaneWidget(const Vec4f& coefs, const Color &color = Color::white());
-        PlaneWidget(const Vec4f& coefs, const Point3f& pt, const Color &color = Color::white());
+        PlaneWidget(const Vec4f& coefs, double size = 1.0, const Color &color = Color::white());
+        PlaneWidget(const Vec4f& coefs, const Point3f& pt, double size = 1.0, const Color &color = Color::white());
     };
     
     class CV_EXPORTS SphereWidget : public Widget
index ffba14e..bcc8bea 100644 (file)
@@ -33,23 +33,24 @@ float temp_viz::LineWidget::getLineWidth()
 ///////////////////////////////////////////////////////////////////////////////////////////////
 /// plane widget implementation
 
-temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, const Color &color)
+temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, double size, const Color &color)
 {
     vtkSmartPointer<vtkPlaneSource> plane = vtkSmartPointer<vtkPlaneSource>::New ();
     plane->SetNormal (coefs[0], coefs[1], coefs[2]);
     double norm = cv::norm(cv::Vec3f(coefs.val));
     plane->Push (-coefs[3] / norm);
-
+    
     vtkSmartPointer<vtkDataSetMapper> mapper = vtkSmartPointer<vtkDataSetMapper>::New ();
     mapper->SetInput(plane->GetOutput ());
-
+    
     vtkSmartPointer<vtkLODActor> actor = WidgetAccessor::getActor(*this);
     actor->SetMapper(mapper);
-
+    actor->SetScale(size);
+    
     setColor(color);
 }
 
-temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, const Point3f& pt, const Color &color)
+temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, const Point3f& pt, double size, const Color &color)
 {
     vtkSmartPointer<vtkPlaneSource> plane = vtkSmartPointer<vtkPlaneSource>::New ();
     cv::Point3f coefs3(coefs[0], coefs[1], coefs[2]);
@@ -65,6 +66,7 @@ temp_viz::PlaneWidget::PlaneWidget(const Vec4f& coefs, const Point3f& pt, const
 
     vtkSmartPointer<vtkLODActor> actor = WidgetAccessor::getActor(*this);
     actor->SetMapper(mapper);
+    actor->SetScale(size);
 
     setColor(color);
 }
index f89635f..d9d6837 100644 (file)
@@ -91,7 +91,7 @@ TEST(Viz_viz3d, accuracy)
     int col_red = 0;
 
     temp_viz::LineWidget lw(cv::Point3f(0.0,0.0,0.0), cv::Point3f(4.0,4.0,4.0), temp_viz::Color(0,255,0));
-    temp_viz::PlaneWidget pw(cv::Vec4f(0.0,1.0,2.0,3.0));
+    temp_viz::PlaneWidget pw(cv::Vec4f(0.0,1.0,2.0,3.0), 5.0);
     temp_viz::SphereWidget sw(cv::Point3f(0,0,0), 0.5);
     temp_viz::ArrowWidget aw(cv::Point3f(0,0,0), cv::Point3f(1,1,1), temp_viz::Color(255,0,0));
     temp_viz::CircleWidget cw(cv::Point3f(0,0,0), 0.5, 0.01, temp_viz::Color(0,255,0));
@@ -100,10 +100,10 @@ TEST(Viz_viz3d, accuracy)
     temp_viz::CoordinateSystemWidget csw(1.0f, cv::Affine3f::Identity());
     
 //     v.showWidget("line", lw);
-//     v.showWidget("plane", pw);
+    v.showWidget("plane", pw);
 //     v.showWidget("sphere", sw);
 //     v.showWidget("arrow", aw);
-    v.showWidget("circle", cw);
+//     v.showWidget("circle", cw);
 //     v.showWidget("cylinder", cyw);
 //     v.showWidget("cube", cuw);
     v.showWidget("coordinateSystem", csw);