diff --git a/FieldVisualizer/Entities/ColorMaps/Factories/ColorMapFactory.cs b/FieldVisualizer/Entities/ColorMaps/Factories/ColorMapFactory.cs
index b5c0010..e259a79 100644
--- a/FieldVisualizer/Entities/ColorMaps/Factories/ColorMapFactory.cs
+++ b/FieldVisualizer/Entities/ColorMaps/Factories/ColorMapFactory.cs
@@ -1,12 +1,18 @@
-using FieldVisualizer.InfraStructures.Enums;
-using FieldVisualizer.InfraStructures.Exceptions;
+using FieldVisualizer.InfraStructures.Exceptions;
using FieldVisualizer.InfraStructures.Strings;
-using System;
using System.Collections.Generic;
using System.Windows.Media;
namespace FieldVisualizer.Entities.ColorMaps.Factories
{
+ public enum ColorMapsTypes
+ {
+ LiraSpectrum = 0, //Lira
+ FullSpectrum = 1, //StaDiCon
+ RedToWhite = 2,
+ RedToBlue = 3,
+ BlueToWhite = 4,
+ }
///
/// Factory for creating of different color maps
///
@@ -18,13 +24,39 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
if (mapsTypes == ColorMapsTypes.RedToWhite) { return GetRedToWhite(); }
if (mapsTypes == ColorMapsTypes.RedToBlue) { return GetRedToBlue(); }
if (mapsTypes == ColorMapsTypes.BlueToWhite) { return GetBlueToWhite(); }
+ if (mapsTypes == ColorMapsTypes.LiraSpectrum) { return GetLiraSpectrum(); }
else { throw new FieldVisulizerException(ErrorStrings.ColorMapTypeIsUnknown); }
}
+ private static IColorMap GetLiraSpectrum()
+ {
+ ColorMap colorMap = new()
+ {
+ Name = "LiraSpectrumColorMap"
+ };
+ List colors = new();
+ byte Alpha = 0xff;
+ colors.AddRange(new Color[]{
+ Color.FromArgb(Alpha, 0, 0, 128) ,//Dark Blue
+ Color.FromArgb(Alpha, 0, 0, 255) ,//Blue
+ Color.FromArgb(Alpha, 0, 128, 255) ,//Blue
+ Color.FromArgb(Alpha, 0, 200, 255) ,//Blue
+ Color.FromArgb(Alpha, 60, 255, 255) ,//Light Blue
+ Color.FromArgb(Alpha, 255, 255, 128) ,//Light Yellow
+ Color.FromArgb(Alpha, 255, 255, 0) ,//Yellow
+ Color.FromArgb(Alpha, 255, 215, 0) ,//Gold
+ Color.FromArgb(Alpha, 255, 128, 0) ,//Orange Red
+ Color.FromArgb(Alpha, 255, 0, 0) ,//Red
+ });
+ colorMap.Colors = colors;
+ return colorMap;
+ }
private static IColorMap GetFullSpectrum()
{
- ColorMap colorMap = new ColorMap();
- colorMap.Name = "FullSpectrumColorMap";
+ ColorMap colorMap = new()
+ {
+ Name = "FullSpectrumColorMap"
+ };
List colors = new List();
byte Alpha = 0xff;
colors.AddRange(new Color[]{
@@ -43,7 +75,6 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
colorMap.Colors = colors;
return colorMap;
}
-
private static IColorMap GetRedToWhite()
{
ColorMap colorMap = new ColorMap();
@@ -57,7 +88,6 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
colorMap.Colors = colors;
return colorMap;
}
-
private static IColorMap GetRedToBlue()
{
ColorMap colorMap = new ColorMap();
@@ -71,7 +101,6 @@ namespace FieldVisualizer.Entities.ColorMaps.Factories
colorMap.Colors = colors;
return colorMap;
}
-
private static IColorMap GetBlueToWhite()
{
ColorMap colorMap = new ColorMap();
diff --git a/FieldVisualizer/Entities/ColorMaps/IValueColorRange.cs b/FieldVisualizer/Entities/ColorMaps/IValueColorRange.cs
index d4da2bc..395993c 100644
--- a/FieldVisualizer/Entities/ColorMaps/IValueColorRange.cs
+++ b/FieldVisualizer/Entities/ColorMaps/IValueColorRange.cs
@@ -1,19 +1,35 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Media;
+using System.Windows.Media;
namespace FieldVisualizer.Entities.ColorMaps
{
+ ///
+ /// Colored range for building color legend
+ ///
public interface IValueColorRange
{
+ ///
+ /// Flag of activity
+ ///
bool IsActive { get; set; }
+ ///
+ /// Minimum value of range
+ ///
double BottomValue { get; set; }
+ ///
+ /// Average value of range
+ ///
double AverageValue { get; set; }
+ ///
+ /// Maximum value of range
+ ///
double TopValue {get;set;}
+ ///
+ /// Color correspondent to minimum value
+ ///
Color BottomColor { get; set; }
+ ///
+ /// Color correspondent to maximum value
+ ///
Color TopColor { get; set; }
}
}
diff --git a/FieldVisualizer/Entities/ColorMaps/ValueColorRange.cs b/FieldVisualizer/Entities/ColorMaps/ValueColorRange.cs
index 92eaff5..695cca3 100644
--- a/FieldVisualizer/Entities/ColorMaps/ValueColorRange.cs
+++ b/FieldVisualizer/Entities/ColorMaps/ValueColorRange.cs
@@ -1,19 +1,21 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Media;
+using System.Windows.Media;
namespace FieldVisualizer.Entities.ColorMaps
{
+ ///
public class ValueColorRange : IValueColorRange
{
+ ///
public bool IsActive { get; set; }
+ ///
public double BottomValue { get; set; }
+ ///
public double AverageValue { get; set; }
+ ///
public double TopValue { get; set; }
+ ///
public Color BottomColor { get; set; }
+ ///
public Color TopColor { get; set; }
}
}
diff --git a/FieldVisualizer/FieldVisualizer.csproj b/FieldVisualizer/FieldVisualizer.csproj
index 0a3b622..dc9183b 100644
--- a/FieldVisualizer/FieldVisualizer.csproj
+++ b/FieldVisualizer/FieldVisualizer.csproj
@@ -8,4 +8,12 @@
7.0
+
+
+
+
+
+
+
+
diff --git a/FieldVisualizer/InfraStructures/Enums/ColorMapsTypes.cs b/FieldVisualizer/InfraStructures/Enums/ColorMapsTypes.cs
deleted file mode 100644
index 5be9d8c..0000000
--- a/FieldVisualizer/InfraStructures/Enums/ColorMapsTypes.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace FieldVisualizer.InfraStructures.Enums
-{
- public enum ColorMapsTypes
- {
- FullSpectrum = 0,
- RedToWhite = 1,
- RedToBlue = 2,
- BlueToWhite = 3
- }
-}
diff --git a/FieldVisualizer/Services/ColorServices/ColorOperations.cs b/FieldVisualizer/Services/ColorServices/ColorOperations.cs
index dd4c7c7..9b3148d 100644
--- a/FieldVisualizer/Services/ColorServices/ColorOperations.cs
+++ b/FieldVisualizer/Services/ColorServices/ColorOperations.cs
@@ -1,5 +1,6 @@
using FieldVisualizer.Entities.ColorMaps;
using FieldVisualizer.Entities.Values;
+using StructureHelperCommon.Infrastructures.Exceptions;
using System;
using System.Collections.Generic;
using System.Text;
@@ -10,54 +11,123 @@ namespace FieldVisualizer.Services.ColorServices
public static class ColorOperations
{
const byte Alpha = 0xff;
- public static Color GetColorByValue(IValueRange range, IColorMap map, double val)
- {
- if (range.TopValue == range.BottomValue || map.Colors.Count == 0) { return map.Colors[0]; }
- double minVal = range.BottomValue - 1e-15d*(Math.Abs(range.BottomValue));
- double maxVal = range.TopValue + 1e-15d * (Math.Abs(range.TopValue));
- if (val > maxVal || val < minVal) { return Colors.Gray; }
- if (val == minVal) { return map.Colors[0]; }
- if (val == maxVal) { return map.Colors[map.Colors.Count - 1]; }
-
- double valPerc = (val - minVal) / (maxVal - minVal);// value%
- if (valPerc >= 1d)
- { return map.Colors[map.Colors.Count - 1]; }
- double colorPerc = 1d / (map.Colors.Count - 1d); // % of each block of color. the last is the "100% Color"
- double blockOfColor = valPerc / colorPerc;// the integer part repersents how many block to skip
- int blockIdx = (int)Math.Truncate(blockOfColor);// Idx of
- double valPercResidual = valPerc - (blockIdx * colorPerc);//remove the part represented of block
- double percOfColor = valPercResidual / colorPerc;// % of color of this block that will be filled
-
- Color cTarget = map.Colors[blockIdx];
- Color cNext = map.Colors[blockIdx + 1];
-
- var deltaR = cNext.R - cTarget.R;
- var deltaG = cNext.G - cTarget.G;
- var deltaB = cNext.B - cTarget.B;
-
- var R = cTarget.R + (deltaR * percOfColor);
- var G = cTarget.G + (deltaG * percOfColor);
- var B = cTarget.B + (deltaB * percOfColor);
-
- Color c = map.Colors[0];
- c = Color.FromArgb(Alpha, (byte)R, (byte)G, (byte)B);
- return c;
- }
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static IEnumerable GetValueColorRanges(IValueRange fullRange, IEnumerable valueRanges, IColorMap colorMap)
{
var colorRanges = new List();
foreach (var valueRange in valueRanges)
{
- IValueColorRange valueColorRange = new ValueColorRange();
- valueColorRange.IsActive = true;
- valueColorRange.BottomValue = valueRange.BottomValue;
- valueColorRange.AverageValue = (valueRange.BottomValue + valueRange.TopValue) / 2;
- valueColorRange.TopValue = valueRange.TopValue;
+ IValueColorRange valueColorRange = new ValueColorRange
+ {
+ IsActive = true,
+ BottomValue = valueRange.BottomValue,
+ AverageValue = (valueRange.BottomValue + valueRange.TopValue) / 2,
+ TopValue = valueRange.TopValue
+ };
valueColorRange.BottomColor = GetColorByValue(fullRange, colorMap, valueColorRange.BottomValue);
valueColorRange.TopColor = GetColorByValue(fullRange, colorMap, valueColorRange.TopValue);
colorRanges.Add(valueColorRange);
}
return colorRanges;
}
+ ///
+ /// Returns color by value, range of value an color map
+ ///
+ /// Range of valoue
+ /// Color map
+ /// Value
+ ///
+ public static Color GetColorByValue(IValueRange range, IColorMap map, double val)
+ {
+ CheckColorMap(map);
+ if (range.TopValue == range.BottomValue || map.Colors.Count == 1) //if range width is zero or map contain just 1 color
+ {
+ return map.Colors[0];
+ }
+ var valueRange = GetExtendedRange(range);
+ if (val >= valueRange.TopValue || val <= valueRange.BottomValue)
+ {
+ return GetColorValueIsOutOfRange(valueRange, map, val);
+ }
+ return GetColorValueIsInRange(valueRange, map, val);
+ }
+
+ private static Color GetColorValueIsOutOfRange(IValueRange range, IColorMap map, double val)
+ {
+ if (val > range.TopValue || val < range.BottomValue)
+ {
+ return Colors.Gray;
+ }
+ if (val == range.BottomValue)
+ {
+ return map.Colors[0];
+ }
+ if (val == range.TopValue)
+ {
+ return map.Colors[^1];
+ }
+ throw new StructureHelperException(ErrorStrings.DataIsInCorrect);
+ }
+
+ private static Color GetColorValueIsInRange(IValueRange range, IColorMap map, double val)
+ {
+ var deltaVal = val - range.BottomValue;
+ var rangeWidth = range.TopValue - range.BottomValue;
+ var valPerc = deltaVal / rangeWidth; // percent of value on the distance from minValue to maxValue
+ if (valPerc >= 1d)
+ {
+ return map.Colors[^1];
+ }
+ double colorPerc = 1d / (map.Colors.Count - 1d); // % of each block of color. the last is the "100% Color"
+ double blockOfColor = valPerc / colorPerc;// the integer part repersents how many block to skip
+ int blockIdx = (int)Math.Truncate(blockOfColor);// Idx of
+ double valPercResidual = valPerc - (blockIdx * colorPerc);//remove the part represented of block
+ double percOfColor = valPercResidual / colorPerc;// % of color of this block that will be filled
+
+ Color c = GetColorByColorMap(map, blockIdx, percOfColor);
+ return c;
+ }
+
+ private static IValueRange GetExtendedRange(IValueRange range)
+ {
+ var minVal = range.BottomValue - 1e-15d * Math.Abs(range.BottomValue);
+ var maxVal = range.TopValue + 1e-15d * Math.Abs(range.TopValue);
+ return new ValueRange()
+ {
+ BottomValue = minVal,
+ TopValue = maxVal
+ };
+ }
+
+ private static Color GetColorByColorMap(IColorMap map, int blockIdx, double percOfColor)
+ {
+ Color cTarget = map.Colors[blockIdx];
+ Color cNext = map.Colors[blockIdx + 1];
+
+ var deltaRed = cNext.R - cTarget.R;
+ var deltaGreen = cNext.G - cTarget.G;
+ var deltaBlue = cNext.B - cTarget.B;
+
+ var Red = cTarget.R + (deltaRed * percOfColor);
+ var Green = cTarget.G + (deltaGreen * percOfColor);
+ var Blue = cTarget.B + (deltaBlue * percOfColor);
+
+ Color c = Color.FromArgb(Alpha, (byte)Red, (byte)Green, (byte)Blue);
+ return c;
+ }
+
+ private static void CheckColorMap(IColorMap map)
+ {
+ if (map.Colors.Count == 0)
+ {
+ throw new StructureHelperException(ErrorStrings.DataIsInCorrect + ": Color map is empty");
+ }
+ }
}
}
diff --git a/FieldVisualizer/ViewModels/FieldViewerViewModels/FieldViewerViewModel.cs b/FieldVisualizer/ViewModels/FieldViewerViewModels/FieldViewerViewModel.cs
index 4f16ce6..540abf1 100644
--- a/FieldVisualizer/ViewModels/FieldViewerViewModels/FieldViewerViewModel.cs
+++ b/FieldVisualizer/ViewModels/FieldViewerViewModels/FieldViewerViewModel.cs
@@ -1,27 +1,22 @@
-using FieldVisualizer.Entities.ColorMaps.Factories;
-using FieldVisualizer.Entities.ColorMaps;
-using FieldVisualizer.Entities.Values.Primitives;
+using FieldVisualizer.Entities.ColorMaps;
+using FieldVisualizer.Entities.ColorMaps.Factories;
using FieldVisualizer.Entities.Values;
+using FieldVisualizer.Entities.Values.Primitives;
using FieldVisualizer.Infrastructure.Commands;
-using FieldVisualizer.InfraStructures.Enums;
using FieldVisualizer.InfraStructures.Exceptions;
using FieldVisualizer.InfraStructures.Strings;
using FieldVisualizer.Services.ColorServices;
using FieldVisualizer.Services.PrimitiveServices;
using FieldVisualizer.Services.ValueRanges;
+using FieldVisualizer.Windows.UserControls;
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Linq;
-using System.Runtime.CompilerServices;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
-using FieldVisualizer.Windows.UserControls;
-using System.ComponentModel;
-using System.Xml.Serialization;
namespace FieldVisualizer.ViewModels.FieldViewerViewModels
{
@@ -177,7 +172,7 @@ namespace FieldVisualizer.ViewModels.FieldViewerViewModels
public FieldViewerViewModel()
{
- _ColorMapType = ColorMapsTypes.FullSpectrum;
+ _ColorMapType = ColorMapsTypes.LiraSpectrum;
RebuildCommand = new RelayCommand(o => ProcessPrimitives(), o => PrimitiveValidation());
ZoomInCommand = new RelayCommand(o => Zoom(1.2), o => PrimitiveValidation());
ZoomOutCommand = new RelayCommand(o => Zoom(0.8), o => PrimitiveValidation());
diff --git a/FieldVisualizer/Windows/UserControls/FieldViewer.xaml.cs b/FieldVisualizer/Windows/UserControls/FieldViewer.xaml.cs
index 1166be2..96e6753 100644
--- a/FieldVisualizer/Windows/UserControls/FieldViewer.xaml.cs
+++ b/FieldVisualizer/Windows/UserControls/FieldViewer.xaml.cs
@@ -1,23 +1,7 @@
-using FieldVisualizer.Entities.ColorMaps;
-using FieldVisualizer.Entities.ColorMaps.Factories;
-using FieldVisualizer.Entities.Values;
-using FieldVisualizer.Entities.Values.Primitives;
-using FieldVisualizer.Infrastructure.Commands;
-using FieldVisualizer.InfraStructures.Enums;
-using FieldVisualizer.InfraStructures.Exceptions;
-using FieldVisualizer.InfraStructures.Strings;
-using FieldVisualizer.Services.ColorServices;
-using FieldVisualizer.Services.PrimitiveServices;
-using FieldVisualizer.Services.ValueRanges;
+using FieldVisualizer.Entities.Values.Primitives;
using FieldVisualizer.ViewModels.FieldViewerViewModels;
-using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Shapes;
namespace FieldVisualizer.Windows.UserControls
{
@@ -39,17 +23,6 @@ namespace FieldVisualizer.Windows.UserControls
viewModel.Legend = LegendViewer;
}
- //public FieldViewer(FieldViewerViewModel vm)
- //{
- // InitializeComponent();
- // viewModel = vm;
- // this.DataContext = viewModel;
- // PrimitiveSet = viewModel.PrimitiveSet;
- // viewModel.WorkPlaneBox = WorkPlaneBox;
- // viewModel.WorkPlaneCanvas = WorkPlaneCanvas;
- // viewModel.Legend = LegendViewer;
- //}
-
public IPrimitiveSet PrimitiveSet { get => viewModel.PrimitiveSet; set { viewModel.PrimitiveSet = value; } }
internal void Refresh()
diff --git a/StructureHelper.sln b/StructureHelper.sln
index 10d38cf..7bf9930 100644
--- a/StructureHelper.sln
+++ b/StructureHelper.sln
@@ -14,6 +14,9 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructureHelperLogics", "StructureHelperLogics\StructureHelperLogics.csproj", "{C9192AE7-EE6D-409C-A05C-3549D78CBB34}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FieldVisualizer", "FieldVisualizer\FieldVisualizer.csproj", "{6CAC5B83-81F3-47C2-92A1-0F94A58491C2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A} = {F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A}
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/StructureHelper/Libraries/LoaderCalculator.dll b/StructureHelper/Libraries/LoaderCalculator.dll
index f2db256..7a3289f 100644
Binary files a/StructureHelper/Libraries/LoaderCalculator.dll and b/StructureHelper/Libraries/LoaderCalculator.dll differ
diff --git a/StructureHelperCommon/Models/Materials/ConcreteLogicOptions.cs b/StructureHelperCommon/Models/Materials/ConcreteLogicOptions.cs
index cb9af68..cae9321 100644
--- a/StructureHelperCommon/Models/Materials/ConcreteLogicOptions.cs
+++ b/StructureHelperCommon/Models/Materials/ConcreteLogicOptions.cs
@@ -13,6 +13,7 @@ namespace StructureHelperCommon.Models.Materials
public List SafetyFactors { get; set; }
public LimitStates LimitState { get; set; }
public CalcTerms CalcTerm { get; set; }
+ public double Age { get; set; }
public ILibMaterialEntity MaterialEntity { get; set; }
public bool WorkInCompression { get; set; }
public bool WorkInTension { get; set; }
diff --git a/StructureHelperCommon/Models/Materials/ConcreteMaterialOptionLogic.cs b/StructureHelperCommon/Models/Materials/ConcreteMaterialOptionLogic.cs
index c8e0b67..69016d0 100644
--- a/StructureHelperCommon/Models/Materials/ConcreteMaterialOptionLogic.cs
+++ b/StructureHelperCommon/Models/Materials/ConcreteMaterialOptionLogic.cs
@@ -38,6 +38,7 @@ namespace StructureHelperCommon.Models.Materials
concreteOptions.ExternalFactor.Tensile = strength.Tensile;
concreteOptions.WorkInTension = options.WorkInTension;
concreteOptions.RelativeHumidity = options.RelativeHumidity;
+ concreteOptions.Age = options.Age;
}
}
}
diff --git a/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs b/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs
index 352e9c6..c10926e 100644
--- a/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs
+++ b/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs
@@ -1,17 +1,17 @@
-using StructureHelperCommon.Infrastructures.Enums;
+using LoaderCalculator.Data.Materials;
+using StructureHelperCommon.Infrastructures.Enums;
+using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Infrastructures.Settings;
+using StructureHelperCommon.Models.Materials;
using StructureHelperCommon.Models.Materials.Libraries;
using LMBuilders = LoaderCalculator.Data.Materials.MaterialBuilders;
using LMLogic = LoaderCalculator.Data.Materials.MaterialBuilders.MaterialLogics;
-using LM = LoaderCalculator.Data.Materials;
-using LoaderCalculator.Data.Materials;
-using StructureHelperCommon.Infrastructures.Exceptions;
-using StructureHelperCommon.Models.Materials;
namespace StructureHelperLogics.Models.Materials
{
public class ConcreteLibMaterial : IConcreteLibMaterial
{
+ const double maxAge = 70d * 365 * 24 * 60 * 60;
const MaterialTypes materialType = MaterialTypes.Concrete;
private readonly List materialLogics;
private LMBuilders.ConcreteOptions lmOptions;
@@ -26,14 +26,18 @@ namespace StructureHelperLogics.Models.Materials
public bool TensionForULS { get ; set; }
///
public bool TensionForSLS { get; set; }
- ///
- /// Humidity of concrete
- ///
+ ///
public double RelativeHumidity { get; set; }
///
public IMaterialLogic MaterialLogic { get; set; }
///
+ public double MinAge { get; set; }
+ ///
+ public double MaxAge { get; set; }
+ ///
public List MaterialLogics => materialLogics;
+
+
public ConcreteLibMaterial()
{
materialLogics = ProgramSetting.MaterialLogics.Where(x => x.MaterialType == materialType).ToList();
@@ -44,6 +48,8 @@ namespace StructureHelperLogics.Models.Materials
TensionForULS = false;
TensionForSLS = true;
RelativeHumidity = 0.55d;
+ MinAge = 0d;
+ MaxAge = maxAge;
}
public object Clone()
@@ -107,6 +113,7 @@ namespace StructureHelperLogics.Models.Materials
{
options.WorkInTension = false;
}
+ options.Age = MinAge;
}
else if (limitState == LimitStates.SLS)
{
@@ -118,6 +125,14 @@ namespace StructureHelperLogics.Models.Materials
{
options.WorkInTension = false;
}
+ if (calcTerm == CalcTerms.LongTerm)
+ {
+ options.Age = MaxAge;
+ }
+ else
+ {
+ options.Age = MinAge;
+ }
}
else
{
diff --git a/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs b/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs
index 21a35c8..ee1fd73 100644
--- a/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs
+++ b/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs
@@ -11,6 +11,11 @@ namespace StructureHelperLogics.Models.Materials
{
bool TensionForULS { get; set; }
bool TensionForSLS { get; set; }
+ ///
+ /// Humidity of concrete
+ ///
double RelativeHumidity { get; set; }
+ double MinAge { get; set; }
+ double MaxAge { get; set; }
}
}
diff --git a/StructureHelperTests/FieldsVisualizerTests/ColorOperationTests/GetColorByValueTest.cs b/StructureHelperTests/FieldsVisualizerTests/ColorOperationTests/GetColorByValueTest.cs
index fa883b0..a3e5ef9 100644
--- a/StructureHelperTests/FieldsVisualizerTests/ColorOperationTests/GetColorByValueTest.cs
+++ b/StructureHelperTests/FieldsVisualizerTests/ColorOperationTests/GetColorByValueTest.cs
@@ -1,10 +1,8 @@
using FieldVisualizer.Entities.ColorMaps;
using FieldVisualizer.Entities.ColorMaps.Factories;
using FieldVisualizer.Entities.Values;
-using FieldVisualizer.InfraStructures.Enums;
using FieldVisualizer.Services.ColorServices;
using NUnit.Framework;
-using System.Windows.Media;
namespace StructureHelperTests.FieldsVisualizerTests.ColorOperationTests
{
diff --git a/StructureHelperTests/FieldsVisualizerTests/WindowTests/ViewerTest.cs b/StructureHelperTests/FieldsVisualizerTests/WindowTests/ViewerTest.cs
index 460ddb9..79002d6 100644
--- a/StructureHelperTests/FieldsVisualizerTests/WindowTests/ViewerTest.cs
+++ b/StructureHelperTests/FieldsVisualizerTests/WindowTests/ViewerTest.cs
@@ -1,14 +1,7 @@
-using FieldVisualizer.Entities.ColorMaps;
-using FieldVisualizer.Entities.ColorMaps.Factories;
-using FieldVisualizer.Entities.Values;
-using FieldVisualizer.Entities.Values.Primitives;
-using FieldVisualizer.InfraStructures.Enums;
-using FieldVisualizer.Services.ColorServices;
+using FieldVisualizer.Entities.Values.Primitives;
using FieldVisualizer.Services.PrimitiveServices;
using FieldVisualizer.Windows;
using NUnit.Framework;
-using System.Collections.Generic;
-using System.Windows.Media;
namespace StructureHelperTests.FieldsVisualizerTests.WindowTests
{