21 #ifndef __ctkVTKDataSetModel_h
22 #define __ctkVTKDataSetModel_h
25 #include <QStandardItemModel>
31 #include "ctkVisualizationVTKWidgetsExport.h"
34 class vtkAbstractArray;
45 class ctkVTKDataSetModelPrivate;
50 :
public QStandardItemModel
57 Q_PROPERTY(AttributeTypes attributeTypes READ attributeTypes WRITE setAttributeTypes)
62 Q_PROPERTY(
bool includeNullItem READ includeNullItem WRITE setIncludeNullItem)
77 ScalarsAttribute = 0x2,
78 VectorsAttribute = 0x4,
79 NormalsAttribute = 0x8,
80 TCoordsAttribute = 0x10,
81 TensorsAttribute = 0x20,
82 GlobalIDsAttribute = 0x40,
83 PedigreeIDsAttribute = 0x80,
84 EdgeFlagAttribute = 0x100,
85 AllAttribute = NoAttribute | ScalarsAttribute | VectorsAttribute | NormalsAttribute | TCoordsAttribute | TensorsAttribute | GlobalIDsAttribute | PedigreeIDsAttribute | EdgeFlagAttribute
87 Q_DECLARE_FLAGS(AttributeTypes, AttributeType)
89 virtual void setDataSet(vtkDataSet* dataSet);
90 vtkDataSet* dataSet()
const;
92 AttributeTypes attributeTypes()
const;
93 void setAttributeTypes(
const AttributeTypes& attributeTypes);
95 bool includeNullItem()
const;
96 void setIncludeNullItem(
bool includeNullItem);
97 int nullItemLocation()
const;
101 inline vtkAbstractArray* arrayFromIndex(
const QModelIndex& arrayIndex)
const;
106 inline int locationFromIndex(
const QModelIndex& arrayIndex)
const;
108 vtkAbstractArray* arrayFromItem(QStandardItem* nodeItem)
const;
113 int locationFromItem(QStandardItem* nodeItem)
const;
115 inline QModelIndex indexFromArray(vtkAbstractArray* array,
int column = 0)
const;
116 QStandardItem* itemFromArray(vtkAbstractArray* array,
int column = 0)
const;
117 QModelIndexList indexes(vtkAbstractArray* array)
const;
120 void onDataSetModified(vtkObject* dataSet);
121 void onDataSetPointDataModified(vtkObject* dataSetPointData);
122 void onDataSetCellDataModified(vtkObject* dataSetCellData);
123 void onArrayModified(vtkObject* array);
124 void onItemChanged(QStandardItem * item);
130 virtual void insertArray(vtkAbstractArray* array,
int location);
131 virtual void insertArray(vtkAbstractArray* array,
int location,
int row);
132 virtual void updateItemFromArray(QStandardItem* item, vtkAbstractArray* array,
int location,
int column);
133 virtual void updateArrayFromItem(vtkAbstractArray* array, QStandardItem* item);
134 virtual void updateDataSet();
135 virtual void populateDataSet();
136 virtual void insertNullItem();
137 virtual void removeNullItem();
140 QScopedPointer<ctkVTKDataSetModelPrivate>
d_ptr;
165 return item ? item->index() : QModelIndex();