OROCHI
 
Loading...
Searching...
No Matches
GxResCamera.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13GX_CORE_NAMESPACE_BEGIN()
14
15//===========================================================================
17//===========================================================================
18class GxResCamera : public GxResBase
19{
20 //-----------------------------------------------------------
22 //-----------------------------------------------------------
24public:
25 // Rtti定義
27 // ClassBaseReference継承クラス用禁止宣言
29
30
31 struct GxCameraData : public GxStructBase
32 {
33 //-----------------------------------------------------------
35 //-----------------------------------------------------------
37 public:
38 // Rtti定義
39 GX_RTTI_STRUCT(GxCameraData)
40
41
42 //-----------------------------------------------------------
44 //-----------------------------------------------------------
46
48 GxCameraData(void) { GX_MEMSET(this, 0, sizeof(GxCameraData)); _deltaTime = -1.f; }
49
51 //-----------------------------------------------------------
53 //-----------------------------------------------------------
55 public:
61 f32 _fov;
63 f32 _nearZ;
64 f32 _farZ;
65
67 };
68
70 //-----------------------------------------------------------
72 //-----------------------------------------------------------
74public:
77 : _pFinalizedData(nullptr)
78 , _finalizedDataSize(0)
79 {}
80
82 void cleanup(void) override;
83
85 //-----------------------------------------------------------
87 //-----------------------------------------------------------
89public:
91 b32 load(GxStream& stream, u32 dataSize);
92#if GX_DEVELOP
94 b32 save(GxStream& stream);
95#endif // GX_DEVELOP
96
98 //-----------------------------------------------------------
100 //-----------------------------------------------------------
102protected:
105
107};
108
109#if GX_DEVELOP
110//===========================================================================
112//===========================================================================
113class GxResCameraXml : public GxResCamera
114{
115 //-----------------------------------------------------------
117 //-----------------------------------------------------------
119public:
120 // RTTI定義
121 GX_RTTI_RESOURCE(GxResCameraXml, GxResCamera)
122 // ClassBaseReference継承クラス用禁止宣言
124
125
126 static constexpr u32 CAMERA_DATA_MAX = GxMath::VALUE_128;
127
129 //-----------------------------------------------------------
131 //-----------------------------------------------------------
133public:
135 GxResCameraXml(void) {}
136
138 //-----------------------------------------------------------
140 //-----------------------------------------------------------
142public:
147 GX_FORCE_INLINE virtual b32 load(GxStream& stream, u32 /*dataSize*/) { return loadXml(stream); }
148
152 GX_FORCE_INLINE virtual b32 save(GxStream& stream) { return saveXml(stream, GX_RTTI); }
153
155 b32 finalize(void);
156
158 //-----------------------------------------------------------
160 //-----------------------------------------------------------
162private:
163 GxCameraData _cameraData[CAMERA_DATA_MAX];
164
166};
167#endif // GX_DEVELOP
168
169GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_RTTI_RESOURCE(__THIS__, __BASE__)
リソースクラス型情報宣言
Definition GxRttiResource.h:102
static constexpr u32 VALUE_128
128
Definition GxMath.h:126
リソース基底クラス
Definition GxResBase.h:23
カメラリソースクラス
Definition GxResCamera.h:19
b32 load(GxStream &stream, u32 dataSize)
リソース読み込み
Definition GxResCamera.cpp:42
GxResCamera(void)
コンストラクタ
Definition GxResCamera.h:76
u32 _finalizedDataSize
ファイナライズデータサイズ
Definition GxResCamera.h:104
void * _pFinalizedData
ファイナライズデータバッファ
Definition GxResCamera.h:103
@ UNIT_CAMERA
カメラユニット
ストリーム基礎クラス
Definition GxStream.h:20
カメラデータ構造体
Definition GxResCamera.h:32
GxVector3 _up
上方向ベクトル
Definition GxResCamera.h:59
GxVector3 _lookAt
注視点位置
Definition GxResCamera.h:58
f32 _screenZ
投影面までのZ距離
Definition GxResCamera.h:62
f32 _fov
視野角 (ラジアン)
Definition GxResCamera.h:61
f32 _deltaTime
経過時間
Definition GxResCamera.h:56
f32 _aspectRetio
アスペクト比 (幅/高さ)
Definition GxResCamera.h:60
f32 _farZ
遠クリップ面までのZ距離
Definition GxResCamera.h:64
f32 _nearZ
近クリップ面までのZ距離
Definition GxResCamera.h:63
GxVector3 _position
カメラ位置
Definition GxResCamera.h:57
Definition GxBase.h:24
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173