Files
StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/CalculatorLogic.cs
Evgeny Redikultsev ac34a26c15 Add lib material tests
2025-12-21 10:54:30 +05:00

60 lines
2.3 KiB
C#

using StructureHelperCommon.Models;
using StructureHelperCommon.Models.Calculators;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
using StructureHelperLogics.NdmCalculations.Analyses.ValueDiagrams;
using StructureHelperLogics.NdmCalculations.Cracking;
namespace StructureHelperLogics.Models.Templates.CrossSections
{
internal class CalculatorLogic : ICalculatorLogic
{
public IEnumerable<ICalculator> GetNdmCalculators()
{
var calculators = new List<ICalculator>();
ForceCalculator forceCalculator = GetForceCalculator();
calculators.Add(forceCalculator);
CrackCalculator crackCalculator = GetCrackCalculator();
calculators.Add(crackCalculator);
ValueDiagramCalculator diagramCalculator = GetDiagramCalculator();
calculators.Add(diagramCalculator);
return calculators;
}
private static ValueDiagramCalculator GetDiagramCalculator()
{
ValueDiagramCalculator diagramCalculator = new(Guid.NewGuid()) { Name = "New value diagram calcualtor"};
ValueDiagramEntity diagramEntity = new(Guid.NewGuid()) { Name = "New diagram" };
diagramEntity.ValueDiagram.Point2DRange.StartPoint.Y = 0.25;
diagramEntity.ValueDiagram.Point2DRange.EndPoint.Y = - 0.25;
diagramCalculator.InputData.Diagrams.Add(diagramEntity);
return diagramCalculator;
}
private static ForceCalculator GetForceCalculator()
{
return new ForceCalculator(Guid.NewGuid())
{
Name = "New Force Calculator",
TraceLogger = new ShiftTraceLogger()
};
}
private static CrackCalculator GetCrackCalculator()
{
var newInputData = new CrackCalculatorInputData();
var checkLogic = new CheckCrackCalculatorInputDataLogic
{
Entity = newInputData
};
checkLogic.Entity = newInputData;
var crackCalculator = new CrackCalculator(checkLogic, new CrackCalculatorUpdateStrategy(), null)
{
Name = "New Crack Calculator",
TraceLogger = new ShiftTraceLogger()
};
crackCalculator.InputData = newInputData;
return crackCalculator;
}
}
}