Example #1
0
void FreeCameraController::set_frame(const D3DXMATRIX& value)
{
	camera_position_ = D3DXVECTOR4(value.m[3][0], value.m[3][1], value.m[3][2], 1);

	{
		D3DXVECTOR4 view_direction = D3DXVECTOR4(value.m[0][0], value.m[0][1], value.m[0][2], 0);
		view_direction.y = 0.0f;
		D3DXVec4Normalize(&view_direction, &view_direction);

		yaw_ = acos(D3DXVec4Dot(&view_direction, &default_forward_));
	}

	{
		D3DXVECTOR4 view_direction = D3DXVECTOR4(value.m[0][0], value.m[0][1], value.m[0][2], 0);
		D3DXVECTOR4 temp = view_direction;
		view_direction.y = 0.0f;

		D3DXVec4Normalize(&view_direction, &view_direction);
		D3DXVec4Normalize(&temp, &temp);

		pitch_ = acos(D3DXVec4Dot(&temp, &view_direction));
	}

	recompute_rotation();
}
Example #2
0
float float4::Dot(const float4& rvalue) {
	return D3DXVec4Dot(this,&rvalue);
}
Example #3
0
//@}
//-----------------------------------------------------------------------------
/// @name 幾何ベクトルの演算
//@{
/// @copydoc psyq::geometry::vector::dot
inline psyq::geometry::vector::traits<D3DXVECTOR4>::element dot(
    D3DXVECTOR4 const& in_left,
    D3DXVECTOR4 const& in_right)
{
    return D3DXVec4Dot(&in_left, &in_right);
}