MCPcopy Create free account
hub / github.com/PointCloudLibrary/pcl / ImageViewer

Method ImageViewer

visualization/src/image_viewer.cpp:56–115  ·  view source on GitHub ↗

/////////////////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

54
55//////////////////////////////////////////////////////////////////////////////////////////
56pcl::visualization::ImageViewer::ImageViewer (const std::string& window_title)
57 : interactor_ (vtkSmartPointer <vtkRenderWindowInteractor>::Take (vtkRenderWindowInteractorFixNew ()))
58 , mouse_command_ (vtkSmartPointer<vtkCallbackCommand>::New ())
59 , keyboard_command_ (vtkSmartPointer<vtkCallbackCommand>::New ())
60 , win_ (vtkSmartPointer<vtkRenderWindow>::New ())
61 , ren_ (vtkSmartPointer<vtkRenderer>::New ())
62 , slice_ (vtkSmartPointer<vtkImageSlice>::New ())
63 , interactor_style_ (vtkSmartPointer<ImageViewerInteractorStyle>::New ())
64 ,
65 algo_ (vtkSmartPointer<vtkImageFlip>::New ())
66{
67 // Prepare for image flip
68 algo_->SetInterpolationModeToCubic ();
69 algo_->PreserveImageExtentOn ();
70 algo_->FlipAboutOriginOn ();
71 algo_->SetFilteredAxis (1);
72
73 // blend_->SetBlendModeToNormal ();
74 // blend_->SetNumberOfThreads (1);
75
76 // Set the mouse/keyboard callbacks
77 mouse_command_->SetClientData (this);
78 mouse_command_->SetCallback (ImageViewer::MouseCallback);
79
80 keyboard_command_->SetClientData (this);
81 keyboard_command_->SetCallback (ImageViewer::KeyboardCallback);
82
83 // Create our own interactor and set the window title
84 win_->SetSize (640, 480);
85 win_->AddRenderer (ren_);
86 win_->SetWindowName (window_title.c_str ());
87 interactor_->SetRenderWindow (win_);
88
89 vtkSmartPointer<vtkImageData> empty_image = vtkSmartPointer<vtkImageData>::New ();
90 vtkSmartPointer<vtkImageSliceMapper> map = vtkSmartPointer<vtkImageSliceMapper>::New ();
91 map->SetInputData (empty_image);
92 slice_->SetMapper (map);
93 ren_->AddViewProp (slice_);
94 ren_->GetActiveCamera ()->ParallelProjectionOn ();
95 interactor_->SetInteractorStyle (interactor_style_);
96
97 // Initialize and create timer
98 interactor_->Initialize ();
99 timer_id_ = interactor_->CreateRepeatingTimer (0);
100
101 // Set the exit callbacks
102 exit_main_loop_timer_callback_ = vtkSmartPointer<ExitMainLoopTimerCallback>::New ();
103 exit_main_loop_timer_callback_->window = this;
104 exit_main_loop_timer_callback_->right_timer_id = -1;
105 interactor_->AddObserver (vtkCommand::TimerEvent, exit_main_loop_timer_callback_);
106
107 exit_callback_ = vtkSmartPointer<ExitCallback>::New ();
108 exit_callback_->window = this;
109 interactor_->AddObserver (vtkCommand::ExitEvent, exit_callback_);
110
111 // Reset camera (flip it vertically)
112 resetStoppedFlag ();
113

Callers

nothing calls this directly

Calls 5

NewFunction · 0.85
resetStoppedFlagFunction · 0.85
SetCallbackMethod · 0.45
InitializeMethod · 0.45

Tested by

no test coverage detected