GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
dxlib_gui_node_displayer.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_NODE_DISPLAYER_H_
9#define DESIGNLAB_DXLIB_GUI_NODE_DISPLAYER_H_
10
11#include <array>
12#include <memory>
13#include <string>
14#include <vector>
15
16#include "abstract_dxlib_gui.h"
20#include "robot_state_node.h"
21#include "simple_button.h"
22
23
24namespace designlab
25{
26
30 public AbstractDxlibGui,
31 public IDxlibNodeSetter
32{
33public:
35 int window_x,
36 int window_y,
37 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
38 const std::shared_ptr<const IHexapodJointCalculator>& calculator_ptr,
39 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr);
40
41 void SetNode(const RobotStateNode& node) override;
42
43 void Update() override;
44
45 void Draw() const override;
46
47private:
48 enum class DisplayMode : int
49 {
50 kDefualt,
51 kJointState,
52 kGlobalPos,
53 };
54
55 void DrawNodeInfo() const;
56
57 void DrawJointInfo() const;
58
59 void DrawGlobalPosInfo() const;
60
61 bool IsInWindow() const;
62
64 const std::shared_ptr<const IHexapodCoordinateConverter> converter_ptr_;
65
67 const std::shared_ptr<const IHexapodJointCalculator> calculator_ptr_;
68 const std::shared_ptr<const IHexapodPostureValidator> checker_ptr_;
69
70 RobotStateNode display_node_;
71
73 std::array<HexapodJointState, HexapodConst::kLegNum> joint_state_;
74 DisplayMode display_type_;
75
77 const int window_x_, window_y_;
78};
79
80} // namespace designlab
81
82
83#endif // DESIGNLAB_DXLIB_GUI_NODE_DISPLAYER_H_
Dxlibを使ったGUIの抽象クラス.
ノードの情報を表示するGUIのクラス.
void SetNode(const RobotStateNode &node) override
ノードをセットする.
void Draw() const override
GUIの描画.
void Update() override
GUIの更新,毎フレーム実行すること.
DxLibのGuiやRendererでノードのセットを行うためのインターフェース.
グラフ構造のためのノード(頂点).旧名 LNODE