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

@@ -27,8 +27,6 @@ namespace Nz
public:
Angle() = default;
Angle(T value);
template<AngleUnit U = Unit, typename = std::enable_if_t<U == AngleUnit::Degree>> explicit Angle(const Angle<AngleUnit::Radian, T>& value) { Set(value); }
template<AngleUnit U = Unit, typename = std::enable_if_t<U == AngleUnit::Radian>> explicit Angle(const Angle<AngleUnit::Degree, T>& value) { Set(value); }
template<typename U> explicit Angle(const Angle<Unit, U>& Angle);
Angle(const Angle&) = default;
~Angle() = default;
@@ -42,8 +40,6 @@ namespace Nz
void Normalize();
template<AngleUnit U = Unit, typename = std::enable_if_t<U == AngleUnit::Degree>> Angle& Set(const Angle<AngleUnit::Radian, T>& ang);
template<AngleUnit U = Unit, typename = std::enable_if_t<U == AngleUnit::Radian>> Angle& Set(const Angle<AngleUnit::Degree, T>& ang);
Angle& Set(const Angle& ang);
template<typename U> Angle& Set(const Angle<Unit, U>& ang);
@@ -55,6 +51,9 @@ namespace Nz
Angle<AngleUnit::Radian, T> ToRadianAngle() const;
String ToString() const;
template<AngleUnit U = Unit, typename = std::enable_if_t<U != AngleUnit::Degree>> operator Angle<AngleUnit::Degree, T>();
template<AngleUnit U = Unit, typename = std::enable_if_t<U != AngleUnit::Radian>> operator Angle<AngleUnit::Radian, T>();
Angle& operator=(const Angle&) = default;
Angle operator+(const Angle& other) const;