using StructureHelperLogics.Models.Materials;
using StructureHelperCommon.Models.Shapes;
using StructureHelper.Models.Materials;
using System.Collections;
using LoaderCalculator.Data.Ndms;
using LoaderCalculator.Data.Materials;
using System.Collections.Generic;
using StructureHelperCommon.Infrastructures.Interfaces;
using System;
using StructureHelperCommon.Models.Forces;
using StructureHelperLogics.Models.CrossSections;
using StructureHelperLogics.NdmCalculations.Triangulations;
using StructureHelperCommon.Models.Parameters;
namespace StructureHelperLogics.NdmCalculations.Primitives
{
///
/// Geometrical primitive which generates ndm elemtntary part
///
public interface INdmPrimitive : ISaveable, ICloneable
{
///
/// Name of primitive
///
string? Name { get; set; }
///
/// Base point of primitive
///
IPoint2D Center { get; }
///
/// Host cross-section for primitive
///
ICrossSection? CrossSection { get; set; }
///
/// Material of primitive
///
IHeadMaterial? HeadMaterial { get; set; }
///
/// Flag of triangulation
///
bool Triangulate { get; set; }
///
/// Prestrain assigned from user
///
StrainTuple UsersPrestrain { get; }
///
/// Prestrain assigned from calculations
///
StrainTuple AutoPrestrain { get; }
///
/// Visual settings
///
IVisualProperty VisualProperty {get; }
IEnumerable GetNdms(ITriangulationOptions triangulationOptions);
List GetValuePoints();
}
}