OROCHI
 
Loading...
Searching...
No Matches
GxUnitCameraBase.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CORE_NAMESPACE_BEGIN()
13
14class GxToolUnitProperty;
15
16//===========================================================================
18//===========================================================================
20{
21 //-----------------------------------------------------------
23 //-----------------------------------------------------------
25public:
26 GX_RTTI_CLASS_NAME_ICON(GxUnitCameraBase, GxUnitLocate, "カメラ基礎", GxRtti::ICON_TYPE::UNIT_CAMERA)
27 // ClassBaseReference継承クラス用禁止宣言
29
30
31 //-----------------------------------------------------------
33 //-----------------------------------------------------------
35
37 GxUnitCameraBase(void);
38
40 //-----------------------------------------------------------
42 //-----------------------------------------------------------
44protected:
46 b32 setup(void) override;
48 void asyncUpdate(void) override;
50 void postAsyncUpdate(void) override;
52 void forceAsyncUpdate(void) override;
53public:
55 virtual void updateMatrix(void);
57 void focusUnit(void);
59 void focusUnit(GxUnitLocate* pUnit);
60private:
62 void updateUpVector(void);
63
65#if GX_DEVELOP
66 //-----------------------------------------------------------
68 //-----------------------------------------------------------
70public:
72 void iconRender(void) override;
73
75 void setExpandToolUnitProperty( GxToolUnitProperty* pTool ) override;
76
78#endif //GX_DEVELOP
79 //-----------------------------------------------------------
81 //-----------------------------------------------------------
83public:
85 void setViewport(void);
86
88 GX_FORCE_INLINE const GxVector3& getLookAt(void) const { return _lookAt; }
90 void setLookAt(const GxVector3& lookAt);
92 GX_FORCE_INLINE const GxVector3& getUp(void) const { return _up; }
94 void setUp(const GxVector3& up);
96 constexpr f32 getAspectRatio(void) const { return _aspectRatio; }
98 constexpr void setAspectRatio(f32 aspect){ _aspectRatio = aspect; }
100 constexpr f32 getFov(void) const { return _fov; }
102 constexpr void setFov(f32 fov){ _fov = fov; }
104 constexpr f32 getNearZ(void) const { return _nearZ; }
106 constexpr void setNearZ(f32 nearZ){ _nearZ = nearZ; }
108 constexpr f32 getFarZ(void) const { return _farZ; }
110 constexpr void setFarZ(f32 farZ){ _farZ = farZ; }
112 GX_FORCE_INLINE const GxMatrixAffine& getViewMatrix(void) const { return _viewMatrix; }
114 GX_FORCE_INLINE void setViewMatrix(const GxMatrixAffine& matrix){ _viewMatrix = matrix; }
116 GX_FORCE_INLINE const GxMatrix44& getProjectionMatrix(void) const { return _projectionMatrix; }
118 GX_FORCE_INLINE const void setProjectionMatrix(const GxMatrix44& matrix) { _projectionMatrix = matrix; }
120 constexpr RENDER_VIEW getViewportIndex(void) const { return _viewportIndex; }
122 constexpr void clearViewportIndex(void){ _viewportIndex = RENDER_VIEW::INVALID; }
124 GxMatrix44 getOrthoMatrix(void) const;
126 constexpr void setOrthoMatrixScale(f32 scale){ _orthoMatrixScale = scale; }
128 constexpr f32 getOrthoMatrixScale(void){ return _orthoMatrixScale; }
130 b32 isHitSphere(f32 radius, const GxVector3& position) const;
132 b32 isHitSphere(const GxShapeSphere& sphere ) const;
134 constexpr void setSetViewportIndex(RENDER_VIEW view) { _setViewportIndex = view; }
136 constexpr RENDER_VIEW getSetViewportIndex(void) const { return _setViewportIndex; }
137
139 GX_FORCE_INLINE void setOffset(const GxVector2& offset){ _offset = offset; }
141 GX_FORCE_INLINE const GxVector2& getOffset(void) const { return _offset; }
142
143protected:
144 // 視錐台形状の更新
145 void updateEyeFrustumParameter(void);
146
148 //-----------------------------------------------------------
150 //-----------------------------------------------------------
152private:
153 GxVector3 _lookAt;
154 GxVector3 _up;
155 GxVector3 _upOld;
156
157 f32 _aspectRatio;
158 f32 _fov;
159 f32 _nearZ;
160 f32 _farZ;
161
162 GxMatrixAffine _viewMatrix;
163 GxMatrix44 _projectionMatrix;
164
165 RENDER_VIEW _viewportIndex;
166 RENDER_VIEW _setViewportIndex;
167
168 b32 _setCamera;
169
170 f32 _orthoMatrixScale;
171 GxVector2 _offset;
172
173protected:
175
177};
178
179GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
RENDER_VIEW
描画優先度(ビュー)
Definition GxRender.h:442
@ INVALID
無効なビュー
@ UNIT_CAMERA
カメラユニット
角錐台
Definition GxShape.h:531
球形状クラス
Definition GxShape.h:240
カメラ基礎クラス
Definition GxUnitCameraBase.h:20
constexpr void setOrthoMatrixScale(f32 scale)
正射影行列のスケール値を設定
Definition GxUnitCameraBase.h:126
GxShapeFrustum _eyeFrustum
視錐台
Definition GxUnitCameraBase.h:174
constexpr void setAspectRatio(f32 aspect)
アスペクト比設定
Definition GxUnitCameraBase.h:98
GX_FORCE_INLINE void setViewMatrix(const GxMatrixAffine &matrix)
視点行列の設定
Definition GxUnitCameraBase.h:114
constexpr f32 getAspectRatio(void) const
アスペクト比取得
Definition GxUnitCameraBase.h:96
GX_FORCE_INLINE const GxMatrix44 & getProjectionMatrix(void) const
透視投影行列の取得
Definition GxUnitCameraBase.h:116
constexpr f32 getFov(void) const
視野角取得
Definition GxUnitCameraBase.h:100
GX_FORCE_INLINE const void setProjectionMatrix(const GxMatrix44 &matrix)
透視投影行列の設定
Definition GxUnitCameraBase.h:118
GX_FORCE_INLINE const GxMatrixAffine & getViewMatrix(void) const
視点行列の取得
Definition GxUnitCameraBase.h:112
constexpr f32 getFarZ(void) const
遠クリップ面までの距離取得
Definition GxUnitCameraBase.h:108
GX_FORCE_INLINE const GxVector3 & getUp(void) const
上方向の基準ベクトル取得
Definition GxUnitCameraBase.h:92
constexpr void setNearZ(f32 nearZ)
近クリップ面までの距離設定
Definition GxUnitCameraBase.h:106
constexpr void clearViewportIndex(void)
ViewportIndexをINVALIDにする
Definition GxUnitCameraBase.h:122
constexpr RENDER_VIEW getSetViewportIndex(void) const
設定するVIEWのインデックスを取得
Definition GxUnitCameraBase.h:136
constexpr RENDER_VIEW getViewportIndex(void) const
設定されているVIEWのインデックスを取得
Definition GxUnitCameraBase.h:120
GX_FORCE_INLINE const GxVector2 & getOffset(void) const
射影行列用オフセット取得
Definition GxUnitCameraBase.h:141
GX_FORCE_INLINE const GxVector3 & getLookAt(void) const
注視点取得
Definition GxUnitCameraBase.h:88
constexpr f32 getOrthoMatrixScale(void)
正射影行列のスケール値を設定
Definition GxUnitCameraBase.h:128
constexpr void setFarZ(f32 farZ)
遠クリップ面までの距離設定
Definition GxUnitCameraBase.h:110
constexpr f32 getNearZ(void) const
近クリップ面までの距離取得
Definition GxUnitCameraBase.h:104
GX_FORCE_INLINE void setOffset(const GxVector2 &offset)
射影行列用オフセット設定
Definition GxUnitCameraBase.h:139
constexpr void setFov(f32 fov)
視野角設定
Definition GxUnitCameraBase.h:102
constexpr void setSetViewportIndex(RENDER_VIEW view)
設定するVIEWのインデックスを設定
Definition GxUnitCameraBase.h:134
座標ユニット基礎クラス
Definition GxUnitLocate.h:23
4×4行列(行優先)
Definition GxMatrix.h:607
アフィン変換行列(行優先)
Definition GxMatrix.h:330
2次元ベクトル
Definition GxVector.h:34
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173