PeriDyno 1.2.1
Loading...
Searching...
No Matches
WSceneDataModel.h
Go to the documentation of this file.
1#pragma once
2#include <Wt/WAbstractItemModel.h>
3#include <Wt/WAbstractTableModel.h>
4
5namespace dyno
6{
7 class Node;
8 class Module;
9 class SceneGraph;
10};
11
12class WNodeDataModel : public Wt::WAbstractItemModel
13{
14public:
16
17 void setScene(std::shared_ptr<dyno::SceneGraph> scene);
18
19 virtual Wt::WModelIndex parent(const Wt::WModelIndex& index) const;
20 virtual Wt::WModelIndex index(int row, int column,
21 const Wt::WModelIndex& parent = Wt::WModelIndex()) const;
22
23 virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const;
24 virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const;
25
26 virtual Wt::cpp17::any data(const Wt::WModelIndex& index,
27 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const;
28
29 virtual Wt::cpp17::any headerData(int section,
30 Wt::Orientation orientation = Wt::Orientation::Horizontal,
31 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const;
32
33 std::shared_ptr<dyno::Node> getNode(const Wt::WModelIndex& index);
34
35private:
36 std::shared_ptr<dyno::SceneGraph> mScene;
37
38 struct NodeItem
39 {
40 int id = -1;
41 int offset = 0;
42
44 std::vector<NodeItem*> children;
45
46 std::shared_ptr<dyno::Node> ref;
47 };
48
49 std::vector<NodeItem*> mNodeList;
50};
51
52
53class WModuleDataModel : public Wt::WAbstractTableModel
54{
55public:
56
57 void setNode(std::shared_ptr<dyno::Node> node);
58
59 virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const;
60 virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const;
61
62 virtual Wt::cpp17::any data(const Wt::WModelIndex& index,
63 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const;
64
65 virtual Wt::cpp17::any headerData(int section,
66 Wt::Orientation orientation = Wt::Orientation::Horizontal,
67 Wt::ItemDataRole role = Wt::ItemDataRole::Display) const;
68
69 std::shared_ptr<dyno::Module> getModule(const Wt::WModelIndex& index);
70private:
71 std::shared_ptr<dyno::Node> mNode;
72};
73
void setNode(std::shared_ptr< dyno::Node > node)
virtual Wt::cpp17::any headerData(int section, Wt::Orientation orientation=Wt::Orientation::Horizontal, Wt::ItemDataRole role=Wt::ItemDataRole::Display) const
virtual int columnCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
std::shared_ptr< dyno::Module > getModule(const Wt::WModelIndex &index)
std::shared_ptr< dyno::Node > mNode
virtual int rowCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
virtual Wt::cpp17::any data(const Wt::WModelIndex &index, Wt::ItemDataRole role=Wt::ItemDataRole::Display) const
void setScene(std::shared_ptr< dyno::SceneGraph > scene)
virtual Wt::WModelIndex index(int row, int column, const Wt::WModelIndex &parent=Wt::WModelIndex()) const
std::vector< NodeItem * > mNodeList
std::shared_ptr< dyno::SceneGraph > mScene
virtual int rowCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
virtual int columnCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
virtual Wt::WModelIndex parent(const Wt::WModelIndex &index) const
virtual Wt::cpp17::any headerData(int section, Wt::Orientation orientation=Wt::Orientation::Horizontal, Wt::ItemDataRole role=Wt::ItemDataRole::Display) const
std::shared_ptr< dyno::Node > getNode(const Wt::WModelIndex &index)
virtual Wt::cpp17::any data(const Wt::WModelIndex &index, Wt::ItemDataRole role=Wt::ItemDataRole::Display) const
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
std::shared_ptr< dyno::Node > ref
std::vector< NodeItem * > children