diff --git a/StructureHelper/Infrastructure/Enums/PrimitiveType.cs b/StructureHelper/Infrastructure/Enums/PrimitiveType.cs
index 596226c..fd86219 100644
--- a/StructureHelper/Infrastructure/Enums/PrimitiveType.cs
+++ b/StructureHelper/Infrastructure/Enums/PrimitiveType.cs
@@ -4,6 +4,7 @@
{
Point,
Rectangle,
- Circle
+ Circle,
+ Reinforcement
}
}
\ No newline at end of file
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs
index 4673237..c0504ef 100644
--- a/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs
+++ b/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs
@@ -1,4 +1,5 @@
using StructureHelper.Infrastructure.UI.Converters.Units;
+using StructureHelper.Windows.ViewModels.NdmCrossSections;
using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Infrastructures.Strings;
using StructureHelperLogics.NdmCalculations.Primitives;
@@ -10,7 +11,7 @@ using System.Threading.Tasks;
namespace StructureHelper.Infrastructure.UI.DataContexts
{
- public class CircleViewPrimitive : PrimitiveBase, IHasDivision, IHasCenter
+ public class CircleViewPrimitive : PrimitiveBase, IHasCenter
{
ICirclePrimitive primitive;
public double Diameter
@@ -25,8 +26,6 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
RefreshPlacement();
}
}
- public int NdmMinDivision { get; set; }
- public double NdmMaxSize { get; set; }
public double PrimitiveLeft => DeltaX - Diameter / 2d;
public double PrimitiveTop => DeltaY - Diameter / 2d;
@@ -37,7 +36,9 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
{
throw new StructureHelperException(ErrorStrings.DataIsInCorrect + $"\nExpected: {nameof(ICirclePrimitive)}, But was: {nameof(primitive)}");
}
- this.primitive = primitive as ICirclePrimitive;
+ var circle = primitive as ICirclePrimitive;
+ this.primitive = circle;
+ DivisionViewModel = new HasDivisionViewModel(circle);
}
public override INdmPrimitive GetNdmPrimitive()
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/Factories/ViewPrimitiveFactory.cs b/StructureHelper/Infrastructure/UI/DataContexts/Factories/ViewPrimitiveFactory.cs
new file mode 100644
index 0000000..82d9ada
--- /dev/null
+++ b/StructureHelper/Infrastructure/UI/DataContexts/Factories/ViewPrimitiveFactory.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelper.Infrastructure.UI.DataContexts
+{
+ internal static class ViewPrimitiveFactory
+ {
+ // to do public static PrimitiveBase GetViewPrimitive() { }
+ }
+}
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/IHasDivision.cs b/StructureHelper/Infrastructure/UI/DataContexts/IHasDivision.cs
index 463022d..e6353db 100644
--- a/StructureHelper/Infrastructure/UI/DataContexts/IHasDivision.cs
+++ b/StructureHelper/Infrastructure/UI/DataContexts/IHasDivision.cs
@@ -1,4 +1,5 @@
-using System;
+using StructureHelper.Windows.ViewModels.NdmCrossSections;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -8,7 +9,6 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
{
internal interface IHasDivision
{
- int NdmMinDivision { get; set; }
- double NdmMaxSize { get; set; }
+ HasDivisionViewModel HasDivisionViewModel { get; }
}
}
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/LineViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/LineViewPrimitive.cs
deleted file mode 100644
index d9df827..0000000
--- a/StructureHelper/Infrastructure/UI/DataContexts/LineViewPrimitive.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using StructureHelper.Infrastructure.Enums;
-using StructureHelper.Services.Primitives;
-using StructureHelper.UnitSystem.Systems;
-using StructureHelper.Windows.MainWindow;
-using StructureHelperCommon.Models.Shapes;
-using StructureHelperLogics.Models.Primitives;
-using StructureHelperLogics.NdmCalculations.Primitives;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace StructureHelper.Infrastructure.UI.DataContexts
-{
- internal class LineViewPrimitive : PrimitiveBase
- {
- public LineViewPrimitive(ILinePrimitive primitive) : base(primitive)
- {
-
- }
-
- //public LineViewPrimitive(double x, double y, MainViewModel ownerVM) : base(x, y, ownerVM)
- //{
- //}
- }
-}
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/PrimitiveBase.cs b/StructureHelper/Infrastructure/UI/DataContexts/PrimitiveBase.cs
index 65f7625..c05f549 100644
--- a/StructureHelper/Infrastructure/UI/DataContexts/PrimitiveBase.cs
+++ b/StructureHelper/Infrastructure/UI/DataContexts/PrimitiveBase.cs
@@ -18,6 +18,7 @@ using StructureHelperCommon.Services.ColorServices;
using StructureHelperLogics.Models.Primitives;
using System.Windows.Controls;
using StructureHelperLogics.NdmCalculations.Primitives;
+using StructureHelper.Windows.ViewModels.NdmCrossSections;
namespace StructureHelper.Infrastructure.UI.DataContexts
{
@@ -34,6 +35,7 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
#endregion
#region Свойства
+ public HasDivisionViewModel DivisionViewModel { get; set; }
public INdmPrimitive NdmPrimitive
{
get => primitive;
@@ -68,6 +70,15 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
OnPropertyChanged(nameof(InvertedCenterY));
}
}
+ public bool Triangulate
+ {
+ get => primitive.Triangulate;
+ set
+ {
+ primitive.Triangulate = value;
+ OnPropertyChanged(nameof(Triangulate));
+ }
+ }
public double InvertedCenterY => - CenterY;
public double PrestrainKx
{ get => primitive.UsersPrestrain.Kx;
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs
index 58697f1..8a47f00 100644
--- a/StructureHelper/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs
+++ b/StructureHelper/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs
@@ -6,10 +6,13 @@ using StructureHelperCommon.Models.Shapes;
using System;
using StructureHelperLogics.Models.Primitives;
using StructureHelperLogics.NdmCalculations.Primitives;
+using StructureHelper.Windows.ViewModels.NdmCrossSections;
+using StructureHelperCommon.Infrastructures.Exceptions;
+using StructureHelperCommon.Infrastructures.Strings;
namespace StructureHelper.Infrastructure.UI.DataContexts
{
- public class RectangleViewPrimitive : PrimitiveBase, IHasDivision, IHasCenter
+ public class RectangleViewPrimitive : PrimitiveBase, IHasCenter
{
private IRectanglePrimitive primitive;
@@ -42,28 +45,11 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
{
get => DeltaY - primitive.Height / 2d;
}
- public int NdmMinDivision
- {
- get => primitive.NdmMinDivision;
- set
- {
- primitive.NdmMinDivision = value;
- OnPropertyChanged(nameof(NdmMinDivision));
- }
- }
- public double NdmMaxSize
- {
- get => primitive.NdmMaxSize;
- set
- {
- primitive.NdmMaxSize = value;
- OnPropertyChanged(nameof(NdmMaxSize));
- }
- }
public RectangleViewPrimitive(IRectanglePrimitive _primitive) : base(_primitive)
{
primitive = _primitive;
+ DivisionViewModel = new HasDivisionViewModel(primitive);
}
public override INdmPrimitive GetNdmPrimitive()
diff --git a/StructureHelper/Infrastructure/UI/DataContexts/ReinforcementViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/ReinforcementViewPrimitive.cs
new file mode 100644
index 0000000..72c467b
--- /dev/null
+++ b/StructureHelper/Infrastructure/UI/DataContexts/ReinforcementViewPrimitive.cs
@@ -0,0 +1,16 @@
+using StructureHelperLogics.NdmCalculations.Primitives;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelper.Infrastructure.UI.DataContexts
+{
+ internal class ReinforcementViewPrimitive : PointViewPrimitive
+ {
+ public ReinforcementViewPrimitive(IPointPrimitive _primitive) : base(_primitive)
+ {
+ }
+ }
+}
diff --git a/StructureHelper/Windows/MainWindow/MainView.xaml b/StructureHelper/Windows/MainWindow/MainView.xaml
index 58b339e..3c656b2 100644
--- a/StructureHelper/Windows/MainWindow/MainView.xaml
+++ b/StructureHelper/Windows/MainWindow/MainView.xaml
@@ -43,6 +43,7 @@
@@ -107,9 +108,10 @@
@@ -162,9 +164,10 @@