In this section, the widget framework is explained. Widgets represent 2D or 3D objects, varying from simple ones such as lines to complex one such as point clouds and meshes.

Widgets are implicitly shared. Therefore, one can add a widget to the scene, and modify the widget without re-adding the widget.

// Create a cloud widget
viz::WCloud cw(cloud, viz::Color::red());
// Display it in a window
myWindow.showWidget("CloudWidget1", cw);
// Modify it, and it will be modified in the window.
// enums

enum cv::viz::RenderingProperties;
enum cv::viz::RepresentationValues;
enum cv::viz::ShadingValues;

// structs

struct cv::viz::WidgetAccessor;

// classes

class cv::viz::WArrow;
class cv::viz::WCameraPosition;
class cv::viz::WCircle;
class cv::viz::WCloud;
class cv::viz::WCloudCollection;
class cv::viz::WCloudNormals;
class cv::viz::WCone;
class cv::viz::WCoordinateSystem;
class cv::viz::WCube;
class cv::viz::WCylinder;
class cv::viz::WGrid;
class cv::viz::WImage3D;
class cv::viz::WImageOverlay;
class cv::viz::WLine;
class cv::viz::WMesh;
class cv::viz::WPaintedCloud;
class cv::viz::WPlane;
class cv::viz::WPolyLine;
class cv::viz::WSphere;
class cv::viz::WText;
class cv::viz::WText3D;
class cv::viz::WTrajectory;
class cv::viz::WTrajectoryFrustums;
class cv::viz::WTrajectorySpheres;
class cv::viz::WWidgetMerger;
class cv::viz::Widget;
class cv::viz::Widget2D;
class cv::viz::Widget3D;