nuclear@86: #ifndef SCENEMODEL_H_ nuclear@86: #define SCENEMODEL_H_ nuclear@86: nuclear@86: #include nuclear@86: #include nuclear@86: #include "goat3d.h" nuclear@86: nuclear@86: struct SceneNodeData { nuclear@86: bool visible; nuclear@86: }; nuclear@86: nuclear@86: class SceneModel : public QAbstractItemModel { nuclear@86: private: nuclear@86: Q_OBJECT nuclear@86: nuclear@86: goat3d *scn; nuclear@86: std::map node_data; nuclear@86: nuclear@86: public: nuclear@86: SceneModel(); nuclear@86: ~SceneModel(); nuclear@86: nuclear@86: void set_scene(goat3d *scn); nuclear@86: void clear_scene(); nuclear@86: nuclear@86: SceneNodeData *get_node_data(goat3d_node *node) const; nuclear@86: nuclear@86: Qt::ItemFlags flags(const QModelIndex &index) const; nuclear@86: QVariant data(const QModelIndex &index, int role) const; nuclear@86: bool setData(const QModelIndex &index, const QVariant &value, int role); nuclear@86: QVariant headerData(int section, Qt::Orientation orient, int role) const; nuclear@86: int rowCount(const QModelIndex &parent) const; nuclear@86: int columnCount(const QModelIndex &parent) const; nuclear@86: bool hasChildren(const QModelIndex &parent) const; nuclear@86: QModelIndex index(int row, int column, const QModelIndex &parent) const; nuclear@86: QModelIndex parent(const QModelIndex &index) const; nuclear@86: }; nuclear@86: nuclear@86: #endif // SCENEMODEL_H_