/// <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); }
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; }
private void OnResetVisualTreeExecute() { TreeVisualOptions.Clear(); var defaultTreesOPt = TreeVisualOption.DefaultTreeVisualOptions(); foreach (var item in defaultTreesOPt) { TreeVisualOptions.Add(item); item.PropertyChanged += VisualTree_PropertyChanged; } }
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; } }
public DesignTreeOptionsViewModel() { TreeVisualOptions = new ObservableCollection <TreeVisualOption>(TreeVisualOption.DefaultTreeVisualOptions()); }
private void OnSelectColorExecute(TreeVisualOption treeVisOpt) { treeVisOpt.Color = InsService.ColorPicker(treeVisOpt.Color); }
private void OnDeleteVisualTreeExecute(TreeVisualOption arg) { TreeVisualOptions.Remove(arg); }
private bool OnDeleteVisualTreeCanExecute(TreeVisualOption arg) { return(TreeVisualOptions.Count > 1); }