Ejemplo n.º 1
0
        /// <summary>
        /// Графика визуализации заданной высотности (настройка визуализации елочек)
        /// </summary>
        /// <param name="insPoint">инс точка</param>
        /// <param name="treeOpt">Настройка визуализации высоты улочек</param>
        /// <param name="p1">Первая точка елочки (левый верхний угол прямоугольника). Для первой елочки p1=p2=insPoint</param>
        /// <param name="p2">Правый верхний угол елочки</param>
        /// <param name="p3">Нижний правый угол елочки (возвращается)</param>
        /// <param name="p4">Нижений левый угол елочки (возвращается)</param>
        /// <returns></returns>
        private Polyline GetPolylineTreeOption(InsPoint insPoint, TreeVisualOption treeOpt, VisualOption visOpt,
                                               Point2d p1, Point2d p2, out Point2d p3, out Point2d p4)
        {
            var ptOrig     = insPoint.Point.Convert2d();
            var calcValues = TreeModel.Model.CalcService.CalcValues;

            double cShadow;
            // Высота тени (на заданной настройкой высоте елочки) - катет по Y
            var yShadow = calcValues.YShadowLineByHeight(treeOpt.Height, out cShadow);

            // Луч падения - катет по X до точки на луче, на заданой высоте
            var xRay = calcValues.GetXRay(yShadow, insPoint.AngleStartOnPlane);

            p3 = ptOrig + new Vector2d(xRay, -yShadow);

            xRay = calcValues.GetXRay(yShadow, insPoint.AngleEndOnPlane);
            p4   = ptOrig + new Vector2d(xRay, -yShadow);

            var points = new List <Point2d> {
                p1, p2, p3, p4
            };

            var pl = CreatePolyline(points, visOpt);

            return(pl);
        }
Ejemplo n.º 2
0
        private void OnAddVisualTreeExecute()
        {
            var lastVisOpt = TreeVisualOptions.Last();
            var c          = TreeVisualOption.GetNextColor(lastVisOpt.Color);
            var visTree    = new TreeVisualOption(c, lastVisOpt.Height + 10);

            TreeVisualOptions.Add(visTree);
            visTree.PropertyChanged += VisualTree_PropertyChanged;
        }
Ejemplo n.º 3
0
        private void OnResetVisualTreeExecute()
        {
            TreeVisualOptions.Clear();
            var defaultTreesOPt = TreeVisualOption.DefaultTreeVisualOptions();

            foreach (var item in defaultTreesOPt)
            {
                TreeVisualOptions.Add(item);
                item.PropertyChanged += VisualTree_PropertyChanged;
            }
        }
Ejemplo n.º 4
0
        private void HeightChanged()
        {
            // Провеерка высот
            var treeVisOpts = TreeVisualOptions.ToList();

            TreeVisualOption.CheckAndCorrect(ref treeVisOpts);
            TreeVisualOptions.Clear();
            foreach (var item in treeVisOpts)
            {
                TreeVisualOptions.Add(item);
                item.PropertyChanged += VisualTree_PropertyChanged;
            }
        }
Ejemplo n.º 5
0
 public DesignTreeOptionsViewModel()
 {
     TreeVisualOptions = new ObservableCollection <TreeVisualOption>(TreeVisualOption.DefaultTreeVisualOptions());
 }
Ejemplo n.º 6
0
 private void OnSelectColorExecute(TreeVisualOption treeVisOpt)
 {
     treeVisOpt.Color = InsService.ColorPicker(treeVisOpt.Color);
 }
Ejemplo n.º 7
0
 private void OnDeleteVisualTreeExecute(TreeVisualOption arg)
 {
     TreeVisualOptions.Remove(arg);
 }
Ejemplo n.º 8
0
 private bool OnDeleteVisualTreeCanExecute(TreeVisualOption arg)
 {
     return(TreeVisualOptions.Count > 1);
 }