diff --git a/Infrastructure/UI/DataContexts/Ellipse.cs b/Infrastructure/UI/DataContexts/Ellipse.cs index 6f969a5..5cc82b2 100644 --- a/Infrastructure/UI/DataContexts/Ellipse.cs +++ b/Infrastructure/UI/DataContexts/Ellipse.cs @@ -9,7 +9,7 @@ using StructureHelperLogics.NdmCalculations.Materials; namespace StructureHelper.Infrastructure.UI.DataContexts { - public class Ellipse : PrimitiveBase + public class Ellipse : PrimitiveBase { private double square; public double Square @@ -44,5 +44,8 @@ namespace StructureHelper.Infrastructure.UI.DataContexts INdmPrimitive ndmPrimitive = new NdmPrimitive() { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial }; return ndmPrimitive; } + + public override Point MapToShape() + => new Point {Area = Square}; } } diff --git a/Infrastructure/UI/DataContexts/PrimitiveBase.cs b/Infrastructure/UI/DataContexts/PrimitiveBase.cs index 7a1711d..8a9c6bc 100644 --- a/Infrastructure/UI/DataContexts/PrimitiveBase.cs +++ b/Infrastructure/UI/DataContexts/PrimitiveBase.cs @@ -9,7 +9,7 @@ using StructureHelperLogics.NdmCalculations.Materials; namespace StructureHelper.Infrastructure.UI.DataContexts { - public abstract class PrimitiveBase : ViewModelBase + public abstract class PrimitiveBase : ViewModelBase where T : StructureHelperLogics.Data.Shapes.IShape { #region Поля @@ -266,5 +266,7 @@ namespace StructureHelper.Infrastructure.UI.DataContexts else { throw new Exception("MaterialType is unknown"); } return materialTypes; } + + public abstract T MapToShape(); } } diff --git a/Infrastructure/UI/DataContexts/Rectangle.cs b/Infrastructure/UI/DataContexts/Rectangle.cs index 732eb8d..ca1fdd8 100644 --- a/Infrastructure/UI/DataContexts/Rectangle.cs +++ b/Infrastructure/UI/DataContexts/Rectangle.cs @@ -6,10 +6,11 @@ using StructureHelper.Windows.MainWindow; using StructureHelperLogics.Data.Shapes; using StructureHelperLogics.NdmCalculations.Entities; using StructureHelperLogics.NdmCalculations.Materials; +using RectangleShape = StructureHelperLogics.Data.Shapes.Rectangle; namespace StructureHelper.Infrastructure.UI.DataContexts { - public class Rectangle : PrimitiveBase + public class Rectangle : PrimitiveBase { public Rectangle(double primitiveWidth, double primitiveHeight, double rectX, double rectY, MainViewModel mainViewModel) : base(PrimitiveType.Rectangle, rectX, rectY, mainViewModel) { @@ -33,5 +34,8 @@ namespace StructureHelper.Infrastructure.UI.DataContexts INdmPrimitive ndmPrimitive = new NdmPrimitive() { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial }; return ndmPrimitive; } + + public override RectangleShape MapToShape() + => new RectangleShape {Height = PrimitiveHeight, Width = PrimitiveWidth}; } } diff --git a/MaterialDefinitions/ConcreteDefinition.cs b/MaterialDefinitions/ConcreteDefinition.cs deleted file mode 100644 index 2d7c372..0000000 --- a/MaterialDefinitions/ConcreteDefinition.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MaterialResistanceCalc -{ - public class ConcreteDefinition : MaterialDefinition - { - public ConcreteDefinition(string materialClass, double youngModulus, double compressiveStrengthCoef, double tensileStrengthCoef, double materialCoefInCompress, double materialCoefInTension) - : base(materialClass, youngModulus, compressiveStrengthCoef, tensileStrengthCoef, materialCoefInCompress, materialCoefInTension) - { - CompressiveStrength = compressiveStrengthCoef * Math.Pow(10, 6); - TensileStrength = tensileStrengthCoef * Math.Sqrt(CompressiveStrength); - } - } -} diff --git a/MaterialDefinitions/MaterialDefinition.cs b/MaterialDefinitions/MaterialDefinition.cs deleted file mode 100644 index c64a46e..0000000 --- a/MaterialDefinitions/MaterialDefinition.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MaterialResistanceCalc -{ - public class MaterialDefinition - { - public string MaterialClass { get; set; } - public double YoungModulus { get; set; } - public double CompressiveStrength { get; set; } - public double TensileStrength { get; set; } - public double MaterialCoefInCompress { get; set; } - public double MaterialCoefInTension { get; set; } - - public MaterialDefinition(string materialClass, double youngModulus, double compressiveStrengthCoef, double tensileStrengthCoef, double materialCoefInCompress, double materialCoefInTension) - { - MaterialClass = materialClass; - YoungModulus = youngModulus; - CompressiveStrength = compressiveStrengthCoef; - TensileStrength = tensileStrengthCoef; - MaterialCoefInCompress = materialCoefInCompress; - MaterialCoefInTension = materialCoefInTension; - } - } -} diff --git a/MaterialDefinitions/RebarDefinition.cs b/MaterialDefinitions/RebarDefinition.cs deleted file mode 100644 index 2bbd3e6..0000000 --- a/MaterialDefinitions/RebarDefinition.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MaterialResistanceCalc -{ - public class RebarDefinition : MaterialDefinition - { - public RebarDefinition(string materialClass, double youngModulus, double compressiveStrengthCoef, double tensileStrengthCoef, double materialCoefInCompress, double materialCoefInTension) : base(materialClass, youngModulus, compressiveStrengthCoef, tensileStrengthCoef, materialCoefInCompress, materialCoefInTension) - { - YoungModulus = youngModulus * Math.Pow(10, 11); - CompressiveStrength = compressiveStrengthCoef * Math.Pow(10, 6); - TensileStrength = tensileStrengthCoef * Math.Pow(10, 6); - } - } -}