Added reviewing of results in graphic mode

This commit is contained in:
Evgeny Redikultsev
2022-09-10 20:16:05 +05:00
parent c12e9f70f9
commit 78ec7bdc6f
26 changed files with 389 additions and 85 deletions

View File

@@ -1,8 +1,18 @@
using LoaderCalculator.Data.Matrix;
using LoaderCalculator;
using LoaderCalculator.Data.Matrix;
using LoaderCalculator.Data.Ndms;
using LoaderCalculator.Data.ResultData;
using LoaderCalculator.Data.SourceData;
using StructureHelper.Services;
using StructureHelper.UnitSystem;
using StructureHelper.UnitSystem.Systems;
using StructureHelperLogics.Infrastructures.CommonEnums;
using StructureHelperLogics.NdmCalculations.Triangulations;
using StructureHelperLogics.Services;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
namespace StructureHelper.Windows.MainWindow
{
@@ -26,5 +36,39 @@ namespace StructureHelper.Windows.MainWindow
.Select(x => x.GetNdmPrimitive(unitSystem))
.Concat(primitiveRepository.GetPoints().Select(x => x.GetNdmPrimitive(unitSystem))).ToArray(), mx, my, nz);
}
public IEnumerable<INdm> GetNdms()
{
var unitSystem = unitSystemService.GetCurrentSystem();
var ndmPrimitives = primitiveRepository.GetRectangles()
.Select(x => x.GetNdmPrimitive(unitSystem))
.Concat(primitiveRepository.GetPoints().Select(x => x.GetNdmPrimitive(unitSystem))).ToArray();
//Настройки триангуляции, пока опции могут быть только такие
ITriangulationOptions options = new TriangulationOptions { LimiteState = LimitStates.Collapse, CalcTerm = CalcTerms.ShortTerm };
//Формируем коллекцию элементарных участков для расчета в библитеке (т.е. выполняем триангуляцию)
List<INdm> ndmCollection = new List<INdm>();
ndmCollection.AddRange(Triangulation.GetNdms(ndmPrimitives, options));
return ndmCollection;
}
public ILoaderResults CalculateResult(IEnumerable<INdm> ndmCollection, IForceMatrix forceMatrix)
{
var loaderData = new LoaderOptions
{
Preconditions = new Preconditions
{
ConditionRate = 0.01,
MaxIterationCount = 100,
StartForceMatrix = forceMatrix
},
NdmCollection = ndmCollection
};
var calculator = new Calculator();
calculator.Run(loaderData, new CancellationToken());
return calculator.Result;
}
}
}