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 GxVector3 & calculateAdjustVector (void)
 当たり判定後の補正処理
 
GX_FORCE_INLINE const GxVector3 & getAdjustVector (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 GxObject * createSphere (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeSphere &sphere)
 球の作成
 
virtual GxObject * createBox (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeBox &box)
 ボックスの作成
 
virtual GxObject * createMultisphere (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1, const GxShapeMultisphere &multisphere)
 マルチ球の作成
 
virtual GxObject * createCylinder (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCylinder &cylinder)
 円柱の作成
 
virtual GxObject * createCapsule (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCapsule &capsule)
 カプセルの作成
 
virtual GxObject * createMesh (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 GxObject * createMesh (u32 index, b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btBvhTriangleMeshShape *pTrimeshShape)
 背景メッシュの作成
 
GxObject * getObject (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 GxWorld * getWorld (void) const
 登録ワールドの取得
 
constexpr GxUnitBase * getUnit (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 GxClassBaseRoot & operator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRtti & getRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObject * getDefaultObject (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::GxObject * allocObject (void) override
 オブジェクトのメモリ確保
 
GxObject * getObject (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
 デストラクタ
 
GxObject * getObject (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::GxObject * addObject (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: