2023-05-24 10:04:01 +00:00
|
|
|
using InnovEnergy.Lib.SrcGen;
|
|
|
|
using InnovEnergy.Lib.SrcGen.Attributes;
|
2023-04-25 09:27:57 +00:00
|
|
|
using static System.Math;
|
2023-02-26 09:38:28 +00:00
|
|
|
|
|
|
|
namespace InnovEnergy.Lib.Units;
|
|
|
|
|
2023-05-24 10:04:01 +00:00
|
|
|
[Generate<Operators>("HAS_CONSTRUCTOR")][Generate<Sum>]
|
2023-02-26 14:39:55 +00:00
|
|
|
public readonly partial struct Angle
|
2023-02-26 09:38:28 +00:00
|
|
|
{
|
|
|
|
public static String Unit => "rad";
|
|
|
|
public static String Symbol => "∠";
|
|
|
|
|
2023-04-25 09:27:57 +00:00
|
|
|
public Angle(Double value)
|
2023-02-26 09:38:28 +00:00
|
|
|
{
|
2023-04-25 09:27:57 +00:00
|
|
|
var modulo = value % Tau; // tau is 2pi
|
2023-02-26 09:38:28 +00:00
|
|
|
|
2023-04-25 09:27:57 +00:00
|
|
|
Value = modulo > PI
|
|
|
|
? modulo - Tau
|
2023-02-26 09:38:28 +00:00
|
|
|
: modulo;
|
|
|
|
}
|
|
|
|
}
|