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

群集管理システム More...

#include <GxSysUnitFlock.h>

Inheritance diagram for GxSysUnitFlock:
Collaboration diagram for GxSysUnitFlock:

Public Member Functions

初期化
 GxSysUnitFlock (void)
 コンストラクタ
 
 ~GxSysUnitFlock (void) override
 デストラクタ
 
b32 initialize (const GxClassBase *pInitializeInformation) override
 初期化
 
void terminate (void) override
 終了処理
 
void preAsyncUpdate (void) override
 全リストの並列更新(asyncUpdateの前に実行)
 
virtual GxFlockallocateObjectFlock (void)
 メモリ確保
 
- Public Member Functions inherited from GxSysUnit
 GxSysUnit (void)
 コンストラクタ
 
 ~GxSysUnit (void) override
 デストラクタ
 
void initializeSpaceGraph (u32 level, GxVector3 &min, GxVector3 &max, u32 levelNonShared=0, u32 numCsecShared=10)
 
void terminateSpaceGraph (void)
 空間木を開放(ステージ変更時などに使用)
 
virtual void asyncUpdate (void)
 全リストの並列更新
 
virtual void postAsyncUpdate (void)
 全リストの並列更新(asyncUpdateの後に実行)
 
virtual void sequentialUpdate (void)
 全リストの逐次更新
 
virtual void forceAsyncUpdate (void)
 全リストの強制並列更新(pause中も実行)
 
virtual void render (void)
 全リストの描画
 
void drawSpaceGraph (void)
 空間木の描画
 
GxUnitBasecreateAndAddTop (u32 listProcessNumber, u32 listKindNumber, const GxRtti &rtti)
 指定リストの先頭にユニットを追加作成
 
GxUnitBasecreateAndAddBottom (u32 listProcessNumber, u32 listKindNumber, const GxRtti &rtti)
 指定リストの終端にユニットを追加作成
 
GX_FORCE_INLINE GxUnitBasecreateAndAddBottom (const GxRtti &rtti)
 リストの終端にユニットを追加作成
 
void addBottom (GxUnitBase *pUnit, u32 listProcessNumber, u32 listKindNumber)
 指定リストの終端にユニットを追加(デシリアライズ時のみ使用可)
 
virtual void onAddUnit (GxUnitBase *pUnit, u32 listProcessNumber, u32 listKindNumber, const GxRtti &rtti)
 ユニット追加時のコールバック
 
void killAll (void)
 全リストのユニットを全て削除
 
void setAttributeAll (GxUnitBase::ATTRIBUTE attribute, b32 enable)
 アトリビュートを全て設定
 
void setViewportAll (RENDER_VIEW view, b32 enable)
 ビューポートに全て設定
 
void killByIncludeRtti (const GxRtti &rtti)
 指定Rttiを継承したユニットをkill
 
GX_FORCE_INLINE void pushCmdBuildSpaceGraph (void)
 空間木構築に次のPostAsync後にユニットが格納されるようにフラグセット
 
void storeUnit (GxArrayClassBase &storeList, GxArrayClassBase &parentList, const GxArrayClassBase &unitArray, u32 attributeCondition=GxUnitBase::ATTRIBUTE_NOSERIALIZE, b32 enableCondition=true)
 ユニットを退避
 
void restoreUnit (GxArrayClassBase &storeList, GxArrayClassBase &parentList)
 ユニットを復元
 
template<typename T >
T * getUnit (void)
 指定RTTIのユニットを1つ取得
 
template<typename T >
void getUnitList (GxArrayClassBase &unitList)
 指定RTTIのユニットリストを取得
 
template<typename T >
void getDerivedUnitList (GxArrayClassBase &unitList)
 指定RTTI継承のユニットリストを取得
 
virtual GX_FORCE_INLINE u32 getProcessListNumber (const GxRtti &)
 ユニット生成時の処理リスト番号を取得
 
virtual GX_FORCE_INLINE u32 getKindListNumber (const GxRtti &)
 ユニット生成時の種別リスト番号を取得
 
void addToListOctreeBuildReserve (GxUnitLocate *pUnitLocate)
 8分木への追加登録用リストにユニットを追加
 
void deleteFromListOctreeBuildReserve (GxUnitLocate *pUnitLocate)
 8分木への追加登録用リストからユニットを削除
 
constexpr u32 getListProcessMax (void) const
 処理用リストの最大数を取得
 
GxListUnitgetListProcess (u32 listProcessNumber) const
 処理用リストを取得
 
GxListUnitgetListProcess (GxUnitBase *pUnit) const
 処理用リストを取得
 
GxListUnitgetListKind (u32 listKindNumber) const
 分類用リストを取得
 
GxListUnitgetListKind (GxUnitBase *pUnit) const
 分類用リストを取得
 
void changeListKind (GxUnitBase *pUnit, u32 listNumber)
 分類用リストを変更
 
GX_FORCE_INLINE const GxArrayClassBasegetRootUnitList (void) const
 ルートユニットリストを取得
 
u32 getUnitCount (void) const
 全リストのユニット数を取得
 
GX_FORCE_INLINE b32 isSlow (void)
 スロー設定か判定
 
GX_FORCE_INLINE void setSlow (f32 timeRatio=1.0f)
 スロー時間比率を設定
 
constexpr s32 getSpaceGraphLebel (void) const
 8分木の階層レベルを取得
 
constexpr s32 getSpaceGraphLebel (void)
 8分木の階層レベルを取得
 
constexpr void setSpaceGraphLebel (s32 value)
 8分木の階層レベルを設定
 
constexpr GxOctreegetSpaceGraphPointer (void) const
 8分木を取得
 
constexpr GxOctreegetSpaceGraphPointer (void)
 8分木を取得
 
GX_FORCE_INLINE const b32 isCullingSkip (void) const
 現在カリングされた回数を取得
 
GX_FORCE_INLINE b32 isCullingSkip (void)
 現在カリングされた回数を取得
 
GX_FORCE_INLINE void startSkipCulling (void)
 現在カリングされた回数を取得
 
GX_FORCE_INLINE void stopSkipCulling (void)
 現在カリングされた回数を取得
 
virtual GxUnitCameraBasegetMainCamera (void)
 メインのカメラユニットを取得
 
- Public Member Functions inherited from GxSysBase
template<typename T >
T * getModule (void) const
 モジュールを取得
 
 GxSysBase (void)
 デフォルトコンストラクタ
 
 ~GxSysBase (void) override
 デストラクタ
 
virtual void update (void)
 更新
 
b32 isLocked (void)
 クリティカルセクションのロック状態を確認する
 
void sleep (f32 time)
 スリープ(スクリプト用)
 
- 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)
 デフォルトオブジェクト判定
 
- Public Member Functions inherited from SingletonBase< GxSysUnit >
 SingletonBase (void)
 コンストラクタ
 
 ~SingletonBase (void)
 デストラクタ
 

Static Public Attributes

定義
static constexpr u32 FLOCK_INITIAL_NUM = GxMath::VALUE_8
 群集の初期数
 
- Static Public Attributes inherited from GxSysUnit
static constexpr u32 LIST_KIND_MAX = GxMath::VALUE_32
 分類用リストの最大数
 

アクセサ

GxFlockcreateFlock (GxUnitCharacterBase *pCharacter, u32 id=GxFlock::INVALID_ID)
 群集を作成
 
GX_FORCE_INLINE void leaveMember (GxUnitCharacterBase *pCharacter)
 メンバーを外す
 
GxFlockgetFlock (u32 id)
 群集を取得
 
GxFlockgetNearFlock (const GxVector3 &position)
 近くの群集を取得
 
void eraseFlock (GxFlock *pFlock)
 群集を削除
 
virtual void setTargetFlock (GxFlock *pFlock)
 ターゲットの群集を設定
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Member Functions inherited from SingletonBase< GxSysUnit >
static GX_FORCE_INLINE GxSysUnitgetSingleton (void)
 参照を取得
 
static constexpr GxSysUnitgetSingletonPointer (void)
 ポインタを取得
 
- Protected Types inherited from GxSysBase
enum class  LOCK_TYPE { SEQUENTIAL_THREAD_SAFE , THREAD_SAFE }
 ロックタイプ More...
 
- Protected Member Functions inherited from GxSysBase
void terminateGxModules (void)
 GXモジュールの終了処理
 
void lock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
 クリティカルセクションに入る
 
void unlock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
 クリティカルセクションを出る
 
template<typename T >
T * addModule (void)
 モジュールを作成
 
template<typename T >
void removeModule (void)
 モジュールを削除
 

Detailed Description

群集管理システム

Member Function Documentation

◆ allocateObjectFlock()

GxFlock * GxSysUnitFlock::allocateObjectFlock ( void )
virtual

メモリ確保

Returns
群衆
Here is the caller graph for this function:

◆ createFlock()

GxFlock * GxSysUnitFlock::createFlock ( GxUnitCharacterBase * pCharacter,
u32 id = GxFlock::INVALID_ID )

群集を作成

Parameters
pCharacter[in] キャラクタ
id[in] ID
Returns
群衆
Here is the call graph for this function:

◆ eraseFlock()

void GxSysUnitFlock::eraseFlock ( GxFlock * pFlock)

群集を削除

Parameters
pFlock[in] 群衆
Here is the call graph for this function:

◆ getFlock()

GxFlock * GxSysUnitFlock::getFlock ( u32 id)

群集を取得

Parameters
id[in] ID
Returns
群衆

◆ getNearFlock()

GxFlock * GxSysUnitFlock::getNearFlock ( const GxVector3 & position)

近くの群集を取得

Parameters
position[in] 座標
Returns
群衆

◆ initialize()

b32 GxSysUnitFlock::initialize ( const GxClassBase * pInitializeInformation)
overridevirtual

初期化

Parameters
pInitializeInformation[in] 初期化情報
Returns
成功ならtrue

Reimplemented from GxSysUnit.

Here is the call graph for this function:

◆ preAsyncUpdate()

void GxSysUnitFlock::preAsyncUpdate ( void )
overridevirtual

全リストの並列更新(asyncUpdateの前に実行)

Reimplemented from GxSysUnit.

Here is the call graph for this function:

◆ setTargetFlock()

void GxSysUnitFlock::setTargetFlock ( GxFlock * pFlock)
protectedvirtual

ターゲットの群集を設定

Parameters
pFlock[in] 群衆
Here is the call graph for this function:
Here is the caller graph for this function:

◆ terminate()

void GxSysUnitFlock::terminate ( void )
overridevirtual

終了処理

Reimplemented from GxSysUnit.


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