Make cast() function const. Make parameters of addLight() const.

pull/12951/head
catree 7 years ago
parent 13f244b6a5
commit 2b022311a4
  1. 5
      modules/viz/include/opencv2/viz/viz3d.hpp
  2. 56
      modules/viz/include/opencv2/viz/widgets.hpp
  3. 12
      modules/viz/src/clouds.cpp
  4. 38
      modules/viz/src/shapes.cpp
  5. 3
      modules/viz/src/viz3d.cpp
  6. 3
      modules/viz/src/vizimpl.cpp
  7. 3
      modules/viz/src/vizimpl.hpp
  8. 4
      modules/viz/src/widget.cpp

@ -246,8 +246,9 @@ namespace cv
@param ambientColor The ambient color of the light @param ambientColor The ambient color of the light
@param specularColor The specular color of the light @param specularColor The specular color of the light
*/ */
void addLight(Vec3d position, Vec3d focalPoint = Vec3d(0, 0, 0), Color color = Color::white(), void addLight(const Vec3d &position, const Vec3d &focalPoint = Vec3d(0, 0, 0), const Color &color = Color::white(),
Color diffuseColor = Color::white(), Color ambientColor = Color::black(), Color specularColor = Color::white()); const Color &diffuseColor = Color::white(), const Color &ambientColor = Color::black(),
const Color &specularColor = Color::white());
/** @brief Returns whether the event loop has been stopped. /** @brief Returns whether the event loop has been stopped.
*/ */

@ -167,7 +167,7 @@ namespace cv
@note 3D Widgets can only be cast to 3D Widgets. 2D Widgets can only be cast to 2D Widgets. @note 3D Widgets can only be cast to 3D Widgets. 2D Widgets can only be cast to 2D Widgets.
*/ */
template<typename _W> _W cast(); template<typename _W> _W cast() const;
private: private:
class Impl; class Impl;
Impl *impl_; Impl *impl_;
@ -814,33 +814,33 @@ namespace cv
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
/// Utility exports /// Utility exports
template<> CV_EXPORTS Widget2D Widget::cast<Widget2D>(); template<> CV_EXPORTS Widget2D Widget::cast<Widget2D>() const;
template<> CV_EXPORTS Widget3D Widget::cast<Widget3D>(); template<> CV_EXPORTS Widget3D Widget::cast<Widget3D>() const;
template<> CV_EXPORTS WLine Widget::cast<WLine>(); template<> CV_EXPORTS WLine Widget::cast<WLine>() const;
template<> CV_EXPORTS WPlane Widget::cast<WPlane>(); template<> CV_EXPORTS WPlane Widget::cast<WPlane>() const;
template<> CV_EXPORTS WSphere Widget::cast<WSphere>(); template<> CV_EXPORTS WSphere Widget::cast<WSphere>() const;
template<> CV_EXPORTS WCylinder Widget::cast<WCylinder>(); template<> CV_EXPORTS WCylinder Widget::cast<WCylinder>() const;
template<> CV_EXPORTS WArrow Widget::cast<WArrow>(); template<> CV_EXPORTS WArrow Widget::cast<WArrow>() const;
template<> CV_EXPORTS WCircle Widget::cast<WCircle>(); template<> CV_EXPORTS WCircle Widget::cast<WCircle>() const;
template<> CV_EXPORTS WCone Widget::cast<WCone>(); template<> CV_EXPORTS WCone Widget::cast<WCone>() const;
template<> CV_EXPORTS WCube Widget::cast<WCube>(); template<> CV_EXPORTS WCube Widget::cast<WCube>() const;
template<> CV_EXPORTS WCoordinateSystem Widget::cast<WCoordinateSystem>(); template<> CV_EXPORTS WCoordinateSystem Widget::cast<WCoordinateSystem>() const;
template<> CV_EXPORTS WPolyLine Widget::cast<WPolyLine>(); template<> CV_EXPORTS WPolyLine Widget::cast<WPolyLine>() const;
template<> CV_EXPORTS WGrid Widget::cast<WGrid>(); template<> CV_EXPORTS WGrid Widget::cast<WGrid>() const;
template<> CV_EXPORTS WText3D Widget::cast<WText3D>(); template<> CV_EXPORTS WText3D Widget::cast<WText3D>() const;
template<> CV_EXPORTS WText Widget::cast<WText>(); template<> CV_EXPORTS WText Widget::cast<WText>() const;
template<> CV_EXPORTS WImageOverlay Widget::cast<WImageOverlay>(); template<> CV_EXPORTS WImageOverlay Widget::cast<WImageOverlay>() const;
template<> CV_EXPORTS WImage3D Widget::cast<WImage3D>(); template<> CV_EXPORTS WImage3D Widget::cast<WImage3D>() const;
template<> CV_EXPORTS WCameraPosition Widget::cast<WCameraPosition>(); template<> CV_EXPORTS WCameraPosition Widget::cast<WCameraPosition>() const;
template<> CV_EXPORTS WTrajectory Widget::cast<WTrajectory>(); template<> CV_EXPORTS WTrajectory Widget::cast<WTrajectory>() const;
template<> CV_EXPORTS WTrajectoryFrustums Widget::cast<WTrajectoryFrustums>(); template<> CV_EXPORTS WTrajectoryFrustums Widget::cast<WTrajectoryFrustums>() const;
template<> CV_EXPORTS WTrajectorySpheres Widget::cast<WTrajectorySpheres>(); template<> CV_EXPORTS WTrajectorySpheres Widget::cast<WTrajectorySpheres>() const;
template<> CV_EXPORTS WCloud Widget::cast<WCloud>(); template<> CV_EXPORTS WCloud Widget::cast<WCloud>() const;
template<> CV_EXPORTS WPaintedCloud Widget::cast<WPaintedCloud>(); template<> CV_EXPORTS WPaintedCloud Widget::cast<WPaintedCloud>() const;
template<> CV_EXPORTS WCloudCollection Widget::cast<WCloudCollection>(); template<> CV_EXPORTS WCloudCollection Widget::cast<WCloudCollection>() const;
template<> CV_EXPORTS WCloudNormals Widget::cast<WCloudNormals>(); template<> CV_EXPORTS WCloudNormals Widget::cast<WCloudNormals>() const;
template<> CV_EXPORTS WMesh Widget::cast<WMesh>(); template<> CV_EXPORTS WMesh Widget::cast<WMesh>() const;
template<> CV_EXPORTS WWidgetMerger Widget::cast<WWidgetMerger>(); template<> CV_EXPORTS WWidgetMerger Widget::cast<WWidgetMerger>() const;
//! @} //! @}

@ -91,7 +91,7 @@ cv::viz::WCloud::WCloud(cv::InputArray cloud, cv::InputArray colors, cv::InputAr
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WCloud cv::viz::Widget::cast<cv::viz::WCloud>() template<> cv::viz::WCloud cv::viz::Widget::cast<cv::viz::WCloud>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCloud&>(widget); return static_cast<WCloud&>(widget);
@ -201,7 +201,7 @@ cv::viz::WPaintedCloud::WPaintedCloud(InputArray cloud, const Point3d& p1, const
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WPaintedCloud cv::viz::Widget::cast<cv::viz::WPaintedCloud>() template<> cv::viz::WPaintedCloud cv::viz::Widget::cast<cv::viz::WPaintedCloud>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WPaintedCloud&>(widget); return static_cast<WPaintedCloud&>(widget);
@ -271,7 +271,7 @@ void cv::viz::WCloudCollection::finalize()
VtkUtils::SetInputData(mapper, polydata); VtkUtils::SetInputData(mapper, polydata);
} }
template<> cv::viz::WCloudCollection cv::viz::Widget::cast<cv::viz::WCloudCollection>() template<> cv::viz::WCloudCollection cv::viz::Widget::cast<cv::viz::WCloudCollection>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCloudCollection&>(widget); return static_cast<WCloudCollection&>(widget);
@ -357,7 +357,7 @@ cv::viz::WCloudNormals::WCloudNormals(InputArray _cloud, InputArray _normals, in
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WCloudNormals cv::viz::Widget::cast<cv::viz::WCloudNormals>() template<> cv::viz::WCloudNormals cv::viz::Widget::cast<cv::viz::WCloudNormals>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCloudNormals&>(widget); return static_cast<WCloudNormals&>(widget);
@ -461,7 +461,7 @@ cv::viz::WMesh::WMesh(InputArray cloud, InputArray polygons, InputArray colors,
*this = WMesh(mesh); *this = WMesh(mesh);
} }
template<> CV_EXPORTS cv::viz::WMesh cv::viz::Widget::cast<cv::viz::WMesh>() template<> CV_EXPORTS cv::viz::WMesh cv::viz::Widget::cast<cv::viz::WMesh>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WMesh&>(widget); return static_cast<WMesh&>(widget);
@ -523,7 +523,7 @@ void cv::viz::WWidgetMerger::finalize()
mapper->Modified(); mapper->Modified();
} }
template<> CV_EXPORTS cv::viz::WWidgetMerger cv::viz::Widget::cast<cv::viz::WWidgetMerger>() template<> CV_EXPORTS cv::viz::WWidgetMerger cv::viz::Widget::cast<cv::viz::WWidgetMerger>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WWidgetMerger&>(widget); return static_cast<WWidgetMerger&>(widget);

@ -66,7 +66,7 @@ cv::viz::WLine::WLine(const Point3d &pt1, const Point3d &pt2, const Color &color
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WLine cv::viz::Widget::cast<cv::viz::WLine>() template<> cv::viz::WLine cv::viz::Widget::cast<cv::viz::WLine>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WLine&>(widget); return static_cast<WLine&>(widget);
@ -97,7 +97,7 @@ cv::viz::WSphere::WSphere(const Point3d &center, double radius, int sphere_resol
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WSphere cv::viz::Widget::cast<cv::viz::WSphere>() template<> cv::viz::WSphere cv::viz::Widget::cast<cv::viz::WSphere>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WSphere&>(widget); return static_cast<WSphere&>(widget);
@ -138,7 +138,7 @@ cv::viz::WPlane::WPlane(const Point3d& center, const Vec3d& normal, const Vec3d&
*this = plane; *this = plane;
} }
template<> cv::viz::WPlane cv::viz::Widget::cast<cv::viz::WPlane>() template<> cv::viz::WPlane cv::viz::Widget::cast<cv::viz::WPlane>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WPlane&>(widget); return static_cast<WPlane&>(widget);
@ -178,7 +178,7 @@ cv::viz::WArrow::WArrow(const Point3d& pt1, const Point3d& pt2, double thickness
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WArrow cv::viz::Widget::cast<cv::viz::WArrow>() template<> cv::viz::WArrow cv::viz::Widget::cast<cv::viz::WArrow>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WArrow&>(widget); return static_cast<WArrow&>(widget);
@ -220,7 +220,7 @@ cv::viz::WCircle::WCircle(double radius, const Point3d& center, const Vec3d& nor
*this = circle; *this = circle;
} }
template<> cv::viz::WCircle cv::viz::Widget::cast<cv::viz::WCircle>() template<> cv::viz::WCircle cv::viz::Widget::cast<cv::viz::WCircle>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCircle&>(widget); return static_cast<WCircle&>(widget);
@ -262,7 +262,7 @@ cv::viz::WCone::WCone(double radius, const Point3d& center, const Point3d& tip,
*this = circle; *this = circle;
} }
template<> cv::viz::WCone cv::viz::Widget::cast<cv::viz::WCone>() template<> cv::viz::WCone cv::viz::Widget::cast<cv::viz::WCone>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCone&>(widget); return static_cast<WCone&>(widget);
@ -295,7 +295,7 @@ cv::viz::WCylinder::WCylinder(const Point3d& axis_point1, const Point3d& axis_po
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WCylinder cv::viz::Widget::cast<cv::viz::WCylinder>() template<> cv::viz::WCylinder cv::viz::Widget::cast<cv::viz::WCylinder>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCylinder&>(widget); return static_cast<WCylinder&>(widget);
@ -338,7 +338,7 @@ cv::viz::WCube::WCube(const Point3d& min_point, const Point3d& max_point, bool w
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WCube cv::viz::Widget::cast<cv::viz::WCube>() template<> cv::viz::WCube cv::viz::Widget::cast<cv::viz::WCube>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCube&>(widget); return static_cast<WCube&>(widget);
@ -382,7 +382,7 @@ cv::viz::WCoordinateSystem::WCoordinateSystem(double scale)
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WCoordinateSystem cv::viz::Widget::cast<cv::viz::WCoordinateSystem>() template<> cv::viz::WCoordinateSystem cv::viz::Widget::cast<cv::viz::WCoordinateSystem>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCoordinateSystem&>(widget); return static_cast<WCoordinateSystem&>(widget);
@ -422,7 +422,7 @@ cv::viz::WPolyLine::WPolyLine(InputArray points, const Color &color)
*this = polyline; *this = polyline;
} }
template<> cv::viz::WPolyLine cv::viz::Widget::cast<cv::viz::WPolyLine>() template<> cv::viz::WPolyLine cv::viz::Widget::cast<cv::viz::WPolyLine>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WPolyLine&>(widget); return static_cast<WPolyLine&>(widget);
@ -472,7 +472,7 @@ cv::viz::WGrid::WGrid(const Point3d& center, const Vec3d& normal, const Vec3d& n
*this = grid; *this = grid;
} }
template<> cv::viz::WGrid cv::viz::Widget::cast<cv::viz::WGrid>() template<> cv::viz::WGrid cv::viz::Widget::cast<cv::viz::WGrid>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WGrid&>(widget); return static_cast<WGrid&>(widget);
@ -538,7 +538,7 @@ cv::String cv::viz::WText3D::getText() const
return textSource->GetText(); return textSource->GetText();
} }
template<> cv::viz::WText3D cv::viz::Widget::cast<cv::viz::WText3D>() template<> cv::viz::WText3D cv::viz::Widget::cast<cv::viz::WText3D>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WText3D&>(widget); return static_cast<WText3D&>(widget);
@ -567,7 +567,7 @@ cv::viz::WText::WText(const String &text, const Point &pos, int font_size, const
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WText cv::viz::Widget::cast<cv::viz::WText>() template<> cv::viz::WText cv::viz::Widget::cast<cv::viz::WText>() const
{ {
Widget2D widget = this->cast<Widget2D>(); Widget2D widget = this->cast<Widget2D>();
return static_cast<WText&>(widget); return static_cast<WText&>(widget);
@ -658,7 +658,7 @@ void cv::viz::WImageOverlay::setImage(InputArray image)
mapper->SetInputConnection(image_reslice->GetOutputPort()); mapper->SetInputConnection(image_reslice->GetOutputPort());
} }
template<> cv::viz::WImageOverlay cv::viz::Widget::cast<cv::viz::WImageOverlay>() template<> cv::viz::WImageOverlay cv::viz::Widget::cast<cv::viz::WImageOverlay>() const
{ {
Widget2D widget = this->cast<Widget2D>(); Widget2D widget = this->cast<Widget2D>();
return static_cast<WImageOverlay&>(widget); return static_cast<WImageOverlay&>(widget);
@ -746,7 +746,7 @@ void cv::viz::WImage3D::setSize(const cv::Size& size)
plane->SetPoint2(-0.5 * size.width, 0.5 * size.height, 0.0); plane->SetPoint2(-0.5 * size.width, 0.5 * size.height, 0.0);
} }
template<> cv::viz::WImage3D cv::viz::Widget::cast<cv::viz::WImage3D>() template<> cv::viz::WImage3D cv::viz::Widget::cast<cv::viz::WImage3D>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WImage3D&>(widget); return static_cast<WImage3D&>(widget);
@ -920,7 +920,7 @@ cv::viz::WCameraPosition::WCameraPosition(const Vec2d &fov, InputArray _image, d
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WCameraPosition cv::viz::Widget::cast<cv::viz::WCameraPosition>() template<> cv::viz::WCameraPosition cv::viz::Widget::cast<cv::viz::WCameraPosition>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WCameraPosition&>(widget); return static_cast<WCameraPosition&>(widget);
@ -971,7 +971,7 @@ cv::viz::WTrajectory::WTrajectory(InputArray _path, int display_mode, double sca
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WTrajectory cv::viz::Widget::cast<cv::viz::WTrajectory>() template<> cv::viz::WTrajectory cv::viz::Widget::cast<cv::viz::WTrajectory>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WTrajectory&>(widget); return static_cast<WTrajectory&>(widget);
@ -1032,7 +1032,7 @@ cv::viz::WTrajectoryFrustums::WTrajectoryFrustums(InputArray _path, const Vec2d
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WTrajectoryFrustums cv::viz::Widget::cast<cv::viz::WTrajectoryFrustums>() template<> cv::viz::WTrajectoryFrustums cv::viz::Widget::cast<cv::viz::WTrajectoryFrustums>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WTrajectoryFrustums&>(widget); return static_cast<WTrajectoryFrustums&>(widget);
@ -1100,7 +1100,7 @@ cv::viz::WTrajectorySpheres::WTrajectorySpheres(InputArray _path, double line_le
WidgetAccessor::setProp(*this, actor); WidgetAccessor::setProp(*this, actor);
} }
template<> cv::viz::WTrajectorySpheres cv::viz::Widget::cast<cv::viz::WTrajectorySpheres>() template<> cv::viz::WTrajectorySpheres cv::viz::Widget::cast<cv::viz::WTrajectorySpheres>() const
{ {
Widget3D widget = this->cast<Widget3D>(); Widget3D widget = this->cast<Widget3D>();
return static_cast<WTrajectorySpheres&>(widget); return static_cast<WTrajectorySpheres&>(widget);

@ -102,7 +102,8 @@ void cv::viz::Viz3d::spin() { impl_->spin(); }
void cv::viz::Viz3d::spinOnce(int time, bool force_redraw) { impl_->spinOnce(time, force_redraw); } void cv::viz::Viz3d::spinOnce(int time, bool force_redraw) { impl_->spinOnce(time, force_redraw); }
void cv::viz::Viz3d::setOffScreenRendering() { impl_->setOffScreenRendering(); } void cv::viz::Viz3d::setOffScreenRendering() { impl_->setOffScreenRendering(); }
void cv::viz::Viz3d::removeAllLights() { impl_->removeAllLights(); } void cv::viz::Viz3d::removeAllLights() { impl_->removeAllLights(); }
void cv::viz::Viz3d::addLight(Vec3d position, Vec3d focalPoint, Color color, Color diffuseColor, Color ambientColor, Color specularColor) void cv::viz::Viz3d::addLight(const Vec3d &position, const Vec3d &focalPoint, const Color &color,
const Color &diffuseColor, const Color &ambientColor, const Color &specularColor)
{ impl_->addLight(position, focalPoint, color, diffuseColor, ambientColor, specularColor); } { impl_->addLight(position, focalPoint, color, diffuseColor, ambientColor, specularColor); }
bool cv::viz::Viz3d::wasStopped() const { return impl_->wasStopped(); } bool cv::viz::Viz3d::wasStopped() const { return impl_->wasStopped(); }
void cv::viz::Viz3d::close() { impl_->close(); } void cv::viz::Viz3d::close() { impl_->close(); }

@ -203,7 +203,8 @@ void cv::viz::Viz3d::VizImpl::removeAllLights()
} }
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////
void cv::viz::Viz3d::VizImpl::addLight(Vec3d position, Vec3d focalPoint, Color color, Color diffuseColor, Color ambientColor, Color specularColor) void cv::viz::Viz3d::VizImpl::addLight(Vec3d position, Vec3d focalPoint, const Color &color, const Color &diffuseColor,
const Color &ambientColor, const Color &specularColor)
{ {
Color color_ = vtkcolor(color); Color color_ = vtkcolor(color);
Color diffuseColor_ = vtkcolor(diffuseColor); Color diffuseColor_ = vtkcolor(diffuseColor);

@ -65,7 +65,8 @@ public:
void setOffScreenRendering(); void setOffScreenRendering();
void removeAllLights(); void removeAllLights();
void addLight(Vec3d position, Vec3d focalPoint, Color color, Color diffuseColor, Color ambientColor, Color specularColor); void addLight(Vec3d position, Vec3d focalPoint, const Color &color, const Color &diffuseColor,
const Color &ambientColor, const Color &specularColor);
void showWidget(const String &id, const Widget &widget, const Affine3d &pose = Affine3d::Identity()); void showWidget(const String &id, const Widget &widget, const Affine3d &pose = Affine3d::Identity());
void removeWidget(const String &id); void removeWidget(const String &id);

@ -319,7 +319,7 @@ void cv::viz::Widget3D::setColor(const Color &color)
actor->Modified(); actor->Modified();
} }
template<> cv::viz::Widget3D cv::viz::Widget::cast<cv::viz::Widget3D>() template<> cv::viz::Widget3D cv::viz::Widget::cast<cv::viz::Widget3D>() const
{ {
vtkProp3D *actor = vtkProp3D::SafeDownCast(WidgetAccessor::getProp(*this)); vtkProp3D *actor = vtkProp3D::SafeDownCast(WidgetAccessor::getProp(*this));
CV_Assert("Widget cannot be cast." && actor); CV_Assert("Widget cannot be cast." && actor);
@ -341,7 +341,7 @@ void cv::viz::Widget2D::setColor(const Color &color)
actor->Modified(); actor->Modified();
} }
template<> cv::viz::Widget2D cv::viz::Widget::cast<cv::viz::Widget2D>() template<> cv::viz::Widget2D cv::viz::Widget::cast<cv::viz::Widget2D>() const
{ {
vtkActor2D *actor = vtkActor2D::SafeDownCast(WidgetAccessor::getProp(*this)); vtkActor2D *actor = vtkActor2D::SafeDownCast(WidgetAccessor::getProp(*this));
CV_Assert("Widget cannot be cast." && actor); CV_Assert("Widget cannot be cast." && actor);

Loading…
Cancel
Save