OROCHI
 
Loading...
Searching...
No Matches
GxBackgroundHit Class Reference

背景あたりクラス More...

#include <GxBackgroundHit.h>

Inheritance diagram for GxBackgroundHit:
Collaboration diagram for GxBackgroundHit:

Classes

class  GxConditionInformationBackgroundHit
 判定条件 More...
 
struct  GxConvexCallback
 
class  GxObject
 背景あたりオブジェクトクラス More...
 
struct  GxRayCallback
 
class  GxWorld
 背景あたりワールドクラス More...
 

Public Member Functions

初期化
 GxBackgroundHit (void)
 デフォルトコンストラクタ
 
 ~GxBackgroundHit (void) override
 デストラクタ
 
操作
GxCollision::GxObjectallocObject (void) override
 オブジェクトのメモリ確保
 
GxObjectgetObject (u32 index)
 指定インデックスのオブジェクトを取得
 
void checkOldPosition (GxRayResult &result, const GxVector3 &moveVector, const GxVector3 &offset, GxCollision::GxConditionInformation *pCondition=nullptr) override
 現在位置と前回位置の貫通チェック
 
const GxVector3calculateAdjustVector (void) override
 当たり判定後の補正処理
 
void update (void) override
 位置の更新
 
void executePostCheckCallback (void) override
 チェック後コールバック関数の呼び出し
 
アクセサ
GX_FORCE_INLINE void addObjectHitAdjust (const GxVector3 &adjust)
 オブジェクトあたり補正ベクトルを設定
 
GX_FORCE_INLINE const GxVector3getObjectHitAdjust (void) const
 オブジェクトあたり補正ベクトルを取得
 
GX_FORCE_INLINE void resetObjectHitAdjust (void)
 オブジェクトあたり補正結果リセット
 
GX_FORCE_INLINE b32 isAdjustedObjectHit (void) const
 オブジェクトあたり補正結果取得
 
- Public Member Functions inherited from GxAdjustHit
virtual void initializeCheck (void)
 チェック時のパラメータ初期化(1フレーム1回)
 
GX_FORCE_INLINE const GxVector3getAdjustVector (void) const
 補正ベクトルの取得
 
GX_FORCE_INLINE b32 isNeedAdjust (const GxVector3 &vector)
 補正が必要か判定
 
GX_FORCE_INLINE b32 isAdjustEnd (void)
 補正が終了したか判定
 
GX_FORCE_INLINE void setAdjustEnd (b32 value)
 補正が終了したか設定
 
GX_FORCE_INLINE void setIsAdjustOldPositionThroughOnce (b32 value)
 Pos~Old間のチェックを一度スルーする設定
 
GX_FORCE_INLINE b32 isAdjustOldPositionThroughOnce (void) const
 Pos~Old間のチェックを一度スルーする判定
 
void onAttributeAll (u32 attribute)
 すべてのオブジェクトの属性をONにする
 
void offAttributeAll (u32 attribute)
 すべてのオブジェクトの属性をOFFにする
 
- Public Member Functions inherited from GxCollision
 GxCollision (void)
 デフォルトコンストラクタ
 
 ~GxCollision (void) override
 デストラクタ
 
void clearList (void)
 全オブジェクトをリストから削除
 
virtual GxObjectcreateSphere (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeSphere &sphere)
 球の作成
 
virtual GxObjectcreateBox (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeBox &box)
 ボックスの作成
 
virtual GxObjectcreateMultisphere (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1, const GxShapeMultisphere &multisphere)
 マルチ球の作成
 
virtual GxObjectcreateCylinder (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCylinder &cylinder)
 円柱の作成
 
virtual GxObjectcreateCapsule (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCapsule &capsule)
 カプセルの作成
 
virtual GxObjectcreateMesh (u32 index, b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btTriangleIndexVertexArray *pVertex, b32 isCompress=true, GxVector3 *pAabbMin=nullptr, GxVector3 *pAabbMax=nullptr)
 背景メッシュの作成
 
virtual GxObjectcreateMesh (u32 index, b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btBvhTriangleMeshShape *pTrimeshShape)
 背景メッシュの作成
 
GxObjectgetObject (u32 index)
 指定インデックスのオブジェクトを取得
 
virtual void deleteObject (GxObject *pObject)
 オブジェクトを削除する
 
virtual void detachObject (GxObject *pObject)
 オブジェクトをリストから切り離す
 
virtual void initialize (GxWorld *pRegistWorld, GxUnitBase *pUnit, GxCollision::COLLISION_CALLBACK pCallback, u32 threadIndex)
 初期設定(スレッドセーフ)
 
virtual void prepareCheck (void)
 当たり判定チェック前準備
 
constexpr GxWorldgetWorld (void) const
 登録ワールドの取得
 
constexpr GxUnitBasegetUnit (void) const
 登録ユニットの取得
 
GX_FORCE_INLINE void setHitCallback (GxCollision::COLLISION_CALLBACK pCallback)
 コールバックを設定
 
GX_FORCE_INLINE b32 isActive (void) const
 アクティブ判定
 
void setActive (b32 active)
 アクティブ状態の設定
 
constexpr u32 getObjectCount (void) const
 登録オブジェクトの個数を取得
 
GX_FORCE_INLINE void getPropertyActive (void *const pValue)
 アクティブを取得
 
GX_FORCE_INLINE void setPropertyActive (const void *const pValue)
 アクティブを設定
 
GX_FORCE_INLINE void getPropertyObject (void *const pValue, u32 index)
 当たりオブジェクトを取得
 
constexpr void setPropertyObject (const void *const, u32)
 当たりオブジェクトを設定
 
constexpr u32 getPropertyObjectCount (void) const
 当たりオブジェクト数を取得
 
constexpr void setPropertyObjectCount (u32)
 当たりオブジェクト数を設定
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 

Protected Member Functions

プロパティ
GX_FORCE_INLINE void getPropertyCheckMargin (void *const pValue) const
 当たり判定マージン取得
 
GX_FORCE_INLINE void setPropertyCheckMargin (const void *const pValue)
 当たり判定マージン設定
 
- Protected Member Functions inherited from GxAdjustHit
 GxAdjustHit (void)
 デフォルトコンストラクタ
 
 ~GxAdjustHit (void) override
 デストラクタ
 
GxObjectgetObject (u32 index)
 指定インデックスのオブジェクトを取得
 
void initializeActiveOn (void) override
 アクティブON時のパラメータ初期化
 
void initializeActiveOff (void) override
 アクティブOFF時のパラメータ初期化
 
void initializeUpdate (void) override
 更新前のパラメタ初期化
 
GX_FORCE_INLINE void setAdjustVector (const GxVector3 &vector)
 補正ベクトルの設定
 
GxCollision::GxObjectaddObject (void) override
 オブジェクトの追加
 
const GxVector3 calculateNormalAdjustVector (void)
 通常補正ベクトルを返す
 
void setObjectWeightAll (f32 weight)
 すべてのオブジェクトの重さ設定
 
GX_FORCE_INLINE void getPropertyCheckMargin (void *const pValue)
 当たり判定マージン取得
 
constexpr void setPropertyCheckMargin (const void *const pValue)
 当たり判定マージン設定
 
- Protected Member Functions inherited from GxCollision
constexpr void setWorldNull (void)
 登録ワールドの削除
 
GX_FORCE_INLINE void setOffsetAdjustVector (const GxVector3 &offset)
 押返しベクトルのオフセットを設定
 
GX_FORCE_INLINE GxVector3 getOffsetAdjustVector (void)
 押返しベクトルのオフセットを取得
 

定義

enum class  ADJUST_FLAG_INDEX {
  ON , END , OLD_POS , THROUGH_ONCE ,
  THROUGH_ONCE_OLD
}
 補正用フラグ More...
 
static const GxColor COLOR_OBJECT
 描画色
 

Additional Inherited Members

- Public Types inherited from GxCollision
enum class  COLLISION_SHAPE {
  ERROR_ = -1 , SPHERE = 0 , BOX , CYLINDER ,
  MULTISPHERE , TRIMESH , PLANE , RAY ,
  BEAM , CAPSULE , CONVEX , COMPOUND ,
  WHEEL , MAX
}
 コリジョン形状 More...
 
typedef void(GxClassBaseRoot::*) COLLISION_CALLBACK(void)
 コールバック定義
 
- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Attributes inherited from GxCollision
static const f32 BULLET_MARGIN = CONVEX_DISTANCE_MARGIN
 Bulletのマージン値
 
- Protected Types inherited from GxAdjustHit
enum class  ADJUST_FLAG_INDEX { END , THROUGH_ONCE , THROUGH_ONCE_OLD }
 補正用フラグ More...
 
- Static Protected Member Functions inherited from GxAdjustHit
static constexpr void setCheckMargin (f32 margin)
 当たり判定用マージン設定
 
static GX_FORCE_INLINE f32 getCheckMargin (void)
 当たり判定用マージン取得
 
- Protected Attributes inherited from GxCollision
GxWorld_pRegisterWorld
 親ワールド
 
COLLISION_CALLBACK _pCallback
 補正用コールバック
 
GxArrayClassBase _listObject
 オブジェクトのリスト
 
- Static Protected Attributes inherited from GxAdjustHit
static const f32 _distanceMin = 0.001f
 これ以上埋まっていないと補正しない
 
static const f32 _againstRadian = DEGREE_TO_RADIAN(180.0f-10.0f)
 反対方向に押されているのかどうか
 
static f32 _checkMargin = 0.01f
 判定用マージン
 

Detailed Description

背景あたりクラス

Member Enumeration Documentation

◆ ADJUST_FLAG_INDEX

enum class GxBackgroundHit::ADJUST_FLAG_INDEX
strongprotected

補正用フラグ

Enumerator
ON 

上に乗れる補正方向かどうか

END 

もう補正をしなくても良い

OLD_POS 

OLD~POSで補正した直後(calcAdjustVector()で返す値はOLD~POSのベクトル)

THROUGH_ONCE 

OLD~POSの補正を一度スルーする

THROUGH_ONCE_OLD 

前回、一度スルーするフラグが立っていたかどうか

Member Function Documentation

◆ allocObject()

GxCollision::GxObject * GxBackgroundHit::allocObject ( void )
overridevirtual

オブジェクトのメモリ確保

Returns
確保したオブジェクト

Reimplemented from GxAdjustHit.

◆ calculateAdjustVector()

const GxVector3 & GxBackgroundHit::calculateAdjustVector ( void )
overridevirtual

当たり判定後の補正処理

Reimplemented from GxAdjustHit.

Here is the call graph for this function:

◆ checkOldPosition()

void GxBackgroundHit::checkOldPosition ( GxRayResult & result,
const GxVector3 & moveVector,
const GxVector3 & offset,
GxCollision::GxConditionInformation * pCondition = nullptr )
overridevirtual

現在位置と前回位置の貫通チェック

Parameters
result[out] チェック結果格納先
moveVector[in] 移動距離
offset[in] チェック開始位置をpShape->getCenterPos()からどれだけずらすか
pCondition[in] チェック条件詳細( default = nullptr )

Reimplemented from GxAdjustHit.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ executePostCheckCallback()

void GxBackgroundHit::executePostCheckCallback ( void )
overridevirtual

チェック後コールバック関数の呼び出し

Reimplemented from GxCollision.

Here is the call graph for this function:

◆ getObject()

GxBackgroundHit::GxObject * GxBackgroundHit::getObject ( u32 index)

指定インデックスのオブジェクトを取得

Parameters
index[in] インデックス
Returns
オブジェクト

◆ update()

void GxBackgroundHit::update ( void )
overridevirtual

位置の更新

Reimplemented from GxCollision.

Here is the call graph for this function:

The documentation for this class was generated from the following files: