ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
modeltovectorsconverter.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 #include "tablemodel.h"
13 
14 namespace VtkUtils {
15 
17  : m_model(model) {}
18 
20  if (!m_model) {
21  qDebug() << "ModelToVectorsConverter::run: null model.";
22  emit finished();
23  return;
24  }
25 
26  int rows = m_model->rowCount();
27  int cols = m_model->columnCount();
28 
29  if (cols < 4) {
30  emit finished();
31  qDebug() << "ModelToVectorsConverter::run: insufficient columns.";
32  return;
33  }
34 
35  for (int i = 0; i < rows; ++i) {
36  Vector4F vec{m_model->data(i, 0), m_model->data(i, 1),
37  m_model->data(i, 2), m_model->data(i, 3)};
38  m_vectors.append(vec);
39  }
40 
41  emit finished();
42 }
43 
44 QList<Vector4F> ModelToVectorsConverter::vectors() const { return m_vectors; }
45 
46 } // namespace VtkUtils
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