void FirstPersonCamera::SetRotation(const XMFLOAT2& rotation, float roll)
{
    _rotation.x = XMScalarModAngle(rotation.x);
    _rotation.y = clamp(rotation.y, -PiOver2, PiOver2);
    _roll = XMScalarModAngle(roll);

    XMVECTOR quat = XMQuaternionRotationRollPitchYaw(_rotation.y, _rotation.x, _roll);

    XMFLOAT4 newOrientation;
    XMStoreFloat4(&newOrientation, quat);

    SetOrientation(newOrientation);
}
Exemple #2
0
//-----------------------------------------------------------------------------------------------------------------------------------
const float MathUtils::GetAngleBetweenObjectAndWorldSpaceVector(const BaseObject* object, const Vector2& v)
{
	Vector2 diffVector2 = v - object->GetWorldPosition();
	float rotation = atan2(diffVector2.x, -diffVector2.y);
	rotation = XMScalarModAngle(rotation);

	return rotation;
}
Exemple #3
0
//-----------------------------------------------------------------------------------------------------------------------------------
const float BaseObject::GetWorldRotation() const
{
	if (!m_parent)
	{
		return m_localRotation;
	}

	return XMScalarModAngle(m_parent->GetWorldRotation() + m_localRotation);
}