GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
dxlib_gui_robot_control.h
[詳解]
1
3
4// Copyright(c) 2023-2025 Design Engineering Laboratory, Saitama University
5// Released under the MIT license
6// https://opensource.org/licenses/mit-license.php
7
8#ifndef DESIGNLAB_DXLIB_GUI_ROBOT_CONTROL_H_
9#define DESIGNLAB_DXLIB_GUI_ROBOT_CONTROL_H_
10
11#include <map>
12#include <memory>
13#include <string>
14#include <vector>
15
16#include <boost/thread.hpp>
17
18#include "abstract_dxlib_gui.h"
19#include "dxlib_camera.h"
20#include "math_vector3.h"
26#include "simple_button.h"
27
28
29namespace designlab
30{
31
35 public AbstractDxlibGui,
36 public IDxlibNodeSetter
37{
38public:
40
45 int window_x, int window_y,
46 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
47 const std::shared_ptr<const IHexapodJointCalculator>& calculator_ptr,
48 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr);
49
51
52
53 void Update() override;
54
55 void Draw() const override;
56
57
58 void SetNode(const RobotStateNode& node) override
59 {
60 node_ = node;
61 }
62
63private:
64 static constexpr int kWidth{ 400 };
65 static constexpr int kHeight{ 600 };
66 static constexpr int kTitleBarHeight{ 32 };
67
68
70 void DrawString() const;
71
72 bool IsInWindow() const;
73
74 std::string GetSerialData() const;
75
76 const int window_x_;
77 const int window_y_;
78
80 std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
81
83 std::shared_ptr<const IHexapodJointCalculator> calculator_ptr_;
84
86 std::shared_ptr<const IHexapodPostureValidator> checker_ptr_;
87
88 SerialCommunicationThread serial_communication_;
89
91 std::unique_ptr<boost::thread> serial_communication_thread_ptr_;
92
93 RobotStateNode node_;
94 bool auto_update_flag_{ false };
95 int counter_{ 0 };
96};
97
98} // namespace designlab
99
100
101#endif // DESIGNLAB_DXLIB_GUI_ROBOT_CONTROL_H_
Dxlibを使ったGUIの抽象クラス.
カメラの操作・管理を行うGUIの処理・描画を行うクラス.
void Draw() const override
GUIの描画.
void SetNode(const RobotStateNode &node) override
ノードをセットする.
void Update() override
GUIの更新,毎フレーム実行すること.
DxlibGuiRobotControl()=delete
デフォルトコンストラクタは生成できない.
DxLibのGuiやRendererでノードのセットを行うためのインターフェース.
グラフ構造のためのノード(頂点).旧名 LNODE