PeriDyno 1.2.1
Loading...
Searching...
No Matches
WtNodeFlowWidget.h
Go to the documentation of this file.
1#pragma once
2
3#include <Wt/WWidget.h>
4#include <Wt/WVBoxLayout.h>
5
6#include "WtFlowWidget.h"
7#include "WtNodeFlowScene.h"
9#include "WtFlowNodeData.h"
10#include "WtInteraction.h"
11
12//enum PortState { in, out };
13//
14//struct sceneConnection {
15// std::shared_ptr<Node> exportNode;
16// std::shared_ptr<Node> inportNode;
17// connectionPointData inPoint;
18// connectionPointData outPoint;
19//};
20
22{
23public:
24 WtNodeFlowWidget(std::shared_ptr<dyno::SceneGraph> scene);
26
27public:
28 void onMouseMove(const Wt::WMouseEvent& event) override;
29 void onMouseWentDown(const Wt::WMouseEvent& event) override;
30 void onMouseWentUp(const Wt::WMouseEvent& event) override;
31 void onKeyWentDown() override;
32
33 void deleteNode(WtNode& n);
34
36
37 void moveNode(WtNode& n, const Wt::WPointF& newLocaton);
38
39 void enableRendering(WtNode& n, bool checked);
40
41 void enablePhysics(WtNode& n, bool checked);
42
43 void setSelectNode(std::shared_ptr<dyno::Node> node);
44
45protected:
46 void paintEvent(Wt::WPaintDevice* paintDevice);
47
48 bool checkMouseInAllRect(Wt::WPointF mousePoint);
49
50 bool checkMouseInHotKey0(Wt::WPointF mousePoint, WtFlowNodeData nodeData);
51
52 bool checkMouseInHotKey1(Wt::WPointF mousePoint, WtFlowNodeData nodeData);
53
54 Wt::WPointF WtNodeFlowWidget::getPortPosition(Wt::WPointF origin, connectionPointData portData);
55
56 void disconnect(std::shared_ptr<Node> exportNode, std::shared_ptr<Node> inportNode, connectionPointData inPoint, connectionPointData outPoint, WtNode* inWtNode, WtNode* outWtNode);
57
58protected:
60 std::map<dyno::ObjectId, WtNode*> nodeMap;
62
63 std::shared_ptr<Node> mOutNode;
64 std::vector<sceneConnection> sceneConnections;
65};
connectionPointData outPoint
WtFlowWidget(std::shared_ptr< dyno::SceneGraph > scene)
connectionPointData inPoint
void onKeyWentDown() override
Wt::WPointF getPortPosition(Wt::WPointF origin, connectionPointData portData)
void disconnect(std::shared_ptr< Node > exportNode, std::shared_ptr< Node > inportNode, connectionPointData inPoint, connectionPointData outPoint, WtNode *inWtNode, WtNode *outWtNode)
void setSelectNode(std::shared_ptr< dyno::Node > node)
void disconnectionsFromNode(WtNode &node)
void onMouseWentUp(const Wt::WMouseEvent &event) override
void onMouseWentDown(const Wt::WMouseEvent &event) override
std::shared_ptr< Node > mOutNode
std::vector< sceneConnection > sceneConnections
void moveNode(WtNode &n, const Wt::WPointF &newLocaton)
void enablePhysics(WtNode &n, bool checked)
WtNodeFlowWidget(std::shared_ptr< dyno::SceneGraph > scene)
void onMouseMove(const Wt::WMouseEvent &event) override
std::map< dyno::ObjectId, WtNode * > nodeMap
void deleteNode(WtNode &n)
void enableRendering(WtNode &n, bool checked)
bool checkMouseInAllRect(Wt::WPointF mousePoint)
void paintEvent(Wt::WPaintDevice *paintDevice)
WtNodeFlowScene * node_scene
bool checkMouseInHotKey0(Wt::WPointF mousePoint, WtFlowNodeData nodeData)
bool checkMouseInHotKey1(Wt::WPointF mousePoint, WtFlowNodeData nodeData)