Пример #1
0
        public FrontValue Clone()
        {
            var resVal = new FrontValue();

            resVal.InsValue = InsValue;
            resVal.Line     = (Polyline)Line.Clone();
            return(resVal);
        }
Пример #2
0
        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;
        }
Пример #3
0
        /// <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());
            }
        }