1Creating Widgets {#tutorial_creating_widgets} 2================ 3 4Goal 5---- 6 7In this tutorial you will learn how to 8 9- Create your own widgets using WidgetAccessor and VTK. 10- Show your widget in the visualization window. 11 12Code 13---- 14 15You can download the code from [here ](https://github.com/Itseez/opencv/tree/master/samples/cpp/tutorial_code/viz/creating_widgets.cpp). 16@include samples/cpp/tutorial_code/viz/creating_widgets.cpp 17 18Explanation 19----------- 20 21Here is the general structure of the program: 22 23- Extend Widget3D class to create a new 3D widget. 24 @code{.cpp} 25 class WTriangle : public viz::Widget3D 26 { 27 public: 28 WTriangle(const Point3f &pt1, const Point3f &pt2, const Point3f &pt3, const viz::Color & color = viz::Color::white()); 29 }; 30 @endcode 31- Assign a VTK actor to the widget. 32 @code{.cpp} 33 // Store this actor in the widget in order that visualizer can access it 34 viz::WidgetAccessor::setProp(*this, actor); 35 @endcode 36- Set color of the widget. 37 @code{.cpp} 38 // Set the color of the widget. This has to be called after WidgetAccessor. 39 setColor(color); 40 @endcode 41- Construct a triangle widget and display it in the window. 42 @code{.cpp} 43 /// Create a triangle widget 44 WTriangle tw(Point3f(0.0,0.0,0.0), Point3f(1.0,1.0,1.0), Point3f(0.0,1.0,0.0), viz::Color::red()); 45 46 /// Show widget in the visualizer window 47 myWindow.showWidget("TRIANGLE", tw); 48 @endcode 49 50Results 51------- 52 53Here is the result of the program. 54 55 56