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 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 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; }