12GX_CHARACTER_NAMESPACE_BEGIN()
30 static constexpr s32 INVALID_INDEX = -1;
32 static constexpr u32 ROUTE_NODE_DATA_MAX =
GxMath::VALUE_32;
44 GX_ENUM_TABLE(SHAPE_TYPE)
62 s32 _nodeIndex[ROUTE_NODE_DATA_MAX];
91 void cleanup(
void)
override;
114 void getToolRtti(
GxArray& arrayTool)
const override;
119 GX_FORCE_INLINE u32
getAreaNum(
void)
const {
return *
reinterpret_cast<u32*
>(_pBuffer); }
123 GX_FORCE_INLINE
GxRouteParam*
getRoute(u32 area, u32 route)
const {
return reinterpret_cast<GxRouteParam*
>(
reinterpret_cast<GX_CHAR*
>(getArea(area)) + getRouteOffset(area, route)); }
125 GX_FORCE_INLINE
GxNodeParam*
getNode(u32 area, u32 node)
const {
return reinterpret_cast<GxNodeParam*
>(
reinterpret_cast<GX_CHAR*
>(getArea(area)) + getNodeOffset(area, node)); }
130 GX_FORCE_INLINE u32 getAreaOffset(u32 area)
const {
return *(
reinterpret_cast<u32*
>(_pBuffer) + 1 + area); }
132 GX_FORCE_INLINE u32 getRouteOffset(u32 area, u32 route)
const {
return *(
reinterpret_cast<u32*
>(getArea(area) + 1) + route); }
134 GX_FORCE_INLINE u32 getNodeOffset(u32 area, u32 node)
const {
return *(
reinterpret_cast<u32*
>(getArea(area) + 1) + getArea(area)->_numRoute + node); }
173 GX_RTTI_CLASS(GxResPathSetXml::GxEditArea,
GxClassBase)
184 GX_RTTI_CLASS(GxResPathSetXml::GxEditArea::GxEditRoute,
GxClassBase)
202 void getData(GxRouteParam* pData)
const;
204 void setData(GxRouteParam* pData);
213 s32 _nodeIndex[ROUTE_NODE_DATA_MAX];
227 GX_RTTI_CLASS(GxResPathSetXml::GxEditArea::GxEditNode,
GxClassBase)
238 GX_RTTI_CLASS(GxResPathSetXml::GxEditArea::GxEditNode::GxEditConnect,
GxClassBase)
256 void getData(GxConnectParam* pData)
const;
258 void setData(GxConnectParam* pData);
291 void getData(GxNodeParam* pData)
const;
293 void setData(GxNodeParam* pData);
295 GX_FORCE_INLINE GxEditConnect* getConnect(u32 connect)
const {
return static_cast<GxEditConnect*
>(_connectList.getNode(connect)->getObject()); }
297 GX_FORCE_INLINE
GxListClassBase* getConnectList(
void){
return &_connectList; }
301 void developRender(u32 index,
GxColor color,
b32 isSelected, f32 radius = 0.1f);
304 constexpr GxGuiButtonHandle* getGuiButtonHandle(
void){
return _guiButtonHandle; }
306 constexpr void setGuiButtonHandle( GxGuiButtonHandle* pButton ){ _guiButtonHandle = pButton; }
320 GxGuiButtonHandle* _guiButtonHandle;
334 ~GxEditArea(
void)
override;
343 void getData(GxAreaParam* pData)
const;
345 void setData(GxAreaParam* pData);
347 GX_FORCE_INLINE GxEditRoute* getRoute(u32 route)
const {
return static_cast<GxEditRoute*
>(_routeList.getNode(route)->getObject()); }
349 GX_FORCE_INLINE
GxListClassBase* getRouteList(
void){
return &_routeList; }
351 GX_FORCE_INLINE GxEditNode* getNode(u32 node)
const {
return static_cast<GxEditNode*
>(_nodeList.getNode(node)->getObject()); }
353 GX_FORCE_INLINE
GxListClassBase* getNodeList(
void){
return &_nodeList; }
355 void developRender(
const GxEditNode* pSelectedNode,
GxColor color =
GxColor(0, 255, 0, 50),
b32 isAreaDraw =
true,
b32 isNodeDraw =
true,
b32 isNodeWeightDraw =
true);
359 GX_FORCE_INLINE
GxVector3 getCenterPosition(
void)
const {
return _shapeType == SHAPE_TYPE::BOX ? _position + _scale : _position; }
370 SHAPE_TYPE _shapeType;
385 GxResPathSetXml(
void) : _areaList(
GxAllocatorList::ALLOCATOR_TYPE::RESOURCE){}
396 GX_FORCE_INLINE
b32 load(
GxStream& in, u32 ) {
return GxResBase::loadXml(in); }
398 GX_FORCE_INLINE
b32 save(
GxStream& out){
return GxResBase::saveXml(out, GxResPathSetXml::GX_RTTI); }
409 GX_FORCE_INLINE GxEditArea*
getArea(u32 area)
const {
return static_cast<GxEditArea*
>(_areaList.getNode(area)->getObject()); }
411 GX_FORCE_INLINE
GxListClassBase* getAreaList(
void){
return &_areaList; }
414 b32 isNodeExist(GxEditArea* pArea, s32 node)
const;
428GX_CHARACTER_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
void GxTypedObject
その他
Definition GxDefine.h:213
#define GX_RTTI_RESOURCE(__THIS__, __BASE__)
リソースクラス型情報宣言
Definition GxRttiResource.h:102
メモリアロケータリスト
Definition GxAllocator.h:347
配列クラス
Definition GxArray.h:18
オブジェクト基底クラス
Definition GxBase.h:88
GxClassBase用連結リストクラス
Definition GxListClassBase.h:18
算術演算クラス
Definition GxMath.h:84
static constexpr u32 VALUE_32
32
Definition GxMath.h:124
static constexpr u32 NUM_ADD_WEIGHT
追加の重みの数
Definition GxPathSet.h:132
static constexpr u32 NUM_DATA
付加データの数
Definition GxPathSet.h:32
プロパティクラス
Definition GxProperty.h:48
リソース基底クラス
Definition GxResBase.h:23
経路セットリソースクラス
Definition GxResPathSet.h:18
GX_FORCE_INLINE GxRouteParam * getRoute(u32 area, u32 route) const
固定ルートデータを取得する
Definition GxResPathSet.h:123
GX_FORCE_INLINE GxNodeParam * getNode(u32 area, u32 node) const
ノードデータを取得する
Definition GxResPathSet.h:125
GX_CHAR * _pBuffer
finalizeデータ
Definition GxResPathSet.h:142
GX_FORCE_INLINE u32 getAreaNum(void) const
エリアデータの個数を取得
Definition GxResPathSet.h:119
SHAPE_TYPE
形状定義
Definition GxResPathSet.h:36
void cleanup(void) override
解放処理
Definition GxResPathSet.cpp:41
GX_FORCE_INLINE GxAreaParam * getArea(u32 area) const
エリアデータを取得する
Definition GxResPathSet.h:121
GX_FORCE_INLINE GxConnectParam * getConnect(u32 area, u32 node, u32 connect) const
接続データを取得する
Definition GxResPathSet.h:127
u32 _bufferSize
finalizeデータサイズ
Definition GxResPathSet.h:143
b32 load(GxStream &in, u32 dataSize)
リソースのロード
Definition GxResPathSet.cpp:53
実行時型情報クラス
Definition GxRtti.h:154
ストリーム基礎クラス
Definition GxStream.h:20
エリアパラメータ
Definition GxResPathSet.h:49
GxVector3 _position
座標
Definition GxResPathSet.h:52
f32 _radius
半径
Definition GxResPathSet.h:54
u32 _numNode
ノードの数
Definition GxResPathSet.h:50
GxVector3 _scale
拡大率
Definition GxResPathSet.h:53
u32 _numRoute
固定ルートの数
Definition GxResPathSet.h:51
SHAPE_TYPE _shapeType
コリジョンの形状
Definition GxResPathSet.h:55
接続パラメータ
Definition GxResPathSet.h:76
u32 _nodeIndex
接続するノードのインデックス
Definition GxResPathSet.h:77
f32 _staticWeight
固定の重み
Definition GxResPathSet.h:78
ノードパラメータ
Definition GxResPathSet.h:67
s32 _flag
付加フラグ
Definition GxResPathSet.h:71
u32 _numConnect
ノード接続の数
Definition GxResPathSet.h:68
GxVector3 _position
座標
Definition GxResPathSet.h:69
固定ルートパラメータ
Definition GxResPathSet.h:60
b32 _loopFlag
ループさせるかどうか
Definition GxResPathSet.h:61
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173