more refactoring

This commit is contained in:
Anatoly Baksheev
2014-01-07 21:13:15 +04:00
parent 406444037d
commit d264465422
4 changed files with 64 additions and 22 deletions

View File

@@ -172,10 +172,40 @@ namespace cv
friend class Viz3d;
};
template<typename _Tp> bool isNan(const _Tp* data)
template<typename _Tp> inline bool isNan(const _Tp* data)
{
return isNan(data[0]) || isNan(data[1]) || isNan(data[2]);
}
inline vtkSmartPointer<vtkPolyData> getPolyData(const Widget3D& widget)
{
vtkSmartPointer<vtkProp> prop = WidgetAccessor::getProp(widget);
vtkSmartPointer<vtkMapper> mapper = vtkActor::SafeDownCast(prop)->GetMapper();
return vtkPolyData::SafeDownCast(mapper->GetInput());
}
struct VtkUtils
{
template<class Filter>
static inline void SetInputData(vtkSmartPointer<Filter> filter, vtkPolyData *polydata)
{
#if VTK_MAJOR_VERSION <= 5
filter->SetInput(polydata);
#else
filter->SetInputData(polydata);
#endif
}
template<class Filter>
static inline void AddInputData(vtkSmartPointer<Filter> filter, vtkPolyData *polydata)
{
#if VTK_MAJOR_VERSION <= 5
filter->AddInput(polydata);
#else
filter->AddInputData(polydata);
#endif
}
};
}
}

View File

@@ -305,9 +305,7 @@ void cv::viz::writeTrajectory(InputArray _traj, const String& files_format, int
void cv::viz::computeNormals(const Mesh3d& mesh, OutputArray _normals)
{
vtkSmartPointer<vtkProp> prop = WidgetAccessor::getProp(WMesh(mesh));
vtkSmartPointer<vtkMapper> mapper = vtkActor::SafeDownCast(prop)->GetMapper();
vtkSmartPointer<vtkPolyData> polydata = vtkPolyData::SafeDownCast(mapper->GetInput());
vtkSmartPointer<vtkPolyData> polydata = getPolyData(WMesh(mesh));
vtkSmartPointer<vtkPolyDataNormals> normal_generator = vtkSmartPointer<vtkPolyDataNormals>::New();
#if VTK_MAJOR_VERSION <= 5