From 030400d50f42816452952cfffe7a2805545d7ed1 Mon Sep 17 00:00:00 2001 From: ozantonkal Date: Sun, 7 Jul 2013 16:21:47 +0300 Subject: [PATCH] circle widget thickness property --- modules/viz/include/opencv2/viz/widgets.hpp | 2 +- modules/viz/src/simple_widgets.cpp | 9 ++++----- modules/viz/test/test_viz3d.cpp | 14 +++++++------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/modules/viz/include/opencv2/viz/widgets.hpp b/modules/viz/include/opencv2/viz/widgets.hpp index 122c0c7..ea615a1 100644 --- a/modules/viz/include/opencv2/viz/widgets.hpp +++ b/modules/viz/include/opencv2/viz/widgets.hpp @@ -65,7 +65,7 @@ namespace temp_viz class CV_EXPORTS CircleWidget : public Widget { public: - CircleWidget(const Point3f& pt, double radius, const Color &color = Color::white()); + CircleWidget(const Point3f& pt, double radius, double thickness = 0.01, const Color &color = Color::white()); }; class CV_EXPORTS CylinderWidget : public Widget diff --git a/modules/viz/src/simple_widgets.cpp b/modules/viz/src/simple_widgets.cpp index fa7026c..ffba14e 100644 --- a/modules/viz/src/simple_widgets.cpp +++ b/modules/viz/src/simple_widgets.cpp @@ -156,14 +156,13 @@ temp_viz::ArrowWidget::ArrowWidget(const Point3f& pt1, const Point3f& pt2, const /////////////////////////////////////////////////////////////////////////////////////////////// /// circle widget implementation -temp_viz::CircleWidget::CircleWidget(const temp_viz::Point3f& pt, double radius, const temp_viz::Color& color) +temp_viz::CircleWidget::CircleWidget(const temp_viz::Point3f& pt, double radius, double thickness, const temp_viz::Color& color) { vtkSmartPointer disk = vtkSmartPointer::New (); // Maybe the resolution should be lower e.g. 50 or 25 - disk->SetCircumferentialResolution (100); - disk->SetInnerRadius (radius - 0.001); - disk->SetOuterRadius (radius + 0.001); - disk->SetCircumferentialResolution (20); + disk->SetCircumferentialResolution (50); + disk->SetInnerRadius (radius - thickness); + disk->SetOuterRadius (radius + thickness); // Set the circle origin vtkSmartPointer t = vtkSmartPointer::New (); diff --git a/modules/viz/test/test_viz3d.cpp b/modules/viz/test/test_viz3d.cpp index 6cb27db..f89635f 100644 --- a/modules/viz/test/test_viz3d.cpp +++ b/modules/viz/test/test_viz3d.cpp @@ -94,18 +94,18 @@ TEST(Viz_viz3d, accuracy) temp_viz::PlaneWidget pw(cv::Vec4f(0.0,1.0,2.0,3.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), 1.0, temp_viz::Color(0,255,0)); + temp_viz::CircleWidget cw(cv::Point3f(0,0,0), 0.5, 0.01, temp_viz::Color(0,255,0)); temp_viz::CylinderWidget cyw(cv::Point3f(0,0,0), cv::Point3f(-1,-1,-1), 0.5, 30, temp_viz::Color(0,255,0)); temp_viz::CubeWidget cuw(cv::Point3f(-2,-2,-2), cv::Point3f(-1,-1,-1), temp_viz::Color(0,0,255)); temp_viz::CoordinateSystemWidget csw(1.0f, cv::Affine3f::Identity()); - v.showWidget("line", lw); - v.showWidget("plane", pw); - v.showWidget("sphere", sw); - v.showWidget("arrow", aw); +// v.showWidget("line", lw); +// v.showWidget("plane", pw); +// v.showWidget("sphere", sw); +// v.showWidget("arrow", aw); v.showWidget("circle", cw); - v.showWidget("cylinder", cyw); - v.showWidget("cube", cuw); +// v.showWidget("cylinder", cyw); +// v.showWidget("cube", cuw); v.showWidget("coordinateSystem", csw); temp_viz::LineWidget lw2 = lw; -- 2.7.4