OROCHI
 
Loading...
Searching...
No Matches
GxObjectHit.h
Go to the documentation of this file.
1//===========================================================================
12//===========================================================================
13#pragma once
14
16//===========================================================================
18//===========================================================================
20{
21 //-------------------------------------------------------------
23 //-------------------------------------------------------------
25public:
26 // RTTI定義
27 GX_RTTI_CLASS( GxObjectHit, GxAdjustHit )
28 // GxClassBase継承クラス用禁止宣言
30
31
32 static const GxColor COLOR_OBJECT;
33
34 class GxWorld;
35 class GxObject;
36
38 struct GxConvexCallback;
39
40protected:
43 {
44 OLD_POSITION,
45 THROUGH_ONCE,
46 THROUGH_ONCE_OLD,
47 };
48
50 //-------------------------------------------------------------
52 //-------------------------------------------------------------
54public:
56 GxObjectHit(void);
58 ~GxObjectHit(void) override;
59
61 //-----------------------------------------------------------
63 //-----------------------------------------------------------
65
67 GxCollision::GxObject* allocObject(void) override;
68
70 GxObject* getObject(u32 index);
71
72#if GX_DEVELOP
74 void developDrawObject( const GxColor& color = GxColor::WHITE, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::WIRE ) override;
76 GX_FORCE_INLINE static void setDevDrawObjectHit( b32 display ) { getGxSysMain()->setDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_OBJECT_HIT, display); }
78 GX_FORCE_INLINE static b32 getDevDrawObjectHit( void ) { return getGxSysMain()->isOnDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_OBJECT_HIT); }
79#endif // GX_DEVELOP
80
81protected:
84
86 //-----------------------------------------------------------
88 //-----------------------------------------------------------
90private:
92
94};
95
96//===========================================================================
98//===========================================================================
100{
101 //-------------------------------------------------------------
103 //-------------------------------------------------------------
105public:
107 // GxClassBase継承クラス用禁止宣言
109
110
111 //-----------------------------------------------------------
113 //-----------------------------------------------------------
115
117 GxWorld(void);
119 ~GxWorld( void ) override;
120
122 //-----------------------------------------------------------
124 //-----------------------------------------------------------
126
131 GxCollision::GxConvexCallback* createConvexCallback( const btVector3& checkFrom, const btVector3& checkEnd, GxConditionInformation* pConditionInfo ) override;
132
134 b32 checkCapsuleClosestVsWorldPass( GxCollision::GxRayResult& rayResult, GxObject* pPassObject, const GxVector3& startPosition, const GxVector3& endPosition, f32 radius, GxConditionInformationObjectHit* pConditionInfo = nullptr );
135
136protected:
138 f32 calculateAdjustRate( GxAdjustHit::GxObject* pObjectA, GxAdjustHit::GxObject* pObjectB ) override;
139
141};
142
143//===========================================================================
145//===========================================================================
147{
148 //-------------------------------------------------------------
150 //-------------------------------------------------------------
152public:
153 // RTTI定義
155 // GxClassBase継承クラス用禁止宣言
157
158protected:
168public:
172 {
173 ATTRIBUTE_NO_ADJUST = (1L << static_cast<s32>(SHIFT::NO_ADJUST)),
174 };
175
178 enum class TYPE
179 {
180 NORMAL = 0,
181 ERROR_,
182 MAX,
183 };
184#if GX_DEVELOP
186 GX_ENUM_TABLE_MAX(TYPE)
187#endif //GX_DEVELOP
188
190 //-----------------------------------------------------------
192 //-----------------------------------------------------------
194
196 GxObject(void);
197
199 ~GxObject( void ) override;
200
202 //-----------------------------------------------------------
204 //-----------------------------------------------------------
206
207#if GX_DEVELOP
209 static GxGuiBase* createGui(GxProperty& prop, GxTypedObject* pOwner, const GxRtti& rtti, u32 index = 0);
210#endif // GX_DEVELOP
211
213 //-----------------------------------------------------------
215 //-----------------------------------------------------------
217
219 constexpr TYPE getType(void) const { return _type; }
221 constexpr void setType(TYPE type) { _type = type; }
222
224 //-----------------------------------------------------------
226 //-----------------------------------------------------------
228private:
229 TYPE _type;
230
232};
233
234//===========================================================================
236//===========================================================================
238{
239 //-------------------------------------------------------------
241 //-------------------------------------------------------------
243public:
244 // RTTI定義
246
247
248 //-----------------------------------------------------------
250 //-----------------------------------------------------------
252
255
257 //-----------------------------------------------------------
259 //-----------------------------------------------------------
261
263
265};
266
267//===========================================================================
272//===========================================================================
274{
275 //-----------------------------------------------------------
277 //-----------------------------------------------------------
279public:
281 GxConvexCallback( const btVector3& rayFromWorld,const btVector3& rayToWorld, GxConditionInformation* pConditionInfo )
282 : GxCollision::GxConvexCallback( rayFromWorld, rayToWorld, pConditionInfo )
283 {}
284
286 //-----------------------------------------------------------
288 //-----------------------------------------------------------
290
296 bool needsCollision(btBroadphaseProxy* pProxy) const override;
297
299};
300
301GX_PHYSICS_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
void GxTypedObject
その他
Definition GxDefine.h:213
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
PRIMITIVE_FILL_MODE
塗りつぶしモード
Definition GxPrimitive.h:31
@ WIRE
ワイヤーフレーム
背景あたりオブジェクトクラス
Definition GxAdjustHit.h:266
@ ADJUST_HIT_MAX
補正当たり最大数
背景あたりワールドクラス
Definition GxAdjustHit.h:170
補正あたりクラス
Definition GxAdjustHit.h:18
Definition GxCollision.h:806
Collision基本オブジェクトクラス
Definition GxCollision.h:489
コリジョン基本クラス
Definition GxCollision.h:20
判定条件
Definition GxObjectHit.h:238
GxObjectHit::GxObject * _pPassObject
チェックしないオブジェクト
Definition GxObjectHit.h:262
オブジェクトあたりオブジェクトクラス
Definition GxObjectHit.h:147
SHIFT
属性定義用シフト量定義
Definition GxObjectHit.h:161
constexpr void setType(TYPE type)
タイプの設定
Definition GxObjectHit.h:221
~GxObject(void) override
デストラクタ
Definition GxObjectHit.cpp:208
TYPE
Definition GxObjectHit.h:179
constexpr TYPE getType(void) const
タイプの取得
Definition GxObjectHit.h:219
GxObject(void)
デフォルトコンストラクタ
Definition GxObjectHit.cpp:200
ATTRIBUTE
Definition GxObjectHit.h:172
@ ATTRIBUTE_NO_ADJUST
補正されない属性
Definition GxObjectHit.h:173
オブジェクトあたりワールドクラス
Definition GxObjectHit.h:100
GxWorld(void)
デフォルトコンストラクタ
Definition GxObjectHit.cpp:105
f32 calculateAdjustRate(GxAdjustHit::GxObject *pObjectA, GxAdjustHit::GxObject *pObjectB) override
補正割合の計算
Definition GxObjectHit.cpp:163
GxCollision::GxConvexCallback * createConvexCallback(const btVector3 &checkFrom, const btVector3 &checkEnd, GxConditionInformation *pConditionInfo) override
Definition GxObjectHit.cpp:129
b32 checkCapsuleClosestVsWorldPass(GxCollision::GxRayResult &rayResult, GxObject *pPassObject, const GxVector3 &startPosition, const GxVector3 &endPosition, f32 radius, GxConditionInformationObjectHit *pConditionInfo=nullptr)
指定オブジェクトに当たらない、登録されている全メッシュ形状とのカプセルチェック(最も近い交差点)
Definition GxObjectHit.cpp:144
~GxWorld(void) override
デストラクタ
Definition GxObjectHit.cpp:115
オブジェクトあたりクラス
Definition GxObjectHit.h:20
ADJUST_FLAG_INDEX
調整フラグインデックス定義
Definition GxObjectHit.h:43
const GxVector3 calculateOldPositionAdjustVector(void)
OLD->POS補正ベクトルの取得
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
Definition GxCollision.h:898
レイ判定情報
Definition GxCollision.h:945
Definition GxColor.h:21
static const GxColor WHITE
Definition GxColor.h:37
インデックス指定型フラグ
Definition GxStruct.h:1294
Definition GxObjectHit.h:274
GxConvexCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, GxConditionInformation *pConditionInfo)
コンストラクタ
Definition GxObjectHit.h:281
bool needsCollision(btBroadphaseProxy *pProxy) const override
Definition GxObjectHit.cpp:261
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173