using NLog; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models.Forces.BeamShearActions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { /// public class ConcentratedForce : IConcentratedForce { private double relativeLoadLevel; private IUpdateStrategy? updateStrategy; /// public Guid Id { get;} /// public string Name { get; set; } /// public double ForceCoordinate { get; set; } /// public double ForceValue { get; set; } /// public double RelativeLoadLevel { get => relativeLoadLevel; set { if (value > 0.5d) { relativeLoadLevel = 0.5d; } if (value < -0.5d) { relativeLoadLevel = -0.5d; } relativeLoadLevel = value; } } /// public double LoadRatio { get; set; } = 1; public ConcentratedForce(Guid id) { Id = id; } /// public object Clone() { ConcentratedForce concentratedForce = new(Guid.NewGuid()); updateStrategy ??= new ConcentratedForceUpdateStrategy(); updateStrategy.Update(concentratedForce, this); return concentratedForce; } } }