| 215 | } |
| 216 | |
| 217 | void vtkRenderView::SetInteractionMode(int mode) |
| 218 | { |
| 219 | if (this->InteractionMode != mode) |
| 220 | { |
| 221 | this->InteractionMode = mode; |
| 222 | vtkInteractorObserver* oldStyle = this->GetInteractor()->GetInteractorStyle(); |
| 223 | if (mode == INTERACTION_MODE_2D) |
| 224 | { |
| 225 | if (oldStyle) |
| 226 | { |
| 227 | oldStyle->RemoveObserver(this->GetObserver()); |
| 228 | } |
| 229 | vtkInteractorStyleRubberBand2D* style = vtkInteractorStyleRubberBand2D::New(); |
| 230 | this->GetInteractor()->SetInteractorStyle(style); |
| 231 | style->SetRenderOnMouseMove(this->GetRenderOnMouseMove()); |
| 232 | style->AddObserver(vtkCommand::SelectionChangedEvent, this->GetObserver()); |
| 233 | this->Renderer->GetActiveCamera()->ParallelProjectionOn(); |
| 234 | style->Delete(); |
| 235 | } |
| 236 | else if (mode == INTERACTION_MODE_3D) |
| 237 | { |
| 238 | if (oldStyle) |
| 239 | { |
| 240 | oldStyle->RemoveObserver(this->GetObserver()); |
| 241 | } |
| 242 | vtkInteractorStyleRubberBand3D* style = vtkInteractorStyleRubberBand3D::New(); |
| 243 | this->GetInteractor()->SetInteractorStyle(style); |
| 244 | style->SetRenderOnMouseMove(this->GetRenderOnMouseMove()); |
| 245 | style->AddObserver(vtkCommand::SelectionChangedEvent, this->GetObserver()); |
| 246 | this->Renderer->GetActiveCamera()->ParallelProjectionOff(); |
| 247 | style->Delete(); |
| 248 | } |
| 249 | else |
| 250 | { |
| 251 | vtkErrorMacro("Unknown interaction mode."); |
| 252 | } |
| 253 | } |
| 254 | } |
| 255 | |
| 256 | void vtkRenderView::SetRenderWindow(vtkRenderWindow* win) |
| 257 | { |
no test coverage detected