private StructuralArea ReduceSize(StructuralArea baseLayer, double rate) { var reduced = new StructuralArea(); baseLayer.Polygon .ForEach(p => { var parallel_node = new Node(p.X/rate, p.Y/rate, p.Z/rate); reduced.Add(parallel_node); } ); return reduced; }
private StructuralArea CreateAreaOnTopOf(StructuralArea layer, double D) { var parallel_area = new StructuralArea {T = D}; layer.Polygon .ForEach(p => { var parallel_node = new Node(p.X, p.Y, p.Z); parallel_area.Add(parallel_node); } ); double dist = layer.T + SectionsDistane; parallel_area .Move( -layer.normal.X*dist, -layer.normal.Y*dist, -layer.normal.Z*dist ); return parallel_area; }
private void CreateModel3DElementsFromArea(object compositeThermalSection, StructuralArea structuralArea) { StructuralArea baseLayer = structuralArea; baseLayer = ReduceSize(baseLayer, 3); StructuralArea templayer = baseLayer; if (compositeThermalSection is CompositeThermalSection) { foreach (IThermalSection section in ((CompositeThermalSection) compositeThermalSection).Sections) { //StructuralArea area = CreateAreaOnTopOf(templayer, section.D.Value); //templayer = area; //BuildingStructuralElements.Slab slab = new BuildingBuilder().CreateSlab(area.Area); //slab.T = section.D.Value; //AddSectionToModel(slab, section); } } }
private StructuralArea CreateAreaOnSideOf(StructuralArea layer, double D) { var parallel_area = new StructuralArea {T = D}; layer.Polygon .ForEach(p => { var parallel_node = new Node(p.X, p.Y, p.Z); parallel_area.Add(parallel_node); } ); double dist = layer.T/2; // +SectionsDistane; parallel_area .Move( 0, 0, layer.GetMiddle().Z + dist ); return parallel_area; }