public FrontValue Clone() { var resVal = new FrontValue(); resVal.InsValue = InsValue; resVal.Line = (Polyline)Line.Clone(); return(resVal); }
public void AddFront(FrontValue front) { var w = Line.ConstantWidth; int index = Line.NumberOfVertices; for (int i = 1; i < front.Line.NumberOfVertices; i++) { Line.AddVertexAt(index++, front.Line.GetPoint2dAt(i), 0, 0, 0); } Line.ConstantWidth = w; }
/// <summary> /// Расчет фронтов дома /// </summary> public void Update(int?numberHouseInGroup = null) { if (Contour == null) { return; } if (numberHouseInGroup.HasValue) { this.numberHouseInGroup = numberHouseInGroup.Value; } DefineName(); // Визуализация зданий в доме UpdateBuildingsVisual(); // Очистка визуализации фронтов VisualFront.Dispose(); var calcService = FrontGroup.Front.Model.CalcService; try { // Отдельные линии инсоляции List <List <FrontCalcPoint> > contourSegmentsCalcPoints; var frontLines = calcService.CalcFront.CalcHouse(this, out contourSegmentsCalcPoints); ContourSegmentsCalcPoints = contourSegmentsCalcPoints; // Объединение линий фронтов для визуализациир //var frontLinesCopy = FrontLines.Select(s => s.Clone()).ToList(); var frontLinesMerged = FrontValue.Merge(ref frontLines); VisualFront.FrontLines = frontLinesMerged; IsVisualFront = FrontGroup.IsVisualFrontOn; } catch (UserBreakException) { throw; } catch (Exception ex) { AddError(ex.ToString()); } }