Shapes Mapping has been added to DataContext's primitives

This commit is contained in:
NickAppLab
2022-07-14 11:00:14 +05:00
parent 54d51e7de8
commit 4d3ecf7770
6 changed files with 12 additions and 67 deletions

View File

@@ -9,7 +9,7 @@ using StructureHelperLogics.NdmCalculations.Materials;
namespace StructureHelper.Infrastructure.UI.DataContexts
{
public class Ellipse : PrimitiveBase
public class Ellipse : PrimitiveBase<Point>
{
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};
}
}

View File

@@ -9,7 +9,7 @@ using StructureHelperLogics.NdmCalculations.Materials;
namespace StructureHelper.Infrastructure.UI.DataContexts
{
public abstract class PrimitiveBase : ViewModelBase
public abstract class PrimitiveBase<T> : 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();
}
}

View File

@@ -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<RectangleShape>
{
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};
}
}

View File

@@ -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);
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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);
}
}
}