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

オブジェクトあたりクラス More...

#include <GxObjectHit.h>

Inheritance diagram for GxObjectHit:
Collaboration diagram for GxObjectHit:

Classes

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

Public Member Functions

初期化
 GxObjectHit (void)
 デフォルトコンストラクタ
 
 ~GxObjectHit (void) override
 デストラクタ
 
- Public Member Functions inherited from GxAdjustHit
virtual void initializeCheck (void)
 チェック時のパラメータ初期化(1フレーム1回)
 
virtual void checkOldPosition (GxRayResult &result, const GxVector3 &moveVector, const GxVector3 &offset, GxCollision::GxConditionInformation *pCondition=nullptr)
 
virtual const GxVector3calculateAdjustVector (void)
 当たり判定後の補正処理
 
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)
 当たり判定チェック前準備
 
virtual void update (void)
 位置の更新
 
constexpr GxWorldgetWorld (void) const
 登録ワールドの取得
 
constexpr GxUnitBasegetUnit (void) const
 登録ユニットの取得
 
virtual void executePostCheckCallback (void)
 チェック後コールバック関数の呼び出し
 
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)
 デフォルトオブジェクト判定
 

定義

enum class  ADJUST_FLAG_INDEX { OLD_POSITION , THROUGH_ONCE , THROUGH_ONCE_OLD }
 調整フラグインデックス定義 More...
 
static const GxColor COLOR_OBJECT
 描画色
 

操作

GxCollision::GxObjectallocObject (void) override
 オブジェクトのメモリ確保
 
GxObjectgetObject (u32 index)
 指定インデックスのオブジェクトを取得
 
const GxVector3 calculateOldPositionAdjustVector (void)
 OLD->POS補正ベクトルの取得
 

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...
 
- 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)
 押返しベクトルのオフセットを取得
 
- 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 GxObjectHit::ADJUST_FLAG_INDEX
strongprotected

調整フラグインデックス定義

Enumerator
OLD_POSITION 

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

THROUGH_ONCE 

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

THROUGH_ONCE_OLD 

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

Member Function Documentation

◆ allocObject()

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

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

Returns
確保したオブジェクト

Reimplemented from GxAdjustHit.

◆ getObject()

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

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

Parameters
index[in] 取得したいオブジェクトのインデックス
Returns
オブジェクト

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