OROCHI
 
Loading...
Searching...
No Matches
GxPathSet::GxPathSetArea Class Reference

経路セットエリアクラス More...

#include <GxPathSet.h>

Inheritance diagram for GxPathSet::GxPathSetArea:
Collaboration diagram for GxPathSet::GxPathSetArea:

Classes

class  GxAStarNode
 A*のオープンノードクラス More...
 

Public Types

定義
enum class  SEARCH_LENGTH { SHORT = 0 , LONG , MAX }
 探索距離 More...
 
enum class  SEARCH_TYPE { NEAR_ = 0 , FAR_ , MAX }
 探索方法 More...
 
enum  ATTRIBUTE { ATTRIBUTE_COLLISION_INVALID = (1 << 0) , ATTRIBUTE_TARGET_NEAR = (1 << 1) , ATTRIBUTE_TARGET_FAR = (1 << 2) }
 ノード取得用属性 More...
 

Public Member Functions

初期化
 GxPathSetArea (void)
 コンストラクタ
 
 ~GxPathSetArea (void) override
 デストラクタ
 
void createShape (GxResPathSet::GxAreaParam *pAreaParam)
 形状を作成
 
- 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)
 デフォルトオブジェクト判定
 

アクセサ

constexpr s32 getId (void) const
 IDを取得
 
constexpr void setId (s32 id)
 IDを設定
 
constexpr void setShape (GxShape *pShape)
 コリジョンの形状を設定
 
GX_FORCE_INLINE void addNode (GxPathNode *pNode)
 ノードを追加
 
void addRoute (GxPath *pRoute, s32 id)
 ルートを追加
 
void eraseAllNode (void)
 全てのノードを削除
 
void eraseAllRoute (void)
 全てのルートを削除
 
GxPathNodegetNode (u32 id)
 ノードを取得(ID指定)
 
GxPathNodegetNode (u32 dataIndex, s32 dataValue)
 ノードを取得(データ指定)
 
GxPathNodegetNearNode (const GxVector3 &position, u32 attribute=0, const GxVector3 *pTargetPosition=nullptr)
 最も近いノードを取得
 
GxPathNodegetFarNode (const GxVector3 &position)
 最も遠いノードを取得
 

操作

b32 isInclude (const GxVector3 &position) const
 エリアに含まれるか判定
 
b32 searchNoCost (GxPathNode *pStartNode, GxPathNode *pGoalNode, GxPath *pPath)
 コスト無視探索
 
b32 searchFast (GxPathNode *pStartNode, GxPathNode *pGoalNode, GxPath *pPath, GxClassBaseRoot *pObject, SEARCH_LENGTH length=SEARCH_LENGTH::SHORT)
 高速探索
 
b32 searchAStar (GxPathNode *pStartNode, GxPathNode *pGoalNode, GxPath *pPath, GxClassBaseRoot *pObject, SEARCH_LENGTH length=SEARCH_LENGTH::SHORT)
 A*探索
 
b32 getRoute (s32 id, GxPath *pPath) const
 固定ルートを取得
 
b32 checkCollision (const GxVector3 &startPosition, const GxVector3 &endPosition)
 衝突判定
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 

Detailed Description

経路セットエリアクラス

Member Enumeration Documentation

◆ ATTRIBUTE

ノード取得用属性

Enumerator
ATTRIBUTE_COLLISION_INVALID 

衝突無効

ATTRIBUTE_TARGET_NEAR 

ターゲットから近いものを優先

ATTRIBUTE_TARGET_FAR 

ターゲットから遠いものを優先

◆ SEARCH_LENGTH

探索距離

Enumerator
SHORT 

最短

LONG 

最長

MAX 

定義数

◆ SEARCH_TYPE

探索方法

Enumerator
NEAR_ 

近づく

FAR_ 

離れる

MAX 

定義数

Member Function Documentation

◆ addRoute()

void GxPathSet::GxPathSetArea::addRoute ( GxPath * pRoute,
s32 id )

ルートを追加

Parameters
pRoute[in] 追加ルート
id[in] ルートID

◆ checkCollision()

b32 GxPathSet::GxPathSetArea::checkCollision ( const GxVector3 & startPosition,
const GxVector3 & endPosition )
protected

衝突判定

Parameters
startPosition[in] 開始点
endPosition[in] 終了点
Returns
衝突したらtrue

◆ createShape()

void GxPathSet::GxPathSetArea::createShape ( GxResPathSet::GxAreaParam * pAreaParam)

形状を作成

Parameters
pAreaParam[in] エリア

◆ getFarNode()

GxPathNode * GxPathSet::GxPathSetArea::getFarNode ( const GxVector3 & position)

最も遠いノードを取得

Parameters
position[in] 座標
Returns
取得ノード
Here is the call graph for this function:

◆ getNearNode()

GxPathNode * GxPathSet::GxPathSetArea::getNearNode ( const GxVector3 & position,
u32 attribute = 0,
const GxVector3 * pTargetPosition = nullptr )

最も近いノードを取得

Parameters
position[in] 座標
attribute[in] 属性
pTargetPosition[in] ターゲット座標(ターゲットに近付く方を優先)
Returns
取得ノード
Here is the call graph for this function:

◆ getNode() [1/2]

GxPathNode * GxPathSet::GxPathSetArea::getNode ( u32 dataIndex,
s32 dataValue )

ノードを取得(データ指定)

Parameters
dataIndex[in] データインデックス
dataValue[in] データの値
Returns
取得ノード
Here is the call graph for this function:

◆ getNode() [2/2]

GxPathNode * GxPathSet::GxPathSetArea::getNode ( u32 id)

ノードを取得(ID指定)

Parameters
id[in] ノードID
Returns
取得ノード
Here is the call graph for this function:

◆ getRoute()

b32 GxPathSet::GxPathSetArea::getRoute ( s32 id,
GxPath * pPath ) const

固定ルートを取得

Parameters
id[in] ルートID
pPath[in] 取得パス
Returns
成功ならtrue
Here is the call graph for this function:

◆ isInclude()

b32 GxPathSet::GxPathSetArea::isInclude ( const GxVector3 & position) const

エリアに含まれるか判定

Parameters
position[in] 座標
Returns
含まれていたらtrue

◆ searchAStar()

b32 GxPathSet::GxPathSetArea::searchAStar ( GxPathNode * startNode,
GxPathNode * goalNode,
GxPath * pPath,
GxClassBaseRoot * pObject,
SEARCH_LENGTH length = SEARCH_LENGTH::SHORT )

A*探索

Parameters
pStartNode[in] 開始ノード
pGoalNode[in] ゴールノード
pPath[in] 取得パス
pObject[in] コスト対象オブジェクト
length[in] 探索距離(最長か最短か)
Returns
成功ならtrue
Here is the call graph for this function:

◆ searchFast()

b32 GxPathSet::GxPathSetArea::searchFast ( GxPathNode * pStartNode,
GxPathNode * pGoalNode,
GxPath * pPath,
GxClassBaseRoot * pObject,
SEARCH_LENGTH length = SEARCH_LENGTH::SHORT )

高速探索

Parameters
pStartNode[in] 開始ノード
pGoalNode[in] ゴールノード
pPath[in] 取得パス
pObject[in] コスト対象オブジェクト
length[in] 探索距離(最長か最短か)
Returns
成功ならtrue
Here is the call graph for this function:

◆ searchNoCost()

b32 GxPathSet::GxPathSetArea::searchNoCost ( GxPathNode * pStartNode,
GxPathNode * pGoalNode,
GxPath * pPath )

コスト無視探索

Parameters
pStartNode[in] 開始ノード
pGoalNode[in] ゴールノード
pPath[in] 取得パス
Returns
成功ならtrue
Here is the call graph for this function:

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