예제 #1
0
 public void UpdateVisual()
 {
     // отрисовка зданий (с дополнениями по фронту)
     UpdateBuildingsVisual();
     // Отрисовка фронтов
     VisualFront?.VisualUpdate();
 }
예제 #2
0
        //public House (FrontGroup frontGroup)
        //{
        //    FrontGroup = frontGroup;
        //    Doc = FrontGroup.Front.Model.Doc;
        //    VisualFront = new VisualFront(Doc);
        //}

        public House(InsModel model, int index)
        {
            Model       = model;
            Doc         = model.Doc;
            Index       = index;
            VisualFront = new VisualFront(Doc);
        }
예제 #3
0
 public void ClearVisual()
 {
     if (Sections != null)
     {
         foreach (var item in Sections)
         {
             item.DisposeVisual();
         }
     }
     VisualFront?.VisualsDelete();
 }
예제 #4
0
 private void OnIsVisualFrontChanged()
 {
     if (IsVisualFront)
     {
         VisualFront.VisualIsOn = true;
     }
     else
     {
         VisualFront.Dispose(); // Т.к. при включении обновляется расчет фронтов
     }
 }
예제 #5
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());
            }
        }
예제 #6
0
 public void DisposeVisuals()
 {
     VisualFront?.Dispose();
     FrontGroup = null;
     //DisposeFrontLines();
 }