diff --git a/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs
index 22ad14a..cc995f6 100644
--- a/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs
+++ b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs
@@ -27,7 +27,8 @@ namespace DataAccess.DTOs
Id = id;
VisualProperty = new PrimitiveVisualPropertyDTO(Guid.NewGuid())
{
- Color = (Color)ColorConverter.ConvertFromString("Black")
+ Color = (Color)ColorConverter.ConvertFromString("Gray"),
+ Opacity = 0.5
};
}
diff --git a/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs
index 9d3dcf3..252b8d3 100644
--- a/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs
+++ b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs
@@ -36,7 +36,8 @@ namespace DataAccess.DTOs
Id = id;
VisualProperty = new PrimitiveVisualPropertyDTO(Guid.NewGuid())
{
- Color = (Color)ColorConverter.ConvertFromString("Brown")
+ Color = (Color)ColorConverter.ConvertFromString("Brown"),
+ Opacity = 0.5
};
}
diff --git a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/BeamShearSectionPrimitive.cs b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/BeamShearSectionPrimitive.cs
index 3200c44..4f75ada 100644
--- a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/BeamShearSectionPrimitive.cs
+++ b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/BeamShearSectionPrimitive.cs
@@ -17,9 +17,11 @@ namespace StructureHelper.Infrastructure.UI.GraphicalPrimitives
public double CenterX { get; set; } = 0;
public double CenterY { get; set; } = 0;
public double FullDepth => inclinedSection.FullDepth;
- public double EffectiveDepth => inclinedSection.EffectiveDepth;
- public double BottomCover => FullDepth - EffectiveDepth;
- public double PositiveLength => inclinedSection.EffectiveDepth * 3.5;
+ public double WebWidth => inclinedSection.WebWidth;
+ public double ReinforcementArea => inclinedSection.BeamShearSection.ReinforcementArea;
+ public double EffectiveDepth => Math.Round(inclinedSection.EffectiveDepth, 3);
+ public double BottomCover => Math.Round(FullDepth - EffectiveDepth, 3);
+ public double PositiveLength => 100;
public double NegativeLength { get; set; } = -0.1;
public double SupportHeight { get; set; } = 0.1;
public double SupportWidth { get; set; } = 0.2;
@@ -29,6 +31,8 @@ namespace StructureHelper.Infrastructure.UI.GraphicalPrimitives
public IPrimitiveVisualProperty VisualProperty => beamShearSection.VisualProperty;
+ public IBeamShearSection BeamShearSection => beamShearSection;
+
public BeamShearSectionPrimitive(IBeamShearSection beamShearSection, IInclinedSection inclinedSection)
{
this.beamShearSection = beamShearSection;
diff --git a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/IGraphicalPrimitive.cs b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/IGraphicPrimitive.cs
similarity index 100%
rename from StructureHelper/Infrastructure/UI/GraphicalPrimitives/IGraphicalPrimitive.cs
rename to StructureHelper/Infrastructure/UI/GraphicalPrimitives/IGraphicPrimitive.cs
diff --git a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/InclinedSectionPrimitive.cs b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/InclinedSectionPrimitive.cs
index 1cc4884..b03fbf7 100644
--- a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/InclinedSectionPrimitive.cs
+++ b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/InclinedSectionPrimitive.cs
@@ -14,9 +14,11 @@ namespace StructureHelper.Infrastructure.UI.GraphicalPrimitives
public double SectionEndX => inclinedSection.EndCoord;
public double SectionStartY => inclinedSection.FullDepth - inclinedSection.EffectiveDepth;
public double SectionEndY => inclinedSection.FullDepth;
- public double FactorOfUsing => source.FactorOfUsing;
- public double EffectiveDepth => inclinedSection.EffectiveDepth;
+ public double FactorOfUsing => Math.Round(source.FactorOfUsing, 4);
+ public double EffectiveDepth => Math.Round(inclinedSection.EffectiveDepth, 3);
public double SpanRatio => (inclinedSection.EndCoord - inclinedSection.StartCoord) / inclinedSection.EffectiveDepth;
+ public double ActualShearForce => Math.Round(source.InputData.ForceTuple.Qy);
+ public double UltimateShearForce => Math.Round(source.TotalStrength);
public double CenterX => 0;
public double CenterY => 0;
diff --git a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByDensityPrimitive.cs b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByDensityPrimitive.cs
new file mode 100644
index 0000000..6df83a6
--- /dev/null
+++ b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByDensityPrimitive.cs
@@ -0,0 +1,27 @@
+using StructureHelperCommon.Models.VisualProperties;
+using StructureHelperLogics.Models.BeamShears;
+
+namespace StructureHelper.Infrastructure.UI.GraphicalPrimitives
+{
+ internal class StirrupByDensityPrimitive : IGraphicalPrimitive
+ {
+ public IStirrupByDensity StirrupByDensity { get; }
+
+ public double CenterX => 0;
+ public double CenterY => 0;
+ public double StartPoinX => StirrupByDensity.StartCoordinate;
+ public double BottomPointY => InclinedSection.FullDepth - InclinedSection.EffectiveDepth;
+ public double TopPointY => InclinedSection.FullDepth;
+ public double Length => StirrupByDensity.EndCoordinate - StirrupByDensity.StartCoordinate;
+ public double Depth => InclinedSection.EffectiveDepth;
+ public IPrimitiveVisualProperty VisualProperty => StirrupByDensity.VisualProperty;
+
+ public IInclinedSection InclinedSection { get; set; }
+
+ public StirrupByDensityPrimitive(IStirrupByDensity stirrupByDensity, IInclinedSection inclinedSection)
+ {
+ StirrupByDensity = stirrupByDensity;
+ this.InclinedSection = inclinedSection;
+ }
+ }
+}
diff --git a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByInclinedRebarPrimitive.cs b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByInclinedRebarPrimitive.cs
new file mode 100644
index 0000000..c8edf7e
--- /dev/null
+++ b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByInclinedRebarPrimitive.cs
@@ -0,0 +1,36 @@
+using StructureHelperCommon.Models.VisualProperties;
+using StructureHelperLogics.Models.BeamShears;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelper.Infrastructure.UI.GraphicalPrimitives
+{
+ public class StirrupByInclinedRebarPrimitive : IGraphicalPrimitive
+ {
+ private IInclinedSection inclinedSection;
+ public IStirrupByInclinedRebar StirrupByInclinedRebar { get; }
+ public double StartPointX => StirrupByInclinedRebar.StartCoordinate;
+ public double StartPointY => inclinedSection.FullDepth - StirrupByInclinedRebar.CompressedGap;
+ public double EndPointX => StirrupByInclinedRebar.StartCoordinate + GetRebarLengthX();
+ public double EndPointY => inclinedSection.FullDepth - inclinedSection.EffectiveDepth;
+
+ public double CenterX => 0;
+ public double CenterY => 0;
+ public IPrimitiveVisualProperty VisualProperty => StirrupByInclinedRebar.VisualProperty;
+ public StirrupByInclinedRebarPrimitive(IStirrupByInclinedRebar stirrupByInclinedRebar, IInclinedSection inclinedSection)
+ {
+ StirrupByInclinedRebar = stirrupByInclinedRebar;
+ this.inclinedSection = inclinedSection;
+ }
+ private double GetRebarLengthX()
+ {
+ double angleInRadian = Math.PI * StirrupByInclinedRebar.AngleOfInclination / 180;
+ double rebarLengthY = inclinedSection.EffectiveDepth - StirrupByInclinedRebar.CompressedGap;
+ double rebarLengthX = rebarLengthY / Math.Tan(angleInRadian);
+ return rebarLengthX;
+ }
+ }
+}
diff --git a/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByRebarPrimitive.cs b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByRebarPrimitive.cs
new file mode 100644
index 0000000..a943e16
--- /dev/null
+++ b/StructureHelper/Infrastructure/UI/GraphicalPrimitives/StirrupByRebarPrimitive.cs
@@ -0,0 +1,34 @@
+using StructureHelperCommon.Models.VisualProperties;
+using StructureHelperLogics.Models.BeamShears;
+using System;
+
+namespace StructureHelper.Infrastructure.UI.GraphicalPrimitives
+{
+ public class StirrupByRebarPrimitive : IGraphicalPrimitive
+ {
+ private readonly IInclinedSection inclinedSection;
+ private readonly IStirrupByDensity stirrupByDensity;
+
+ public IStirrupByRebar StirrupByRebar { get; }
+ public double CenterX => 0;
+ public double CenterY => 0;
+ public double StartPoinX => StirrupByRebar.StartCoordinate;
+ public double BottomPointY => InclinedSection.FullDepth - InclinedSection.EffectiveDepth;
+ public double TopPointY => InclinedSection.FullDepth;
+ public double Length => StirrupByRebar.EndCoordinate - StirrupByRebar.StartCoordinate;
+ public double Depth => InclinedSection.EffectiveDepth;
+ public double Density => Math.Round(stirrupByDensity.StirrupDensity);
+ public IPrimitiveVisualProperty VisualProperty => StirrupByRebar.VisualProperty;
+
+
+ public IInclinedSection InclinedSection => inclinedSection;
+
+ public StirrupByRebarPrimitive(IStirrupByRebar stirrupByRebar, IInclinedSection inclinedSection)
+ {
+ this.StirrupByRebar = stirrupByRebar;
+ this.inclinedSection = inclinedSection;
+ var logic = new StirrupByRebarToDensityConvertStrategy(null, inclinedSection);
+ stirrupByDensity = logic.Convert(stirrupByRebar);
+ }
+ }
+}
diff --git a/StructureHelper/Infrastructure/UI/Resources/BeamShearTemplate.xaml b/StructureHelper/Infrastructure/UI/Resources/BeamShearTemplate.xaml
index a317762..524141f 100644
--- a/StructureHelper/Infrastructure/UI/Resources/BeamShearTemplate.xaml
+++ b/StructureHelper/Infrastructure/UI/Resources/BeamShearTemplate.xaml
@@ -9,9 +9,11 @@
+
+
+
@@ -27,11 +29,14 @@
-
-
+
+
+
-
-
+
+
+
+
@@ -40,9 +45,25 @@
X2="{Binding PositiveLength}"
Y1="{Binding BottomCover}"
Y2="{Binding BottomCover}"
- Stroke="DarkGray"
- StrokeThickness="0.02"
- />
+ Stroke="Black"
+ StrokeThickness="0.012"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+