#pragma once

//! @file Utility/Actor.h
//! @brief アクタークラスインクルードファイル

namespace Utility{

	//! @class Actor
	//! @brief アクタークラス
	class Actor
	{
	public:
		//! @brief デストラクタ
		virtual ~Actor( void ) {}

	public:
		//! @brief アクターを更新する際に呼び出されます
		//! @param[in] dt デルタタイム
		virtual void OnUpdate( Float32 dt ) {}
		//! @brief アクターをリフレッシュする際に呼び出されます
		//! @return 成功した場合は True を返します
		virtual Boolean OnRefresh( void ) { return True; }
	};

	//! @class Character
	//! @brief キャラクタークラス
	class Character : public Actor
	{
	public:
		//! @brief デストラクタ
		virtual ~Character( void ) {}

	public:
		//! @brief ワールド行列を取得します
		//! @return ワールド行列を表す Mix::Matrix4x4 クラスを返します
		virtual const Mix::Matrix4x4& GetWorldMatrix( void ) const = 0;
	};
}
