Point Cloud Library (PCL)  1.15.0-dev
qvtk_compatibility.h
1 /*
2  * SPDX-License-Identifier: BSD-3-Clause
3  *
4  * Point Cloud Library (PCL) - www.pointclouds.org
5  * Copyright (c) 2020-, Open Perception
6  *
7  * All rights reserved
8  */
9 #pragma once
10 
11 #include <pcl/pcl_macros.h>
12 #include <pcl/pcl_config.h>
13 
14 #if HAVE_QVTK
15 #include <vtkVersion.h>
16 #include <vtkRenderWindow.h>
17 
18 #if VTK_MAJOR_VERSION > 8
19  #include <QVTKOpenGLNativeWidget.h>
20  using PCLQVTKWidget = QVTKOpenGLNativeWidget;
21 #else
22  #include <QVTKWidget.h>
23  using PCLQVTKWidget = QVTKWidget;
24 #endif // VTK_MAJOR_VERSION > 8
25 
26 
27 inline auto PCL_EXPORTS getInteractorCompat(PCLQVTKWidget& qvtk) {
28 #if VTK_MAJOR_VERSION > 8
29  return qvtk.interactor();
30 #else
31  return qvtk.GetInteractor();
32 #endif // VTK_MAJOR_VERSION > 8
33 }
34 
35 inline auto PCL_EXPORTS getRenderWindowCompat(PCLQVTKWidget& qvtk) {
36 #if VTK_MAJOR_VERSION > 8
37  return qvtk.renderWindow();
38 #else
39  return qvtk.GetRenderWindow();
40 #endif // VTK_MAJOR_VERSION > 8
41 }
42 
43 inline auto PCL_EXPORTS setRenderWindowCompat(PCLQVTKWidget& qvtk, vtkRenderWindow& window) {
44 #if VTK_MAJOR_VERSION > 8
45  return qvtk.setRenderWindow(&window);
46 #else
47  return qvtk.SetRenderWindow(&window);
48 #endif // VTK_MAJOR_VERSION > 8
49 }
50 
51 #else
52 #error PCL is not compiled with QVTK.
53 #endif
Defines all the PCL and non-PCL macros used.
#define PCL_EXPORTS
Definition: pcl_macros.h:324