#ifndef _E3D_OBJECT_MOVE_INFORMATION_
#define _E3D_OBJECT_MOVE_INFORMATION_

#include <easy3d.h>

namespace HPL {
namespace E3D {

/** 移動や位置に関する情報
  *
  */
class E3DObjectMoveInformation {
public:
	//! 位置座標
	D3DXVECTOR3 m_vPosition;

	//! 向いている方向
//	D3DXVECTOR3 m_vRotate;

	//! 移動量
	D3DXVECTOR3 m_vVelocity;

	//! Y軸回転方向。宙返り等はモーションで行い、基本Y軸方向を常に上に保つ
	float m_fDegreeXZ;

	//! クォータニオン
	int m_nQuoatanion;

	//! 状態管理
	DWORD m_dwTrigger;

	//! ジャンプの上向き加速度有効かどうか
	BOOL m_bJumpAccelable;

	//! 単純な動作のオブジェクトについての速度
	float m_fSpeed;

	// 目標とする位置
	D3DXVECTOR3 m_vGoalPosition;
public:
	E3DObjectMoveInformation();
	~E3DObjectMoveInformation();
public:
	/////
	// operations
	/** トリがを設定する
	  * @param[in]	dwTriggerType	設定したいトリガ
	  * @param[in]	bEnable			設定するのか、取り外すのか
	  */
	void set_Trigger( DWORD dwTriggerType, BOOL bEnable );
	BOOL get_Trigger( DWORD dwTriggerType );
	void reset(){}
};
}
}
#endif
