added test for textured mesh

This commit is contained in:
Anatoly Baksheev
2014-01-14 01:01:51 +04:00
parent 8d327fa497
commit ffad7b699c
5 changed files with 38 additions and 38 deletions

View File

@@ -73,7 +73,6 @@ cv::viz::Mesh cv::viz::Mesh::load(const String& file)
sink->Write();
// Now handle the polygons
vtkSmartPointer<vtkCellArray> polygons = polydata->GetPolys();
mesh.polygons.create(1, polygons->GetSize(), CV_32SC1);
int* poly_ptr = mesh.polygons.ptr<int>();
@@ -87,25 +86,6 @@ cv::viz::Mesh cv::viz::Mesh::load(const String& file)
*poly_ptr++ = (int)cell_points[i];
}
String::size_type pos = file.find_last_of('.');
String png = (pos == String::npos) ? file : file.substr(0, pos+1) + "png";
vtkSmartPointer<vtkPNGReader> png_reader = vtkSmartPointer<vtkPNGReader>::New();
if (png_reader->CanReadFile(png.c_str()))
{
png_reader->SetFileName(png.c_str());
png_reader->Update();
vtkSmartPointer<vtkImageData> imagedata = png_reader->GetOutput();
Size sz(imagedata->GetDimensions()[0], imagedata->GetDimensions()[1]);
int channels = imagedata->GetNumberOfScalarComponents();
CV_Assert(imagedata->GetScalarType() == VTK_UNSIGNED_CHAR);
void *ptr = imagedata->GetScalarPointer(0,0,0);
Mat(sz, CV_8UC(channels), ptr).copyTo(mesh.texture);
}
return mesh;
}