From 64b64cc1e0b0cdf243e46c5b79201ace14f1ab35 Mon Sep 17 00:00:00 2001 From: ig Date: Wed, 30 Aug 2023 16:50:38 +0200 Subject: [PATCH] some QOL improvements --- csharp/Lib/Units/Composite/AcPower.cs | 47 +++++++++++++++++---------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/csharp/Lib/Units/Composite/AcPower.cs b/csharp/Lib/Units/Composite/AcPower.cs index e525233fd..5e38cb07e 100644 --- a/csharp/Lib/Units/Composite/AcPower.cs +++ b/csharp/Lib/Units/Composite/AcPower.cs @@ -6,8 +6,6 @@ namespace InnovEnergy.Lib.Units.Composite; public sealed class AcPower { - private AcPower(){} - public required ApparentPower Apparent { get; init; } public required ActivePower Active { get; init; } public required ReactivePower Reactive { get; init; } @@ -84,23 +82,36 @@ public sealed class AcPower }; } - public static AcPower Null => FromVoltageCurrentPhi(0, 0, 0); + public static AcPower operator +(AcPower left, AcPower right) + { + return FromActiveReactive + ( + left.Active + right.Active, + left.Reactive + right.Reactive + ); + } + + public static AcPower operator -(AcPower left, AcPower right) + { + return left + -right; + } + + public static AcPower operator -(AcPower p) + { + var activePower = -p.Active; + var reactivePower = -p.Reactive; + + return FromActiveReactive + ( + activePower, + reactivePower + ); + } + + + public static implicit operator AcPower(Double p) => FromActiveReactive(p, 0); + public static implicit operator AcPower(Int32 p) => FromActiveReactive(p, 0); - public static AcPower operator +(AcPower left, AcPower right) => FromActiveReactive - ( - left.Active + right.Active, - left.Reactive + right.Reactive - ); - public static AcPower operator -(AcPower left, AcPower right) => FromActiveReactive - ( - left.Active - right.Active, - left.Reactive - right.Reactive - ); - - public static AcPower operator -(AcPower p) => FromActiveReactive(-p.Active, p.Reactive); - - - public override String ToString() => Active.ToString(); // TODO: show all } \ No newline at end of file