ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
vtkRenderWindowInteractorFix.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include <pcl/console/print.h> // for PCL_DEBUG
10 #include <vtkVersion.h>
11 #if __unix__ && VTK_MAJOR_VERSION == 9 && \
12  ((VTK_MINOR_VERSION == 0 && \
13  (VTK_BUILD_VERSION == 2 || VTK_BUILD_VERSION == 3)) || \
14  (VTK_MINOR_VERSION == 1 && VTK_BUILD_VERSION == 0))
15 #include <pcl/visualization/vtk/vtkFixedXRenderWindowInteractor.h>
16 #endif
17 
18 #ifndef __APPLE__
19 vtkRenderWindowInteractor* vtkRenderWindowInteractorFixNew() {
20 #if __unix__ && VTK_MAJOR_VERSION == 9 && \
21  ((VTK_MINOR_VERSION == 0 && \
22  (VTK_BUILD_VERSION == 2 || VTK_BUILD_VERSION == 3)) || \
23  (VTK_MINOR_VERSION == 1 && VTK_BUILD_VERSION == 0))
24  // VTK versions 9.0.2, 9.0.3, 9.1.0
25  vtkRenderWindowInteractor* interactor = vtkRenderWindowInteractor::New();
26  if (interactor->IsA("vtkXRenderWindowInteractor")) {
27  PCL_DEBUG("Using a fixed version of the vtkXRenderWindowInteractor!\n");
28  interactor->Delete();
29  interactor = pcl::vtkXRenderWindowInteractor::New();
30  }
31  return (interactor);
32 #else
33  return (vtkRenderWindowInteractor::New());
34 #endif
35 }
36 #endif
vtkRenderWindowInteractor * vtkRenderWindowInteractorFixNew()