#include "VectorTool.h"

namespace HPL {
namespace VectorTool {
/** 指定されたベクトルから見て水平方向に回転させる
  *
  */
HRESULT rotateHorizontal( D3DXVECTOR3* vOut, D3DXVECTOR3* vIn, float fDegree ) {
	D3DXMATRIX tmp;
	D3DXMatrixRotationY( &tmp, D3DXToRadian( fDegree ) );
	D3DXVec3TransformCoord( vOut, vIn, &tmp );
	return S_OK;
}

/** 指定されたベクトルから見て縦方向に回転（性格にはXZ平面に対して縦回転）させる
  * 
  */
HRESULT rotateVertical( D3DXVECTOR3* vOut, D3DXVECTOR3* vIn, float fDegree ) {
	D3DXQUATERNION quaternion;
	D3DXMATRIX matRotateConverter;

	//
	//D3DXMatrixRotationX(&matRotateConverter,fDegree);

	D3DXQuaternionRotationAxis( &quaternion,
		&D3DXVECTOR3( - vIn->z,
		0, vIn->x),
		D3DXToRadian( fDegree ) );

	D3DXMatrixRotationQuaternion( &matRotateConverter, &quaternion );

	D3DXVec3TransformCoord( vOut, vIn, &matRotateConverter );
	return S_OK;
}

}
}
