-
Notifications
You must be signed in to change notification settings - Fork 114
Expand file tree
/
Copy pathMenu.h
More file actions
106 lines (84 loc) · 1.77 KB
/
Menu.h
File metadata and controls
106 lines (84 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#pragma once
///
/// メニューの描画クラスの定義
///
/// @file
/// @author Kohe Tokoi
/// @date August 15, 2025
///
// 宿題用補助プログラムのラッパー
#include "GgApp.h"
// 構成データ
#include "Config.h"
// ファイルダイアログ
#include "nfd.h"
///
/// メニューの描画
///
class Menu
{
// 図形の描画クラスから参照する
friend class Scene;
// オリジナルの構成データ
const Config& defaults;
// 構成データのコピー
Config settings;
// 光源データ
std::unique_ptr<const GgSimpleShader::LightBuffer> light;
// シェーダ
std::unique_ptr<const GgSimpleShader> shader;
// CAD データ
std::unique_ptr<const GgSimpleObj> model;
// ファイルパスを取得する
bool getFilePath(std::string& path, const nfdfilteritem_t* filter);
public:
///
/// コンストラクタ
///
Menu(const Config& config);
///
/// コピーコンストラクタは使用しない
///
Menu(const Menu& menu) = delete;
///
/// ムーブコンストラクタはデフォルトのものを使用する
///
Menu(Menu&& menu) = default;
///
/// デストラクタ.
///
virtual ~Menu();
///
/// 代入演算子は使用しない
///
Menu& operator=(const Menu& menu) = delete;
///
/// ムーブ代入演算子はデフォルトのものを使用する
///
Menu& operator=(Menu&& menu) = default;
///
/// 光源データを取り出す
///
const auto& getLight() const
{
return *light;
}
///
/// シェーダを取り出す
///
const auto& getShader() const
{
return *shader;
}
///
/// モデルデータを取り出す
///
const auto& getModel() const
{
return *model;
}
///
/// 描画する
///
void draw();
};