ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
tablemodel.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 #include <QAbstractTableModel>
11 #include <QVector>
12 
13 #include "../qPCL.h"
14 #include "point3f.h"
15 
16 // CV_CORE_LIB
17 #include <CVGeom.h>
18 
19 class ccHObject;
20 namespace VtkUtils {
21 class QPCL_ENGINE_LIB_API TableModel : public QAbstractTableModel {
22  Q_OBJECT
23 public:
24  explicit TableModel(int column, int row, QObject *parent = nullptr);
25  explicit TableModel(const ccHObject *objContainer,
26  QObject *parent = nullptr);
27  void updateData(const ccHObject *objContainer);
28  virtual ~TableModel();
29 
30  void random(int min = -5, int max = 5);
31  void resize(int column, int row);
32 
33  void clear();
34 
35  int randomMin();
36  int randomMax();
37 
38  void setHorizontalHeaderData(const QVariantList &data);
39  QVariantList horizontalHeaderData() const;
40 
41  void setVerticalHeaderData(const QVariantList &data);
42  QVariantList verticalHeaderData() const;
43 
44  int rowCount(const QModelIndex &parent = QModelIndex()) const;
45  int columnCount(const QModelIndex &parent = QModelIndex()) const;
46  QVariant headerData(int section,
47  Qt::Orientation orientation,
48  int role = Qt::DisplayRole) const;
49  QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
50  qreal data(int row, int col) const;
51  QVector<Tuple3ui> verticesData() const;
52  bool setData(const QModelIndex &index,
53  const QVariant &value,
54  int role = Qt::EditRole);
55  bool setData(int row, int column, const QVariant &value);
56  Qt::ItemFlags flags(const QModelIndex &index) const;
57 
58 signals:
59  void rowsChanged(int oldRows, int newRows);
60  void columnsChanged(int oldCols, int newCols);
61 
62 private:
63  QVector<QVector<qreal> *> m_data;
64  QVector<Tuple3ui> m_vertices;
65 
66  QVariantList m_horHeaderData;
67  QVariantList m_verHeaderData;
68  int m_cols = 3;
69  int m_rows = 30;
70  int m_randomMin = -1;
71  int m_randomMax = 1;
72 };
73 
74 } // namespace VtkUtils
#define signals
void columnsChanged(int oldCols, int newCols)
void rowsChanged(int oldRows, int newRows)
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
GraphType data
Definition: graph_cut.cc:138
double random(int low, int high)
Definition: utils.cpp:55
static int columnCount(int count)
Definition: vtkwidget.cpp:72
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15