1 #ifndef PCL_OUTOFCORE_AXES_H_
2 #define PCL_OUTOFCORE_AXES_H_
13 #include <vtkTubeFilter.h>
16 #include <vtkFloatArray.h>
17 #include <vtkProperty.h>
18 #include <vtkPolyData.h>
19 #include <vtkPolyDataMapper.h>
20 #include <vtkSmartPointer.h>
28 Axes (std::string name,
float size = 1.0) :
31 axes_ = vtkSmartPointer<vtkAxes>::New ();
32 axes_->SetOrigin (0, 0, 0);
33 axes_->SetScaleFactor (size);
35 vtkSmartPointer<vtkFloatArray> axes_colors = vtkSmartPointer<vtkFloatArray>::New ();
36 axes_colors->Allocate (6);
37 axes_colors->InsertNextValue (0.0);
38 axes_colors->InsertNextValue (0.0);
39 axes_colors->InsertNextValue (0.5);
40 axes_colors->InsertNextValue (0.5);
41 axes_colors->InsertNextValue (1.0);
42 axes_colors->InsertNextValue (1.0);
44 vtkSmartPointer<vtkPolyData> axes_data = axes_->GetOutput ();
46 axes_data->GetPointData ()->SetScalars (axes_colors);
48 vtkSmartPointer<vtkTubeFilter> axes_tubes = vtkSmartPointer<vtkTubeFilter>::New ();
49 axes_tubes->SetInput (axes_data);
50 axes_tubes->SetRadius (axes_->GetScaleFactor () / 100.0);
51 axes_tubes->SetNumberOfSides (6);
53 vtkSmartPointer<vtkPolyDataMapper> axes_mapper = vtkSmartPointer<vtkPolyDataMapper>::New ();
54 axes_mapper->SetScalarModeToUsePointData ();
55 axes_mapper->SetInput (axes_tubes->GetOutput ());
57 axes_actor_ = vtkSmartPointer<vtkActor>::New ();
58 axes_actor_->GetProperty ()->SetLighting (
false);
59 axes_actor_->SetMapper (axes_mapper);
67 inline vtkSmartPointer<vtkAxes>
73 vtkSmartPointer<vtkActor>
83 vtkSmartPointer<vtkAxes> axes_;
84 vtkSmartPointer<vtkActor> axes_actor_;