133 return vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
139 int* pos = this->GetInteractor()->GetEventPosition();
141 vtkSmartPointer<vtkCellPicker> picker =
142 vtkSmartPointer<vtkCellPicker>::New();
143 picker->SetTolerance(0.0005);
146 picker->Pick(pos[0], pos[1], 0, this->GetDefaultRenderer());
148 double* worldPosition = picker->GetPickPosition();
149 INFO(
"Cell id is: {:d}", picker->GetCellId());
151 if (picker->GetCellId() != -1)
153 INFO(
"Pick position is: {:f} {:f} {:f}", worldPosition[0],
154 worldPosition[1], worldPosition[2]);
156 vtkSmartPointer<vtkIdTypeArray> ids =
157 vtkSmartPointer<vtkIdTypeArray>::New();
158 ids->SetNumberOfValues(1);
159 ids->SetValue(0, picker->GetCellId());
161 vtkSmartPointer<vtkSelectionNode> selectionNode =
162 vtkSmartPointer<vtkSelectionNode>::New();
163 selectionNode->SetFieldType(vtkSelectionNode::CELL);
164 selectionNode->SetContentType(vtkSelectionNode::INDICES);
165 selectionNode->SetSelectionList(ids);
167 vtkSmartPointer<vtkSelection> selection =
168 vtkSmartPointer<vtkSelection>::New();
169 selection->AddNode(selectionNode);
171 vtkSmartPointer<vtkExtractSelection> extractSelection =
172 vtkSmartPointer<vtkExtractSelection>::New();
173 extractSelection->SetInputData(0,
_data);
174 extractSelection->SetInputData(1, selection);
175 extractSelection->Update();
178 vtkSmartPointer<vtkUnstructuredGrid> selected =
179 vtkSmartPointer<vtkUnstructuredGrid>::New();
180 selected->ShallowCopy(extractSelection->GetOutput());
182 INFO(
"There are {:d} points in the selection.",
183 selected->GetNumberOfPoints());
184 INFO(
"There are {:d} cells in the selection.",
185 selected->GetNumberOfCells());
190 vtkAlgorithm* data_set = picker->GetActor()
192 ->GetInputConnection(0, 0)
194 ->GetInputConnection(0, 0)
197 dynamic_cast<vtkUnstructuredGridAlgorithm*
>(data_set);
201 static_cast<unsigned>(picker->GetCellId()));
209 this->Interactor->GetRenderWindow()
217 this->Interactor->GetRenderWindow()
227 vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
235 return vtkInteractorStyleTrackballCamera::OnRightButtonDown();
241 int* pos = this->GetInteractor()->GetEventPosition();
243 vtkSmartPointer<vtkCellPicker> picker =
244 vtkSmartPointer<vtkCellPicker>::New();
245 picker->SetTolerance(0.0005);
248 picker->Pick(pos[0], pos[1], 0, this->GetDefaultRenderer());
250 double* worldPosition = picker->GetPickPosition();
251 INFO(
"Cell id is: {:d}", picker->GetCellId());
253 if (picker->GetCellId() != -1)
255 vtkRenderer* renderer = this->Interactor->GetRenderWindow()
257 ->GetFirstRenderer();
258 vtkCamera* cam = renderer->GetActiveCamera();
259 cam->SetFocalPoint(worldPosition);
266 vtkInteractorStyleTrackballCamera::OnRightButtonDown();