OROCHI
 
Loading...
Searching...
No Matches
GxDynamics::GxObject Class Reference

GxDynamics基本オブジェクトクラス More...

#include <GxDynamics.h>

Inheritance diagram for GxDynamics::GxObject:
Collaboration diagram for GxDynamics::GxObject:

Public Member Functions

初期化
 GxObject (void)
 デフォルトコンストラクタ
 
 ~GxObject (void) override
 デストラクタ
 
virtual GX_FORCE_INLINE void initialize (b32, GxMatrixAffine *, const GxVector3 &, const GxQuaternion &)
 オブジェクトの初期化
 
操作
virtual void prepareCheck (void)
 当たり判定チェック前準備
 
virtual GX_FORCE_INLINE void preUpdate (void)
 更新前処理
 
virtual GX_FORCE_INLINE void postUpdate (void)
 更新後処理
 
virtual GX_FORCE_INLINE void reset (void)
 状態リセット
 
virtual GX_FORCE_INLINE void applyForce (const GxVector3 &, const GxVector3 &)
 力を加える(加速度に影響)
 
virtual GX_FORCE_INLINE void applyImpulse (const GxVector3 &, const GxVector3 &)
 衝撃力を加える(速度に影響)
 
virtual GX_FORCE_INLINE b32 createSphere (b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeSphere &, const GxRigidBodyParam &, f32)
 球の作成
 
virtual GX_FORCE_INLINE b32 createBox (b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeBox &, const GxRigidBodyParam &, f32)
 箱の作成
 
virtual GX_FORCE_INLINE b32 createCylinder (b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeCylinder &, const GxRigidBodyParam &, f32)
 円柱の作成
 
virtual GX_FORCE_INLINE b32 createMultisphere (b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeMultisphere &, const GxRigidBodyParam &, f32)
 マルチ球の作成
 
virtual GX_FORCE_INLINE b32 createCapsule (b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxShapeCapsule &, const GxRigidBodyParam &, f32)
 カプセルの作成
 
virtual GX_FORCE_INLINE b32 createConvexShape (b32, GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, const GxVector3 *, u32, const GxRigidBodyParam &, f32)
 凸形状の作成
 
virtual GX_FORCE_INLINE b32 createCompoundObject (GxMatrixAffine *, s32, const GxVector3 &, const GxQuaternion &, f32)
 複合形状の作成
 
virtual GX_FORCE_INLINE b32 createMesh (b32, GxMatrixAffine *, const GxVector3 &, const GxQuaternion &, const GxShapeTrimesh &, f32=0.5f, b32=true, GxVector3 *=nullptr, GxVector3 *=nullptr, f32=DYNAMICS_COLLISION_MARGIN)
 背景メッシュの作成
 
virtual GX_FORCE_INLINE b32 addCompoundSphere (const GxVector3 &, const GxShapeSphere &)
 複合オブジェクトに追加:球
 
virtual GX_FORCE_INLINE b32 addCompoundBox (const GxVector3 &, const GxQuaternion &, const GxShapeBox &)
 複合オブジェクトに追加:箱
 
virtual GX_FORCE_INLINE b32 addCompoundCapsule (const GxVector3 &, const GxQuaternion &, const GxShapeCapsule &)
 複合オブジェクトに追加:カプセル
 
virtual GX_FORCE_INLINE b32 addCompoundConvex (const GxVector3 &, const GxQuaternion &, const GxVector3 *, u32)
 複合オブジェクトに追加:凸形状
 
virtual GX_FORCE_INLINE b32 endAddCompound (b32, const GxRigidBodyParam &)
 複合オブジェクト追加終了
 
アクセサ
virtual GX_FORCE_INLINE void setLinearVelocity (const GxVector3 &)
 直線速度設定[m/sec]
 
virtual GX_FORCE_INLINE void getLinearVelocity (GxVector3 &)
 直線速度取得[m/sec]
 
virtual GX_FORCE_INLINE void setAngularVelocity (const GxVector3 &)
 回転速度設定[m/sec]
 
virtual GX_FORCE_INLINE void getAngularVelocity (GxVector3 &)
 回転速度取得[m/sec]
 
virtual GX_FORCE_INLINE void setPosition (const GxVector3 &)
 座標設定(速度等のパラメタが変更されるわけではないことに注意)
 
virtual GX_FORCE_INLINE void getPosition (GxVector3 &)
 座標取得
 
virtual GX_FORCE_INLINE void setQuaternion (const GxQuaternion &)
 姿勢設定(速度等のパラメタが変更されるわけではないことに注意)
 
virtual GX_FORCE_INLINE void getQuaternion (GxQuaternion &)
 姿勢取得
 
virtual GX_FORCE_INLINE void setDampingRatio (f32, f32)
 
virtual GX_FORCE_INLINE void setDeactivationTime (f32)
 
virtual GX_FORCE_INLINE void setSleepingThresholds (f32, f32)
 
virtual GX_FORCE_INLINE void setFriction (f32)
 摩擦係数の設定
 
virtual GX_FORCE_INLINE void setRestitution (f32)
 反発係数の設定(有効値:0.f~1.f)
 
constexpr void setRegisterWorld (GxDynamics::GxWorld *pWorld)
 登録したワールドのアドレスを設定
 
constexpr GxDynamics::GxWorldgetRegisterWorld (void) const
 登録したワールドのアドレスを取得
 
constexpr GxShapegetShape (void) const
 オブジェクト形状の取得
 
constexpr GxCollision::COLLISION_SHAPE getShapeType (void) const
 オブジェクト形状タイプの取得
 
virtual GX_FORCE_INLINE void setMatrix (const GxMatrixAffine &)
 マトリクス設定
 
virtual GX_FORCE_INLINE GxMatrixAffine getMatrix (void)
 マトリクス取得
 
constexpr void setMatrixAddress (GxMatrixAffine *pMatrix)
 
constexpr const GxMatrixAffinegetMatrixAddress (void) const
 
constexpr s32 getJointIndex (void) const
 貼り付ける関節番号取得
 
virtual void setActive (b32 active)
 アクティブ設定
 
GX_FORCE_INLINE b32 isActive (void) const
 アクティブ判定
 
constexpr u32 getActiveFlagAll (void) const
 全アクティブフラグ取得
 
GX_FORCE_INLINE b32 getActiveFlag (u32 flag) const
 アクティブフラグ取得
 
GX_FORCE_INLINE void setActiveFlag (u32 flag, b32 value)
 アクティブフラグ設定
 
constexpr void setUnit (GxUnitBase *pUnit)
 ユニット設定
 
constexpr GxUnitBasegetUnit (void) const
 ユニット取得
 
constexpr u32 getCheckFlag (void) const
 チェックフラグの取得
 
constexpr void setCheckFlag (u32 flag)
 チェックフラグの設定
 
constexpr RIGID_BODY_TYPE getType (void) const
 剛体の種類を取得
 
constexpr void setManagementClass (GxDynamics *pManagementClass)
 管理クラスの設定
 
constexpr GxDynamicsgetManagementClass (void) const
 管理クラスの取得
 
GX_FORCE_INLINE const GxVector3getOffset (void) const
 オフセットの取得
 
GX_FORCE_INLINE void setOffset (const GxVector3 &offset)
 オフセットの設定
 
constexpr f32 getMass (void) const
 質量を取得
 
GX_FORCE_INLINE const GxQuaterniongetRotateOffset (void) const
 ラジアンの取得
 
GX_FORCE_INLINE void setRotateOffset (const GxQuaternion &offset)
 ラジアンの設定
 
virtual b32 isNeedCheck (GxObject *pCollisionObject)
 お互いの当たり判定が必要か判定
 
virtual b32 isHitCheckFlag (u32 targetFlag)
 チェックフラグからあたり判定が必要かを調べる
 
virtual b32 isHitCheckFlagTrimesh (u32 triangleIndex, u32 targetFlag)
 メッシュ形状の三角形単位で、チェックフラグから当たり判定が必要かを調べる
 

Protected Attributes

メンバ変数
GxFlag32Bit _activeFlag
 アクティブ設定用フラグ
 
GxShape_pShape
 基本形状
 
GxCollision::COLLISION_SHAPE _shapeType
 形状分類
 
GxMatrixAffine_pMatrix
 更新するマトリクス
 
s32 _jointIndex
 貼り付ける関節番号
 
RIGID_BODY_TYPE _type
 剛体タイプ
 
GxDynamics::GxWorld_pRegisterWorld
 登録先ワールド
 
GxUnitBase_pUnit
 所有するユニット
 
b32 _isOwnsBtShape
 自分が作成したBULLETのシェイプかどうかのフラグ
 
GxDynamics_pManagementClass
 自分を管理しているクラス
 
f32 _mass
 重さ
 
GxVector3 _offset
 位置オフセット
 
GxQuaternion _rotateOffset
 角度オフセット
 
u32 _checkFlag
 メッシュとのチェックフラグ
 
s16 _group
 グループ
 

RTTIプロパティ

enum  {
  ACTIVE_FLAG_ACTIVE = (1UL << 0) , ACTIVE_FLAG_REGISTERED = (1UL << 1) , ACTIVE_FLAG_REQUEST_REGISTER = (1UL << 2) , ACTIVE_FLAG_REQUEST_BAN = (1UL << 3) ,
  ACTIVE_FLAG_REQUEST_DELETE = (1UL << 4)
}
 アクティブフラグ定義 More...
 
enum class  RIGID_BODY_TYPE { DYNAMIC = 0 , STATIC , KINEMATIC , MAX }
 剛体タイプ定義 More...
 
 GX_RTTI_CLASS (GxDynamics::GxObject, gx::core::GxClassBase)
 
 GX_OPERATOR_NEW_DELETE (GxAllocatorList::ALLOCATOR_TYPE::PHYSICS)
 
 GX_PROHIBIT_CLASS_BASE (GxObject)
 

Detailed Description

GxDynamics基本オブジェクトクラス

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

アクティブフラグ定義

Enumerator
ACTIVE_FLAG_ACTIVE 

オブジェクトがアクティブ状態かどうか

ACTIVE_FLAG_REGISTERED 

登録されているかどうか

ACTIVE_FLAG_REQUEST_REGISTER 

アクティブフラグON登録待ち

ACTIVE_FLAG_REQUEST_BAN 

アクティブフラグOFF登録待ち

ACTIVE_FLAG_REQUEST_DELETE 

オブジェクト削除待ち

◆ RIGID_BODY_TYPE

剛体タイプ定義

Enumerator
DYNAMIC 

普通の剛体

STATIC 

移動なしのコリジョン用

KINEMATIC 

移動ありのコリジョン用

MAX 

定義数

Member Function Documentation

◆ isHitCheckFlag()

b32 GxDynamics::GxObject::isHitCheckFlag ( u32 targetFlag)
virtual

チェックフラグからあたり判定が必要かを調べる

Parameters
targetFlag[in] 調べる相手のフラグ
Returns
当たり判定が必要ならtrue

◆ isHitCheckFlagTrimesh()

b32 GxDynamics::GxObject::isHitCheckFlagTrimesh ( u32 triangleIndex,
u32 targetFlag )
virtual

メッシュ形状の三角形単位で、チェックフラグから当たり判定が必要かを調べる

Parameters
triangleIndex[in] 自形状の調べる三角形のindex
targetFlag[in] 調べる相手のフラグ
Returns
当たり判定が必要ならtrue

◆ isNeedCheck()

b32 GxDynamics::GxObject::isNeedCheck ( GxDynamics::GxObject * pObject)
virtual

お互いの当たり判定が必要か判定

Parameters
pObject[in] 判定相手
Returns
当たり判定すべきならtrue
Here is the call graph for this function:

◆ setActive()

void GxDynamics::GxObject::setActive ( b32 active)
virtual

アクティブ設定

Parameters
active[in] アクティブならtrue
Here is the caller graph for this function:

◆ setDampingRatio()

virtual GX_FORCE_INLINE void GxDynamics::GxObject::setDampingRatio ( f32 ,
f32  )
inlinevirtual

減衰率設定 毎秒速度がどれだけの割合減っているかを指定します。
 例:0.2fにすると毎秒速度が80になっていく。
0.f~1.fにクランプされます。

Here is the caller graph for this function:

◆ setDeactivationTime()

virtual GX_FORCE_INLINE void GxDynamics::GxObject::setDeactivationTime ( f32 )
inlinevirtual

活動停止までの時間設定
直線速度および回転速度が閾値以下となった後、停止状態になるまでの時間。
Bulletのデフォルト値は2.0[sec]です。

Here is the caller graph for this function:

◆ setSleepingThresholds()

virtual GX_FORCE_INLINE void GxDynamics::GxObject::setSleepingThresholds ( f32 ,
f32  )
inlinevirtual

活動停止判定の閾値を設定
setDeactivationTime()のコメントも参照してください。

Here is the caller graph for this function:

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