Force tuple update strategy was fixed

This commit is contained in:
Evgeny Redikultsev
2023-07-24 21:36:23 +05:00
parent ac079eb612
commit ce97586d2b
2 changed files with 10 additions and 8 deletions

View File

@@ -14,14 +14,13 @@ namespace StructureHelperCommon.Models.Forces
public void Update(IForceTuple targetObject, IForceTuple sourceObject) public void Update(IForceTuple targetObject, IForceTuple sourceObject)
{ {
if (ReferenceEquals(targetObject, sourceObject)) { return; } if (ReferenceEquals(targetObject, sourceObject)) { return; }
CheckObject.IsNull(targetObject, ": target object "); CheckObject.CompareTypes(targetObject, sourceObject);
CheckObject.IsNull(sourceObject, ": source object ");
targetObject.Mx = sourceObject.Mx; targetObject.Mx = sourceObject.Mx;
targetObject.My = sourceObject.My; targetObject.My = sourceObject.My;
targetObject.Nz = targetObject.Nz; targetObject.Nz = sourceObject.Nz;
targetObject.Qx = targetObject.Qx; targetObject.Qx = sourceObject.Qx;
targetObject.Qy = targetObject.Qy; targetObject.Qy = sourceObject.Qy;
targetObject.Mz = sourceObject.Mz; targetObject.Mz = sourceObject.Mz;
} }
} }

View File

@@ -1,10 +1,12 @@
using StructureHelperCommon.Services.Forces; using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Services.Forces;
namespace StructureHelperCommon.Models.Forces namespace StructureHelperCommon.Models.Forces
{ {
/// <inheritdoc/> /// <inheritdoc/>
public class StrainTuple : IForceTuple public class StrainTuple : IForceTuple
{ {
private readonly IUpdateStrategy<IForceTuple> updateStrategy = new ForceTupleUpdateStrategy();
/// <inheritdoc/> /// <inheritdoc/>
public double Mx { get; set; } public double Mx { get; set; }
/// <inheritdoc/> /// <inheritdoc/>
@@ -21,8 +23,9 @@ namespace StructureHelperCommon.Models.Forces
/// <inheritdoc/> /// <inheritdoc/>
public object Clone() public object Clone()
{ {
StrainTuple forceTuple = new StrainTuple() { Mx = Mx, My = My, Nz = Nz, Qx = Qx, Qy = Qy, Mz = Mz }; var newItem = new StrainTuple();
return forceTuple; updateStrategy.Update(newItem, this);
return newItem;
} }
public static StrainTuple operator +(StrainTuple first) => first; public static StrainTuple operator +(StrainTuple first) => first;
public static StrainTuple operator +(StrainTuple first, ForceTuple second) public static StrainTuple operator +(StrainTuple first, ForceTuple second)