using System.ComponentModel; using System.Xml.Serialization; using Deltares.Mathematics; using Deltares.Standard; using Deltares.Standard.Attributes; using Deltares.Standard.Units; namespace Deltares.Stability { public class SlidingCircle : SlidingCurve { private Point2D center; private double drivingMoment; private double endSectionMoment; private double horizontalQuakeMoment; private double loadMoment; private double nailMoment; private double radius; private double resistingMoment; private double resistingMomentUniterated; private double soilMoment; private double textileMoment; private double watermoment; public SlidingCircle() { center = new Point2D(); Name = "Sliding Circle"; } public Point2D Center { get { return center; } set { center = value; } } [Label("Circle center x-coordinate")] [Format("F2")] [Unit(UnitType.Length)] public double CircleCenterX { get { return center.X; } } [Label("Circle center y-coordinate")] [Format("F2")] [Unit(UnitType.Length)] public double CircleCenterY { get { return center.Y; } } [Format("F2")] [Unit(UnitType.Length)] public double Radius { get { return radius; } set { radius = value; } } [Label("Driving moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double DrivingMoment { get { return drivingMoment; } set { drivingMoment = value; } } [Label("End section moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double EndSectionMoment { get { return endSectionMoment; } set { endSectionMoment = value; } } [Label("Horizontal quake moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double HorizontalQuakeMoment { get { return horizontalQuakeMoment; } set { horizontalQuakeMoment = value; } } [Label("Load moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double LoadMoment { get { return loadMoment; } set { loadMoment = value; } } [Label("Nail moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double NailMoment { get { return nailMoment; } set { nailMoment = value; } } [Label("Resisting moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double ResistingMoment { get { return resistingMoment; } set { resistingMoment = value; } } [Label("Resisting moment uniterated")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double ResistingMomentUniterated { get { return resistingMomentUniterated; } set { resistingMomentUniterated = value; } } [Label("Soil moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double SoilMoment { get { return soilMoment; } set { soilMoment = value; } } [Label("Textile moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double TextileMoment { get { return textileMoment; } set { textileMoment = value; } } [Label("Water moment")] [Format("F2")] [Unit(UnitType.Force)] [ReadOnly(true)] public double WaterMoment { get { return watermoment; } set { watermoment = value; } } [XmlIgnore] [ReadOnly(true)] public override string Name { get { return string.Format("({0:F3}, {1:F3}) / {2:F3}", this.CircleCenterX, this.CircleCenterY, this.CircleCenterY - this.Radius); } set { base.Name = value; } } } }