Commit e94ee94b authored by Anatoly Baksheev's avatar Anatoly Baksheev

refactored WCoordinateSystem widget

parent 56819eaf
...@@ -335,36 +335,28 @@ cv::viz::WCoordinateSystem::WCoordinateSystem(double scale) ...@@ -335,36 +335,28 @@ cv::viz::WCoordinateSystem::WCoordinateSystem(double scale)
vtkSmartPointer<vtkAxes> axes = vtkSmartPointer<vtkAxes>::New(); vtkSmartPointer<vtkAxes> axes = vtkSmartPointer<vtkAxes>::New();
axes->SetOrigin(0, 0, 0); axes->SetOrigin(0, 0, 0);
axes->SetScaleFactor(scale); axes->SetScaleFactor(scale);
axes->Update();
vtkSmartPointer<vtkFloatArray> axes_colors = vtkSmartPointer<vtkFloatArray>::New(); vtkSmartPointer<vtkUnsignedCharArray> colors = vtkSmartPointer<vtkUnsignedCharArray>::New();
axes_colors->Allocate(6); colors->SetNumberOfComponents(3);
axes_colors->InsertNextValue(0.0); colors->InsertNextTuple3(255, 0, 0);
axes_colors->InsertNextValue(0.0); colors->InsertNextTuple3(255, 0, 0);
axes_colors->InsertNextValue(0.5); colors->InsertNextTuple3(0, 255, 0);
axes_colors->InsertNextValue(0.5); colors->InsertNextTuple3(0, 255, 0);
axes_colors->InsertNextValue(1.0); colors->InsertNextTuple3(0, 0, 255);
axes_colors->InsertNextValue(1.0); colors->InsertNextTuple3(0, 0, 255);
vtkSmartPointer<vtkPolyData> axes_data = axes->GetOutput(); vtkSmartPointer<vtkPolyData> polydata = axes->GetOutput();
#if VTK_MAJOR_VERSION <= 5 polydata->GetPointData()->SetScalars(colors);
axes_data->Update();
#else
axes->Update();
#endif
axes_data->GetPointData()->SetScalars(axes_colors);
vtkSmartPointer<vtkTubeFilter> axes_tubes = vtkSmartPointer<vtkTubeFilter>::New(); vtkSmartPointer<vtkTubeFilter> tube_filter = vtkSmartPointer<vtkTubeFilter>::New();
#if VTK_MAJOR_VERSION <= 5 VtkUtils::SetInputData(tube_filter, polydata);
axes_tubes->SetInput(axes_data); tube_filter->SetRadius(axes->GetScaleFactor() / 50.0);
#else tube_filter->SetNumberOfSides(6);
axes_tubes->SetInputData(axes_data);
#endif
axes_tubes->SetRadius(axes->GetScaleFactor() / 50.0);
axes_tubes->SetNumberOfSides(6);
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetScalarModeToUsePointData(); mapper->SetScalarModeToUsePointData();
mapper->SetInputConnection(axes_tubes->GetOutputPort()); VtkUtils::SetInputData(mapper, tube_filter->GetOutput());
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper); actor->SetMapper(mapper);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment