pqMultiSliceAxisWidget.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-FileCopyrightText: Copyright (c) Sandia Corporation
3 // SPDX-License-Identifier: BSD-3-Clause
4 #ifndef pqMultiSliceAxisWidget_h
5 #define pqMultiSliceAxisWidget_h
6 
7 #include "pqCoreModule.h"
8 
9 #include <QPointer>
10 #include <QWidget>
11 
12 class vtkContextScene;
13 class vtkObject;
14 
15 class PQCORE_EXPORT pqMultiSliceAxisWidget : public QWidget
16 {
17  Q_OBJECT
18  typedef QWidget Superclass;
19  Q_PROPERTY(QString title READ title WRITE setTitle);
20 
21 public:
22  pqMultiSliceAxisWidget(QWidget* parent = nullptr);
23  ~pqMultiSliceAxisWidget() override;
24 
28  void setRange(double min, double max);
29 
33  void setAxisType(int type);
34 
38  QString title() const;
39  void setTitle(const QString& title);
40 
44  QWidget* getVTKWidget();
45 
50  const double* getVisibleSlices(int& nbSlices) const;
51 
55  const double* getSlices(int& nbSlices) const;
56 
60  void updateSlices(double* values, bool* visibility, int numberOfValues);
61 
66  void SetActiveSize(int size);
67 
71  void SetEdgeMargin(int margin);
72 
73 public Q_SLOTS: // NOLINT(readability-redundant-access-specifiers)
74  void renderView();
75 
76 Q_SIGNALS:
80  void sliceAdded(int index);
81  void sliceRemoved(int index);
82  void sliceModified(int index);
83 
87  void markClicked(int button, int modifier, double value);
88 
89  void titleChanged(const QString&);
90 
91 protected:
92  vtkContextScene* scene() const;
93 
97  void invalidateCallback(vtkObject*, unsigned long, void*);
98 
102  void onMarkClicked(vtkObject*, unsigned long, void*);
103 
104 private:
105  Q_DISABLE_COPY(pqMultiSliceAxisWidget)
106 
107  class pqInternal;
108  pqInternal* Internal;
109 };
110 
111 #endif
#define PQCORE_EXPORT
Definition: pqCoreModule.h:15
title