#pragma once

//! @file Mix/Scene/IActorConstraint.h
//! @brief アクターコンストレイントインターフェースインクルードファイル

#include "Mix/Reference.h"

namespace Mix{ namespace Scene{

	//! @class IActorConstraint
	//! @brief アクターコンストレイントインターフェース
	class IActorConstraint : public Mix::Reference
	{
	protected:
		//! @brief デストラクタ
		virtual ~IActorConstraint( void ) {}

	public:
		//! @brief 名前を取得します
		//! @return 名前を返します
		virtual const wchar_t* GetName( void ) const = 0;

		//! @brief ローカル行列を設定します
		//! @param[in] mat ローカル行列を表す Mix::Matrix4x4 クラス
		virtual void SetLocalMatrix( const Mix::Matrix4x4& mat ) = 0;
		//! @brief ローカル行列を取得します
		//! @return ローカル行列を表す Mix::Matrix4x4 クラスを返します
		virtual const Mix::Matrix4x4& GetLocalMatrix( void ) const = 0;

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

}}
