From 159de9cc477123429941f0ad7582f2c17a241b70 Mon Sep 17 00:00:00 2001 From: Anatoly Baksheev Date: Thu, 12 Dec 2013 22:05:10 +0400 Subject: [PATCH] fixed potential crash --- modules/viz/src/clouds.cpp | 11 +++++------ modules/viz/src/widget.cpp | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/viz/src/clouds.cpp b/modules/viz/src/clouds.cpp index 7da425c38..ec83676ee 100644 --- a/modules/viz/src/clouds.cpp +++ b/modules/viz/src/clouds.cpp @@ -334,7 +334,7 @@ namespace cv { namespace viz { namespace return polydata; } - static void createMapper(vtkSmartPointer actor, vtkSmartPointer poly_data, Vec3d& minmax) + static void createMapper(vtkSmartPointer actor, vtkSmartPointer poly_data) { vtkDataSetMapper *mapper = vtkDataSetMapper::SafeDownCast(actor->GetMapper()); if (!mapper) @@ -347,7 +347,7 @@ namespace cv { namespace viz { namespace mapper_new->SetInputData(poly_data); #endif - mapper_new->SetScalarRange(minmax.val); + mapper_new->SetScalarRange(0, 255); mapper_new->SetScalarModeToUsePointData(); bool interpolation = (poly_data && poly_data->GetNumberOfCells() != poly_data->GetNumberOfVerts()); @@ -435,8 +435,8 @@ void cv::viz::WCloudCollection::addCloud(InputArray _cloud, InputArray _colors, vtkLODActor *actor = vtkLODActor::SafeDownCast(WidgetAccessor::getProp(*this)); CV_Assert("Incompatible widget type." && actor); - Vec3d minmax(scalars->GetRange()); - CloudCollectionUtils::createMapper(actor, transform_filter->GetOutput(), minmax); + + CloudCollectionUtils::createMapper(actor, transform_filter->GetOutput()); } void cv::viz::WCloudCollection::addCloud(InputArray _cloud, const Color &color, const Affine3f &pose) @@ -474,8 +474,7 @@ void cv::viz::WCloudCollection::addCloud(InputArray _cloud, const Color &color, vtkLODActor *actor = vtkLODActor::SafeDownCast(WidgetAccessor::getProp(*this)); CV_Assert("Incompatible widget type." && actor); - Vec3d minmax(scalars->GetRange()); - CloudCollectionUtils::createMapper(actor, transform_filter->GetOutput(), minmax); + CloudCollectionUtils::createMapper(actor, transform_filter->GetOutput()); } template<> cv::viz::WCloudCollection cv::viz::Widget::cast() diff --git a/modules/viz/src/widget.cpp b/modules/viz/src/widget.cpp index 5c2df04dc..c16d27ae3 100644 --- a/modules/viz/src/widget.cpp +++ b/modules/viz/src/widget.cpp @@ -102,7 +102,7 @@ cv::viz::Widget cv::viz::Widget::fromPlyFile(const String &file_name) vtkSmartPointer scalars = data->GetPointData()->GetScalars(); if (scalars) { - cv::Vec3d minmax(scalars->GetRange()); + cv::Vec2d minmax(scalars->GetRange()); mapper->SetScalarRange(minmax.val); mapper->SetScalarModeToUsePointData();