ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
modeltopointsconverter.cpp
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 
9 
10 #include <QDebug>
11 
12 namespace VtkUtils {
13 
15  : m_model(model) {}
16 
17 QList<Point3F> ModelToPointsConverter::points() const { return m_points; }
18 
19 QVector<Tuple3ui> ModelToPointsConverter::vertices() const {
20  return m_model->verticesData();
21 }
22 
24  if (!m_model) {
25  qDebug() << "ModelToPointsConverter::run: null model.";
26  emit finished();
27  return;
28  }
29 
30  int rows = m_model->rowCount();
31  int cols = m_model->columnCount();
32 
33  if (cols < 3) {
34  emit finished();
35  qDebug() << "ModelToPointsConverter::run: insufficient columns.";
36  return;
37  }
38 
39  for (int i = 0; i < rows; ++i) {
40  Point3F pot{m_model->data(i, 0), m_model->data(i, 1),
41  m_model->data(i, 2)};
42  m_points.append(pot);
43  }
44 
45  emit finished();
46 }
47 
48 } // namespace VtkUtils
QVector< Tuple3ui > vertices() const
QVector< Tuple3ui > verticesData() const
Definition: tablemodel.cpp:225
int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: tablemodel.cpp:187
int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: tablemodel.cpp:182
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: tablemodel.cpp:213