17#define USE_OBJ_ADJUST 1
86 void update(
void)
override;
96 GX_FORCE_INLINE
static void setDevelopDrawBackgroundHitObject(
b32 display) { getGxSysMain()->setDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_BACKGROUND_HIT_OBJECT, display); }
98 GX_FORCE_INLINE
static void setDevelopDrawBackgroundHitMesh(
b32 display) { getGxSysMain()->setDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_BACKGROUND_HIT_MESH, display); }
101 GX_FORCE_INLINE
static b32 getDevelopDrawBackgroundHitObject(
void) {
return getGxSysMain()->isOnDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_BACKGROUND_HIT_OBJECT); }
103 GX_FORCE_INLINE
static b32 getDevelopDrawBackgroundHitMesh(
void) {
return getGxSysMain()->isOnDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_BACKGROUND_HIT_MESH); }
141 b32 _isAdjustedObjectHit;
235 GX_ENUM_TABLE_MAX(
TYPE)
412GX_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
背景あたりオブジェクトクラス
Definition GxAdjustHit.h:266
背景あたりワールドクラス
Definition GxAdjustHit.h:170
補正あたりクラス
Definition GxAdjustHit.h:18
static f32 _checkMargin
判定用マージン
Definition GxAdjustHit.h:156
背景あたりオブジェクトクラス
Definition GxBackgroundHit.h:211
GxVector3 checkOldPositionMultisphere(const GxVector3 &adjustVector, const GxVector3 &moveVector)
マルチ球の専用追加補正処理
GROUP
Definition GxBackgroundHit.h:243
@ GROUP_OBJECT
オブジェクト側のあたり
Definition GxBackgroundHit.h:244
@ GROUP_BACKGROUND
背景側のあたり
Definition GxBackgroundHit.h:245
GxVector3 checkOldPositionCapsule(const GxVector3 &adjustVector, const GxVector3 &moveVector)
カプセルの専用追加補正処理
TYPE
Definition GxBackgroundHit.h:227
~GxObject(void) override
デストラクタ
Definition GxBackgroundHit.cpp:343
GxObject(void)
デフォルトコンストラクタ
Definition GxBackgroundHit.cpp:335
constexpr TYPE getType(void) const
タイプの取得
Definition GxBackgroundHit.h:267
void setType(TYPE type)
Definition GxBackgroundHit.cpp:353
背景あたりワールドクラス
Definition GxBackgroundHit.h:150
~GxWorld(void) override
解放
Definition GxBackgroundHit.cpp:200
GxCollision::GxRayCallback * createRayCallback(const btVector3 &rayFrom, const btVector3 &rayEnd, GxConditionInformation *pConditionInfo) override
Definition GxBackgroundHit.cpp:226
b32 checkRayClosestVsTrimesh(GxCollision::GxRayResult &rayResult, const GxVector3 &startPosition, const GxVector3 &endPosition, GxConditionInformationBackgroundHit *pConditionInfo=nullptr)
登録されている全メッシュ形状とのレイチェック(最も近い交差点)
Definition GxBackgroundHit.cpp:239
GxWorld(void)
デフォルトコンストラクタ
Definition GxBackgroundHit.cpp:190
GxCollision::GxConvexCallback * createConvexCallback(const btVector3 &checkFrom, const btVector3 &checkEnd, GxConditionInformation *pConditionInfo) override
Definition GxBackgroundHit.cpp:262
f32 calculateAdjustRate(GxAdjustHit::GxObject *pObjectA, GxAdjustHit::GxObject *pObjectB) override
補正割合の計算
Definition GxBackgroundHit.cpp:296
void postCheck(void) override
check後処理
Definition GxBackgroundHit.cpp:207
b32 checkCapsuleClosestVsTrimesh(GxCollision::GxRayResult &rayResult, const GxVector3 &startPosition, const GxVector3 &endPosition, f32 radius, GxConditionInformationBackgroundHit *pConditionInfo=nullptr)
登録されている全メッシュ形状とのカプセルチェック(最も近い交差点)
Definition GxBackgroundHit.cpp:276
背景あたりクラス
Definition GxBackgroundHit.h:23
void checkOldPosition(GxRayResult &result, const GxVector3 &moveVector, const GxVector3 &offset, GxCollision::GxConditionInformation *pCondition=nullptr) override
現在位置と前回位置の貫通チェック
Definition GxBackgroundHit.cpp:71
GX_FORCE_INLINE void getPropertyCheckMargin(void *const pValue) const
当たり判定マージン取得
Definition GxBackgroundHit.h:128
GxBackgroundHit(void)
デフォルトコンストラクタ
Definition GxBackgroundHit.cpp:31
GX_FORCE_INLINE void setPropertyCheckMargin(const void *const pValue)
当たり判定マージン設定
Definition GxBackgroundHit.h:130
void executePostCheckCallback(void) override
チェック後コールバック関数の呼び出し
Definition GxBackgroundHit.cpp:128
GxObject * getObject(u32 index)
指定インデックスのオブジェクトを取得
Definition GxBackgroundHit.cpp:59
GX_FORCE_INLINE const GxVector3 & getObjectHitAdjust(void) const
オブジェクトあたり補正ベクトルを取得
Definition GxBackgroundHit.h:115
GX_FORCE_INLINE b32 isAdjustedObjectHit(void) const
オブジェクトあたり補正結果取得
Definition GxBackgroundHit.h:119
~GxBackgroundHit(void) override
デストラクタ
Definition GxBackgroundHit.cpp:41
static const GxColor COLOR_OBJECT
描画色
Definition GxBackgroundHit.h:35
GX_FORCE_INLINE void resetObjectHitAdjust(void)
オブジェクトあたり補正結果リセット
Definition GxBackgroundHit.h:117
ADJUST_FLAG_INDEX
補正用フラグ
Definition GxBackgroundHit.h:47
@ THROUGH_ONCE_OLD
前回、一度スルーするフラグが立っていたかどうか
@ THROUGH_ONCE
OLD~POSの補正を一度スルーする
@ OLD_POS
OLD~POSで補正した直後(calcAdjustVector()で返す値はOLD~POSのベクトル)
GxCollision::GxObject * allocObject(void) override
オブジェクトのメモリ確保
Definition GxBackgroundHit.cpp:49
const GxVector3 & calculateAdjustVector(void) override
当たり判定後の補正処理
Definition GxBackgroundHit.cpp:86
GX_FORCE_INLINE void addObjectHitAdjust(const GxVector3 &adjust)
オブジェクトあたり補正ベクトルを設定
Definition GxBackgroundHit.h:113
void update(void) override
位置の更新
Definition GxBackgroundHit.cpp:100
Collision基本オブジェクトクラス
Definition GxCollision.h:489
コリジョン基本クラス
Definition GxCollision.h:20
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
Definition GxBackgroundHit.h:385
bool needsCollision(btBroadphaseProxy *pProxy) const override
Definition GxBackgroundHit.cpp:455
GxConvexCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, GxConditionInformation *pConditionInfo)
コンストラクタ
Definition GxBackgroundHit.h:392
Definition GxBackgroundHit.h:351
GxRayCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, GxConditionInformation *pConditionInfo)
コンストラクタ
Definition GxBackgroundHit.h:358
bool needsCollision(btBroadphaseProxy *pProxy) const override
Definition GxBackgroundHit.cpp:419
Definition GxCollision.h:898
Definition GxCollision.h:848
レイ判定情報
Definition GxCollision.h:945
static const GxColor WHITE
白
Definition GxColor.h:37
インデックス指定型フラグ
Definition GxStruct.h:1294
3次元ベクトル
Definition GxVector.h:245
static const GxVector3 ZERO
(0, 0, 0)
Definition GxVector.h:256
32bitブーリアン
Definition GxDefine.h:173