OROCHI
 
Loading...
Searching...
No Matches
GxToolPlayLog.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12#if GX_EDITOR
13
14GX_UTILITY_NAMESPACE_BEGIN()
15
16//===========================================================================
18//===========================================================================
19class GxToolPlayLog : public GxToolResourceEditBase
20{
21 //-------------------------------------------------------------
23 //-------------------------------------------------------------
25public:
26 // RTTI定義
27 GX_RTTI_CLASS_NAME_ICON(GxToolPlayLog, GxToolResourceEditBase, "プレイログプロジェクト編集", GxRtti::ICON_TYPE::UTILITY)
28 // GxClassBaseReference継承クラス用禁止宣言
30
31 class GxGuiScreenShot;
32 class GxGuiStage;
33 class GxGuiPreview;
34
36 //-----------------------------------------------------------
38 //-----------------------------------------------------------
40
42 GxToolPlayLog(void);
44 void cleanup(void) override;
46 b32 initialize(void) override;
47
49 //-----------------------------------------------------------
51 //-----------------------------------------------------------
53
55 void update(void) override;
57 void setResource(GxResBase* pResource) override;
58
60 //-----------------------------------------------------------
62 //-----------------------------------------------------------
64public:
66 GX_FORCE_INLINE GxResPlayLogProjectJson* getResource(void) const { return static_cast<GxResPlayLogProjectJson*>(Super::getResource()); }
68 constexpr GxUnitCameraBase* getCamera(void) const { return _pCamera; }
70 constexpr u32 getScreenshotNumber(void) const { return _screenshotNumber; }
72 constexpr void setScreenshotNumber(u32 number) { _screenshotNumber = number; }
73private:
75 GxResPlayLogProject::GxStage* addStage(void);
77 void eraseStage(void* pStage);
79 void setStageTable(void);
80
82 //-----------------------------------------------------------
84 //-----------------------------------------------------------
86private:
87 GxResPlayLogProject::GxStage* _pSelectStage;
88 GxGuiScreenShot* _pScreenShot;
89 GxGuiStage* _pStageTable;
90 GxGuiPreview* _pPreview;
91 GxGuiSplitter* _pSplitter;
92 GxGuiSplitter* _pSplitter2;
93 GxUnitCameraBase* _pCamera;
94 u32 _screenshotNumber;
95
97};
98
99//===========================================================================
101//===========================================================================
102class GxToolPlayLog::GxGuiScreenShot : public GxGuiForm
103{
104 //-----------------------------------------------------------
106 //-----------------------------------------------------------
108public:
109 // RTTI定義
110 GX_RTTI_CLASS(GxGuiScreenShot, GxGuiForm)
111 // GxClassBaseReference継承クラス用禁止宣言
112 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxGuiScreenShot)
113
114
115 //-----------------------------------------------------------
117 //-----------------------------------------------------------
119public:
121 GxGuiScreenShot(GxToolPlayLog* pOwner);
123 b32 initialize(void) override;
125 void update(void) override;
126private:
128 GxGuiScreenShot(void) : _pOwner(nullptr) {}
129
131 //-----------------------------------------------------------
133 //-----------------------------------------------------------
135private:
137 void pushButtonUnit(void);
139 void pushButtonCamera(void);
141 void pushButtonZoomIn(void);
143 void pushButtonZoomOut(void);
145 void pushButtonScreenShot(void);
146
148 //-----------------------------------------------------------
150 //-----------------------------------------------------------
152private:
153 GxToolPlayLog* _pOwner;
154 f32 _zoomMax;
155 GxVector3 _offset;
156 AXIS _axis;
157 AXIS _axisBefore;
158 f32 _captureTimer;
159
161};
162
163//===========================================================================
165//===========================================================================
166class GxToolPlayLog::GxGuiStage : public GxGuiPropertyTable
167{
168 //-----------------------------------------------------------
170 //-----------------------------------------------------------
172public:
173 // RTTI定義
174 GX_RTTI_CLASS(GxGuiStage, GxGuiPropertyTable)
175 // GxClassBaseReference継承クラス用禁止宣言
177
178
179 //-----------------------------------------------------------
181 //-----------------------------------------------------------
183private:
185 GxGuiStage(void) : _pOwner(nullptr) {}
186public:
188 GxGuiStage(const GxProperty& property, GxTypedObject* pObject, GxToolPlayLog* pOwner);
189
191 //-----------------------------------------------------------
193 //-----------------------------------------------------------
195
197 void onClick(const GxPoint2& position, u32 button) override;
199 void createPopupMenu(const GxPoint2& position);
201 void eventPopupDelete(void* pObject);
202
204 //-----------------------------------------------------------
206 //-----------------------------------------------------------
208private:
209 GxToolPlayLog* _pOwner;
210
212};
213
214//===========================================================================
216//===========================================================================
217class GxToolPlayLog::GxGuiPreview : public GxGuiFormTexture
218{
219 //-----------------------------------------------------------
221 //-----------------------------------------------------------
223public:
224 // RTTI定義
225 GX_RTTI_CLASS(GxGuiPreview, GxGuiFormTexture)
226 // GxClassBaseReference継承クラス用禁止宣言
228
229
230 //-----------------------------------------------------------
232 //-----------------------------------------------------------
234private:
236 GxGuiPreview(void) : _pOwner(nullptr), _pResTexture(nullptr){}
237public:
239 GxGuiPreview(GxToolPlayLog* pOwner);
241 void cleanup(void) override;
242
244 //-----------------------------------------------------------
246 //-----------------------------------------------------------
248
250 void update(void) override;
252 void updatePreview(GxResPlayLogProject::GxStage* pStage);
253
255 //-----------------------------------------------------------
257 //-----------------------------------------------------------
259private:
260 GxToolPlayLog* _pOwner;
261 GxResTexture* _pResTexture;
262
264};
265
266GX_UTILITY_NAMESPACE_END()
267
268#endif // GX_EDITOR
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
AXIS
軸方向
Definition GxMath.h:37
プロパティクラス
Definition GxProperty.h:48
リソース基底クラス
Definition GxResBase.h:23
テクスチャリソース
Definition GxResTexture.h:23
カメラ基礎クラス
Definition GxUnitCameraBase.h:20
座標
Definition GxStruct.h:867
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173