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