Merge pull request #12951 from catree:easy_fixes_const_viz

pull/13001/head
Alexander Alekhin 6 years ago
commit c92e0838c1
  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 specularColor The specular color of the light
*/
void addLight(Vec3d position, Vec3d focalPoint = Vec3d(0, 0, 0), Color color = Color::white(),
Color diffuseColor = Color::white(), Color ambientColor = Color::black(), Color specularColor = Color::white());
void addLight(const Vec3d &position, const Vec3d &focalPoint = Vec3d(0, 0, 0), const Color &color = 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.
*/

@ -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.
*/
template<typename _W> _W cast();
template<typename _W> _W cast() const;
private:
class Impl;
Impl *impl_;
@ -814,33 +814,33 @@ namespace cv
/////////////////////////////////////////////////////////////////////////////
/// Utility exports
template<> CV_EXPORTS Widget2D Widget::cast<Widget2D>();
template<> CV_EXPORTS Widget3D Widget::cast<Widget3D>();
template<> CV_EXPORTS WLine Widget::cast<WLine>();
template<> CV_EXPORTS WPlane Widget::cast<WPlane>();
template<> CV_EXPORTS WSphere Widget::cast<WSphere>();
template<> CV_EXPORTS WCylinder Widget::cast<WCylinder>();
template<> CV_EXPORTS WArrow Widget::cast<WArrow>();
template<> CV_EXPORTS WCircle Widget::cast<WCircle>();
template<> CV_EXPORTS WCone Widget::cast<WCone>();
template<> CV_EXPORTS WCube Widget::cast<WCube>();
template<> CV_EXPORTS WCoordinateSystem Widget::cast<WCoordinateSystem>();
template<> CV_EXPORTS WPolyLine Widget::cast<WPolyLine>();
template<> CV_EXPORTS WGrid Widget::cast<WGrid>();
template<> CV_EXPORTS WText3D Widget::cast<WText3D>();
template<> CV_EXPORTS WText Widget::cast<WText>();
template<> CV_EXPORTS WImageOverlay Widget::cast<WImageOverlay>();
template<> CV_EXPORTS WImage3D Widget::cast<WImage3D>();
template<> CV_EXPORTS WCameraPosition Widget::cast<WCameraPosition>();
template<> CV_EXPORTS WTrajectory Widget::cast<WTrajectory>();
template<> CV_EXPORTS WTrajectoryFrustums Widget::cast<WTrajectoryFrustums>();
template<> CV_EXPORTS WTrajectorySpheres Widget::cast<WTrajectorySpheres>();
template<> CV_EXPORTS WCloud Widget::cast<WCloud>();
template<> CV_EXPORTS WPaintedCloud Widget::cast<WPaintedCloud>();
template<> CV_EXPORTS WCloudCollection Widget::cast<WCloudCollection>();
template<> CV_EXPORTS WCloudNormals Widget::cast<WCloudNormals>();
template<> CV_EXPORTS WMesh Widget::cast<WMesh>();
template<> CV_EXPORTS WWidgetMerger Widget::cast<WWidgetMerger>();
template<> CV_EXPORTS Widget2D Widget::cast<Widget2D>() const;
template<> CV_EXPORTS Widget3D Widget::cast<Widget3D>() const;
template<> CV_EXPORTS WLine Widget::cast<WLine>() const;
template<> CV_EXPORTS WPlane Widget::cast<WPlane>() const;
template<> CV_EXPORTS WSphere Widget::cast<WSphere>() const;
template<> CV_EXPORTS WCylinder Widget::cast<WCylinder>() const;
template<> CV_EXPORTS WArrow Widget::cast<WArrow>() const;
template<> CV_EXPORTS WCircle Widget::cast<WCircle>() const;
template<> CV_EXPORTS WCone Widget::cast<WCone>() const;
template<> CV_EXPORTS WCube Widget::cast<WCube>() const;
template<> CV_EXPORTS WCoordinateSystem Widget::cast<WCoordinateSystem>() const;
template<> CV_EXPORTS WPolyLine Widget::cast<WPolyLine>() const;
template<> CV_EXPORTS WGrid Widget::cast<WGrid>() const;
template<> CV_EXPORTS WText3D Widget::cast<WText3D>() const;
template<> CV_EXPORTS WText Widget::cast<WText>() const;
template<> CV_EXPORTS WImageOverlay Widget::cast<WImageOverlay>() const;
template<> CV_EXPORTS WImage3D Widget::cast<WImage3D>() const;
template<> CV_EXPORTS WCameraPosition Widget::cast<WCameraPosition>() const;
template<> CV_EXPORTS WTrajectory Widget::cast<WTrajectory>() const;
template<> CV_EXPORTS WTrajectoryFrustums Widget::cast<WTrajectoryFrustums>() const;
template<> CV_EXPORTS WTrajectorySpheres Widget::cast<WTrajectorySpheres>() const;
template<> CV_EXPORTS WCloud Widget::cast<WCloud>() const;
template<> CV_EXPORTS WPaintedCloud Widget::cast<WPaintedCloud>() const;
template<> CV_EXPORTS WCloudCollection Widget::cast<WCloudCollection>() const;
template<> CV_EXPORTS WCloudNormals Widget::cast<WCloudNormals>() const;
template<> CV_EXPORTS WMesh Widget::cast<WMesh>() const;
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);
}
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>();
return static_cast<WCloud&>(widget);
@ -201,7 +201,7 @@ cv::viz::WPaintedCloud::WPaintedCloud(InputArray cloud, const Point3d& p1, const
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>();
return static_cast<WPaintedCloud&>(widget);
@ -271,7 +271,7 @@ void cv::viz::WCloudCollection::finalize()
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>();
return static_cast<WCloudCollection&>(widget);
@ -357,7 +357,7 @@ cv::viz::WCloudNormals::WCloudNormals(InputArray _cloud, InputArray _normals, in
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>();
return static_cast<WCloudNormals&>(widget);
@ -461,7 +461,7 @@ cv::viz::WMesh::WMesh(InputArray cloud, InputArray polygons, InputArray colors,
*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>();
return static_cast<WMesh&>(widget);
@ -523,7 +523,7 @@ void cv::viz::WWidgetMerger::finalize()
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>();
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);
}
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>();
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);
}
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>();
return static_cast<WSphere&>(widget);
@ -138,7 +138,7 @@ cv::viz::WPlane::WPlane(const Point3d& center, const Vec3d& normal, const Vec3d&
*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>();
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);
}
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>();
return static_cast<WArrow&>(widget);
@ -220,7 +220,7 @@ cv::viz::WCircle::WCircle(double radius, const Point3d& center, const Vec3d& nor
*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>();
return static_cast<WCircle&>(widget);
@ -262,7 +262,7 @@ cv::viz::WCone::WCone(double radius, const Point3d& center, const Point3d& tip,
*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>();
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);
}
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>();
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);
}
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>();
return static_cast<WCube&>(widget);
@ -382,7 +382,7 @@ cv::viz::WCoordinateSystem::WCoordinateSystem(double scale)
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>();
return static_cast<WCoordinateSystem&>(widget);
@ -422,7 +422,7 @@ cv::viz::WPolyLine::WPolyLine(InputArray points, const Color &color)
*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>();
return static_cast<WPolyLine&>(widget);
@ -472,7 +472,7 @@ cv::viz::WGrid::WGrid(const Point3d& center, const Vec3d& normal, const Vec3d& n
*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>();
return static_cast<WGrid&>(widget);
@ -538,7 +538,7 @@ cv::String cv::viz::WText3D::getText() const
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>();
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);
}
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>();
return static_cast<WText&>(widget);
@ -658,7 +658,7 @@ void cv::viz::WImageOverlay::setImage(InputArray image)
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>();
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);
}
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>();
return static_cast<WImage3D&>(widget);
@ -920,7 +920,7 @@ cv::viz::WCameraPosition::WCameraPosition(const Vec2d &fov, InputArray _image, d
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>();
return static_cast<WCameraPosition&>(widget);
@ -971,7 +971,7 @@ cv::viz::WTrajectory::WTrajectory(InputArray _path, int display_mode, double sca
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>();
return static_cast<WTrajectory&>(widget);
@ -1032,7 +1032,7 @@ cv::viz::WTrajectoryFrustums::WTrajectoryFrustums(InputArray _path, const Vec2d
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>();
return static_cast<WTrajectoryFrustums&>(widget);
@ -1100,7 +1100,7 @@ cv::viz::WTrajectorySpheres::WTrajectorySpheres(InputArray _path, double line_le
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>();
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::setOffScreenRendering() { impl_->setOffScreenRendering(); }
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); }
bool cv::viz::Viz3d::wasStopped() const { return impl_->wasStopped(); }
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 diffuseColor_ = vtkcolor(diffuseColor);

@ -65,7 +65,8 @@ public:
void setOffScreenRendering();
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 removeWidget(const String &id);

@ -319,7 +319,7 @@ void cv::viz::Widget3D::setColor(const Color &color)
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));
CV_Assert("Widget cannot be cast." && actor);
@ -341,7 +341,7 @@ void cv::viz::Widget2D::setColor(const Color &color)
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));
CV_Assert("Widget cannot be cast." && actor);

Loading…
Cancel
Save