Math/Angle: Replace conversion constructors by conversion operators

This commit is contained in:
Lynix
2018-10-11 00:07:50 +02:00
parent 6653be6f2c
commit d2b1d51ecb
2 changed files with 25 additions and 30 deletions

View File

@@ -236,32 +236,6 @@ namespace Nz
value += twoLimit;
}
/*!
* \brief Changes the angle value by converting a radian angle
*
* \param Angle Radian angle which will be converted
*/
template<AngleUnit Unit, typename T>
template<AngleUnit U, typename>
Angle<Unit, T>& Angle<Unit, T>::Set(const Angle<AngleUnit::Radian, T>& ang)
{
value = RadianToDegree(ang.value);
return *this;
}
/*!
* \brief Changes the angle value by converting a degree angle
*
* \param Angle Degree angle which will be converted
*/
template<AngleUnit Unit, typename T>
template<AngleUnit U, typename>
Angle<Unit, T>& Angle<Unit, T>::Set(const Angle<AngleUnit::Degree, T>& ang)
{
value = DegreeToRadian(ang.value);
return *this;
}
/*!
* \brief Copies the angle value of an angle
*
@@ -367,6 +341,28 @@ namespace Nz
return Detail::AngleUtils<Unit>::ToString(value);
}
/*!
* \brief Returns the degree angle that is equivalent to this one
* \return Equivalent degree angle
*/
template<AngleUnit Unit, typename T>
template<AngleUnit U, typename>
Angle<Unit, T>::operator Angle<AngleUnit::Degree, T>()
{
return ToDegreeAngle();
}
/*!
* \brief Converts the angle to a string representation
* \return String representation of the angle
*/
template<AngleUnit Unit, typename T>
template<AngleUnit U, typename>
Angle<Unit, T>::operator Angle<AngleUnit::Radian, T>()
{
return ToRadianAngle();
}
/*!
* \brief Addition operator
* \return Adds two angles together