29 : QAbstractTableModel(parent), m_cols(column), m_rows(row) {
34 for (
int i = 0; i < m_rows; i++) {
35 QVector<qreal>* dataVec =
new QVector<qreal>(m_cols);
36 for (
int k = 0; k < dataVec->size(); k++) {
38 dataVec->replace(k, i * 50 + std::rand() % 20);
40 dataVec->replace(k, std::rand() % 100);
42 m_data.append(dataVec);
47 : QAbstractTableModel(parent) {
67 bool visFiltering = (verticesVisibility.size() >= inputCloud->
size());
68 int count =
static_cast<int>(inputCloud->
size());
71 for (
int i = 0; i <
count; ++i) {
72 if (visFiltering && verticesVisibility.at(i) !=
POINT_VISIBLE) {
76 QVector<qreal>* dataVec =
new QVector<qreal>(m_cols);
78 for (
int k = 0; k < dataVec->size(); k++) {
79 dataVec->replace(k, P->
u[k]);
81 m_data.append(dataVec);
88 int triNum =
static_cast<int>(mesh->
size());
89 for (
int i = 0; i < triNum; ++i) {
105 m_rows = m_data.size();
114 for (
int r = 0; r < m_rows; ++r) {
115 for (
int c = 0; c < m_cols; ++c) {
116 auto vecPtr = m_data[r];
120 emit layoutChanged();
124 if (m_cols == column && m_rows == row) {
140 for (
int i = 0; i < m_rows; i++) {
141 QVector<qreal>* dataVec =
new QVector<qreal>(m_cols);
142 for (
int k = 0; k < dataVec->size(); k++) dataVec->replace(k, qreal());
143 m_data.append(dataVec);
155 emit layoutChanged();
163 if (m_horHeaderData !=
data) {
164 m_horHeaderData =
data;
165 emit layoutChanged();
170 return m_horHeaderData;
174 if (m_verHeaderData !=
data) {
175 m_verHeaderData =
data;
176 emit layoutChanged();
193 Qt::Orientation orientation,
195 if (role != Qt::DisplayRole)
return QVariant();
197 if (orientation == Qt::Horizontal) {
198 if (!m_horHeaderData.isEmpty() && m_horHeaderData.size() > section)
199 return m_horHeaderData.at(section);
201 return QString(
"%1").arg(section + 1);
204 if (orientation == Qt::Vertical) {
205 if (!m_verHeaderData.isEmpty() && m_verHeaderData.size() > section)
206 return m_verHeaderData.at(section);
208 return QString(
"%1").arg(section + 1);
214 if (role == Qt::DisplayRole) {
215 return m_data[index.row()]->at(index.column());
216 }
else if (role == Qt::EditRole) {
217 return m_data[index.row()]->at(index.column());
228 const QVariant& value,
230 if (index.isValid() && role == Qt::EditRole) {
231 m_data[index.row()]->replace(index.column(), value.toDouble());
232 emit dataChanged(index, index);
239 QModelIndex index = this->createIndex(row, column);
244 return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
constexpr unsigned char POINT_VISIBLE
Tuple3Tpl< unsigned int > Tuple3ui
Tuple of 3 unsigned int values.
QVector< Tuple3ui > verticesData() const
void columnsChanged(int oldCols, int newCols)
QVariantList verticalHeaderData() const
Qt::ItemFlags flags(const QModelIndex &index) const
int columnCount(const QModelIndex &parent=QModelIndex()) const
void random(int min=-5, int max=5)
void rowsChanged(int oldRows, int newRows)
void updateData(const ccHObject *objContainer)
void setVerticalHeaderData(const QVariantList &data)
void resize(int column, int row)
QVariantList horizontalHeaderData() const
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
TableModel(int column, int row, QObject *parent=nullptr)
int rowCount(const QModelIndex &parent=QModelIndex()) const
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
void setHorizontalHeaderData(const QVariantList &data)
virtual bool colorsShown() const
Returns whether colors are shown or not.
A 3D cloud interface with associated features (color, normals, octree, etc.)
virtual VisibilityTableType & getTheVisibilityArray()
Returns associated visibility array.
std::vector< unsigned char > VisibilityTableType
Array of "visibility" information for each point.
static ccGenericPointCloud * ToGenericPointCloud(ccHObject *obj, bool *isLockedVertices=nullptr)
Converts current object to 'equivalent' ccGenericPointCloud.
Hierarchical CLOUDVIEWER Object.
unsigned getChildrenNumber() const
Returns the number of children.
ccHObject * getChild(unsigned childPos) const
Returns the ith child.
bool isKindOf(CV_CLASS_ENUM type) const
virtual unsigned size() const =0
Returns the number of points.
virtual const CCVector3 * getPoint(unsigned index) const =0
Returns the ith point.
virtual VerticesIndexes * getTriangleVertIndexes(unsigned triangleIndex)=0
Returns the indexes of the vertices of a given triangle.
virtual unsigned size() const =0
Returns the number of triangles.
double random(int low, int high)
Triangle described by the indexes of its 3 vertices.