ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
vtkwidget.h
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 #pragma once
9 
10 // #define vtkRenderingCore_AUTOINIT
11 // 3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL) // ogl2
12 // #define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
13 
14 // #include <vtkAutoInit.h>
15 // #include <vtkAutoInit.h>
16 
17 // VTK_MODULE_INIT(vtkRenderingOpenGL) // ogl2
18 // VTK_MODULE_INIT(vtkInteractionStyle)
19 
20 // #include <vtkAutoInit.h>
21 // VTK_MODULE_INIT(vtkRenderingFreeType)
22 // VTK_MODULE_INIT(vtkRenderingOpenGL2);
23 // VTK_MODULE_INIT(vtkInteractionStyle);
24 
25 #include <QVTKOpenGLNativeWidget.h>
26 #include <vtkSmartPointer.h>
27 
28 #include "../qPCL.h"
29 
30 class vtkActor;
31 class vtkProp;
32 class vtkLODActor;
33 class vtkDataSet;
34 namespace VtkUtils {
35 
36 class VtkWidgetPrivate;
37 class VtkWidget : public QVTKOpenGLNativeWidget {
38  Q_OBJECT
39 public:
40  explicit VtkWidget(QWidget* parent = nullptr);
41  virtual ~VtkWidget();
42 
43  void setMultiViewports(bool multi = true);
44  bool multiViewports() const;
45 
48  bool use_scalars = true);
49 
50  void addActor(vtkProp* actor, const QColor& clr = Qt::black);
51  void addViewProp(vtkProp* prop);
52  QList<vtkProp*> actors() const;
53 
54  void setActorsVisible(bool visible);
55  void setActorVisible(vtkProp* actor, bool visible);
56  bool actorVisible(vtkProp* actor);
57 
58  void setBackgroundColor(const QColor& clr);
59  void setBackgroundColor();
60  QColor backgroundColor() const;
61 
62  vtkRenderer* defaultRenderer();
63  bool defaultRendererTaken() const;
64 
65  void showOrientationMarker(bool show = true);
66 
67  vtkRenderWindow* GetRenderWindow() { return this->renderWindow(); }
68  QVTKInteractor* GetInteractor() { return this->interactor(); }
69 
70 protected:
71  void setBounds(double* bounds);
72 
73  double xMin() const;
74  double xMax() const;
75  double yMin() const;
76  double yMax() const;
77  double zMin() const;
78  double zMax() const;
79 
80 private:
81  VtkWidgetPrivate* d_ptr;
82  Q_DISABLE_COPY(VtkWidget)
83 };
84 
85 } // namespace VtkUtils
bool multiViewports() const
Definition: vtkwidget.cpp:144
double xMax() const
Definition: vtkwidget.cpp:351
void addViewProp(vtkProp *prop)
Definition: vtkwidget.cpp:244
virtual ~VtkWidget()
Definition: vtkwidget.cpp:136
void createActorFromVTKDataSet(const vtkSmartPointer< vtkDataSet > &data, vtkSmartPointer< vtkLODActor > &actor, bool use_scalars=true)
Definition: vtkwidget.cpp:158
QColor backgroundColor() const
Definition: vtkwidget.cpp:311
vtkRenderer * defaultRenderer()
Definition: vtkwidget.cpp:313
void showOrientationMarker(bool show=true)
Definition: vtkwidget.cpp:326
VtkWidget(QWidget *parent=nullptr)
Definition: vtkwidget.cpp:130
void setActorsVisible(bool visible)
Definition: vtkwidget.cpp:278
bool actorVisible(vtkProp *actor)
Definition: vtkwidget.cpp:286
vtkRenderWindow * GetRenderWindow()
Definition: vtkwidget.h:67
void setActorVisible(vtkProp *actor, bool visible)
Definition: vtkwidget.cpp:282
double zMin() const
Definition: vtkwidget.cpp:357
bool defaultRendererTaken() const
Definition: vtkwidget.cpp:321
QList< vtkProp * > actors() const
Definition: vtkwidget.cpp:276
QVTKInteractor * GetInteractor()
Definition: vtkwidget.h:68
double yMin() const
Definition: vtkwidget.cpp:353
void addActor(vtkProp *actor, const QColor &clr=Qt::black)
Definition: vtkwidget.cpp:204
void setBounds(double *bounds)
Definition: vtkwidget.cpp:344
double yMax() const
Definition: vtkwidget.cpp:355
double xMin() const
Definition: vtkwidget.cpp:349
void setMultiViewports(bool multi=true)
Definition: vtkwidget.cpp:138
double zMax() const
Definition: vtkwidget.cpp:359
GraphType data
Definition: graph_cut.cc:138
constexpr Rgb black(0, 0, 0)