public readonly struct angle180
readonly float _val, _raw;
public angle180( float angle )
if( float.IsInfinity( angle ) ) throw new System.ArgumentException("Input value must be finite", "angle");
if( float.IsNaN( angle ) ) throw new System.ArgumentException("Input value must not be NaN", "angle");
while( _val < -180 ) _val += 360;
while( _val > 180 ) _val -= 360;
public float val { get { return _val; } }
public float raw { get { return _raw; } }
public override string ToString() => _val.ToString();
public static angle180 operator +(angle180 a) => a;
public static angle180 operator -(angle180 a) => new angle180( - a.val );
public static angle180 operator +(angle180 lhs, angle180 rhs) => new angle180( lhs.val + rhs.val );
public static angle180 operator *(angle180 lhs, angle180 rhs) => new angle180( lhs.val * rhs.val );
public static angle180 operator /(angle180 lhs, angle180 rhs) {
if (rhs.val == 0) throw new System.DivideByZeroException();
return new angle180( lhs.val / rhs.val ); }
public static implicit operator angle180(float rhs) => new angle180( rhs );
public static implicit operator float(angle180 rhs) => rhs.val;
public static float operator +(float lhs, angle180 rhs) => ( new angle180( lhs + rhs.val ) ).val;
public static float operator +(angle180 lhs, float rhs) => ( new angle180( lhs.val + rhs ) ).val;
public static float operator -(float lhs, angle180 rhs) => ( new angle180( lhs - rhs.val ) ).val;
public static float operator -(angle180 lhs, float rhs) => ( new angle180( lhs.val - rhs ) ).val;
public static float operator *(float lhs, angle180 rhs) => ( new angle180( lhs * rhs.val ) ).val;
public static float operator *(angle180 lhs, float rhs) => ( new angle180( lhs.val * rhs ) ).val;
public static float operator /(float lhs, angle180 rhs) {
if (rhs.val == 0) throw new System.DivideByZeroException();
return ( new angle180( lhs / rhs.val ) ).val; }
public static float operator /(angle180 lhs, float rhs) {
if (rhs == 0) throw new System.DivideByZeroException();
return ( new angle180( lhs.val / rhs ) ).val; }