PeriDyno 1.2.1
Loading...
Searching...
No Matches
WMainWindow.h
Go to the documentation of this file.
1#pragma once
2
3#include <Wt/WBorderLayout.h>
4#include <Wt/WContainerWidget.h>
5#include <Wt/WPanel.h>
6#include <Wt/WTabWidget.h>
7
8#include "WModuleGraphics.h"
9#include "WNodeGraphics.h"
10#include "WPythonWidget.h"
11#include "WSimulationControl.h"
12#include "WSceneDataModel.h"
13#include "WParameterDataNode.h"
14
17
18namespace dyno
19{
20 class SceneGraph;
22 class Node;
23};
24
25class WMainWindow : public Wt::WContainerWidget
26{
27public:
30
31 void setScene(std::shared_ptr<dyno::SceneGraph> scene);
32
33 std::shared_ptr<dyno::SceneGraph> getScene();
34
35 void createRightPanel();
36
37 void updateCanvas();
38
39 void updateNodeGraphics();
40
41 void onKeyWentDown(const Wt::WKeyEvent& event);
42
44
46
47public:
48 // data models
49 std::shared_ptr<WNodeDataModel> mNodeDataModel;
50 std::shared_ptr<WModuleDataModel> mModuleDataModel;
51 std::shared_ptr<WParameterDataNode> mParameterDataNode;
52
53private:
54 void initNavigationBar(Wt::WBorderLayout*);
55 void initCenterContainer(Wt::WBorderLayout*);
56 void initRightPanel(Wt::WContainerWidget*);
57 void initAddNodePanel(Wt::WPanel* parent);
58
59
60 std::unique_ptr<Wt::WWidget> initNodeGraphics();
61 std::unique_ptr<Wt::WWidget> initPython();
62 std::unique_ptr<Wt::WWidget> initSample();
63 std::unique_ptr<Wt::WWidget> initSave();
64 std::unique_ptr<Wt::WWidget> initLog();
65 std::unique_ptr<Wt::WWidget> initModuleGraphics();
66
67private:
70
71 std::shared_ptr<dyno::SceneGraph> mScene = nullptr;
72 std::shared_ptr<dyno::Node> mActiveNode = nullptr;
73
79 std::unique_ptr<WNodeGraphics> nodeGraphicsWidget;
80 std::unique_ptr<WModuleGraphics> moduleGraphicsWidget;
81
82 Wt::WContainerWidget* rightWidget;
83
84 Wt::WTabWidget* tab;
85
86 int Initial_x = 0;
87 int Initial_y = 0;
88};
std::unique_ptr< Wt::WWidget > initPython()
WSimulationCanvas * mSceneCanvas
Definition WMainWindow.h:74
WtModuleFlowWidget * mModuleFlowWidget
Definition WMainWindow.h:77
std::unique_ptr< WModuleGraphics > moduleGraphicsWidget
Definition WMainWindow.h:80
std::shared_ptr< WNodeDataModel > mNodeDataModel
Definition WMainWindow.h:49
Wt::WContainerWidget * rightWidget
Definition WMainWindow.h:82
void onKeyWentDown(const Wt::WKeyEvent &event)
Wt::WTabWidget * tab
Definition WMainWindow.h:84
void updateCanvas()
WSimulationCanvas * simCanvas()
Definition WMainWindow.h:43
int viewportHeight
Definition WMainWindow.h:68
std::unique_ptr< WNodeGraphics > nodeGraphicsWidget
Definition WMainWindow.h:79
std::unique_ptr< Wt::WWidget > initLog()
std::unique_ptr< Wt::WWidget > initSample()
std::shared_ptr< dyno::SceneGraph > mScene
Definition WMainWindow.h:71
void initCenterContainer(Wt::WBorderLayout *)
std::unique_ptr< Wt::WWidget > initNodeGraphics()
std::unique_ptr< Wt::WWidget > initModuleGraphics()
void initAddNodePanel(Wt::WPanel *parent)
WtNodeFlowWidget * getFlowWidget()
Definition WMainWindow.h:45
std::shared_ptr< dyno::Node > mActiveNode
Definition WMainWindow.h:72
std::unique_ptr< Wt::WWidget > initSave()
std::shared_ptr< WParameterDataNode > mParameterDataNode
Definition WMainWindow.h:51
void createRightPanel()
WSimulationControl * controlContainer
Definition WMainWindow.h:75
WtNodeFlowWidget * mNodeFlowWidget
Definition WMainWindow.h:76
void initNavigationBar(Wt::WBorderLayout *)
std::shared_ptr< dyno::SceneGraph > getScene()
void initRightPanel(Wt::WContainerWidget *)
WPythonWidget * pythonWidget
Definition WMainWindow.h:78
void setScene(std::shared_ptr< dyno::SceneGraph > scene)
std::shared_ptr< WModuleDataModel > mModuleDataModel
Definition WMainWindow.h:50
void updateNodeGraphics()
int viewportWidth
Definition WMainWindow.h:69
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25