pqOpacityTableModel.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 pqOpacityTableModel_h
5 #define pqOpacityTableModel_h
6 
7 #include "vtkVector.h"
8 #include <QAbstractTableModel>
9 
11 
12 // QAbstractTableModel subclass for keeping track of the opacity transfer
13 // function control points.
14 // First column is control point scalar value and the second is the opacity.
15 class pqOpacityTableModel : public QAbstractTableModel
16 {
17  Q_OBJECT
18  typedef QAbstractTableModel Superclass;
19 
20 public:
21  pqOpacityTableModel(pqColorOpacityEditorWidget* widget, QObject* parentObject = nullptr);
22 
23  ~pqOpacityTableModel() override;
24 
28  Qt::ItemFlags flags(const QModelIndex& idx) const override;
29 
30  bool setData(const QModelIndex& idx, const QVariant& value, int role = Qt::EditRole) override;
31 
32  int rowCount(const QModelIndex& parent = QModelIndex()) const override;
33 
34  int columnCount(const QModelIndex& parent = QModelIndex()) const override;
35 
36  QVariant data(const QModelIndex& idx, int role = Qt::DisplayRole) const override;
37 
38  QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
39 
40  std::vector<vtkVector4d> points() const;
41 
42  size_t insertPoint(size_t loc);
43 
44  bool setPoints(const std::vector<vtkVector4d>& pts);
45 
46 protected Q_SLOTS:
47 
48  void controlPointsChanged();
49 
50  void updatePoint(const QModelIndex& idx);
51 
52 private:
53  Q_DISABLE_COPY(pqOpacityTableModel)
54 
56 
57  double Range[2];
58 
59  class pqInternals;
60  pqInternals* Internals;
61 };
62 
63 #endif
size_t insertPoint(size_t loc)
bool setData(const QModelIndex &idx, const QVariant &value, int role=Qt::EditRole) override
~pqOpacityTableModel() override
pqColorOpacityEditorWidget provides an in-line editor widget for editing the color and opacity transf...
std::vector< vtkVector4d > points() const
bool setPoints(const std::vector< vtkVector4d > &pts)
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Qt::ItemFlags flags(const QModelIndex &idx) const override
All columns are editable.
value
orientation
int rowCount(const QModelIndex &parent=QModelIndex()) const override
pqOpacityTableModel(pqColorOpacityEditorWidget *widget, QObject *parentObject=nullptr)
QVariant data(const QModelIndex &idx, int role=Qt::DisplayRole) const override
void updatePoint(const QModelIndex &idx)