| | |
| | | public EditerL3d() |
| | | { |
| | | InitializeComponent(); |
| | | this.Unloaded += OnUnloaded; |
| | | } |
| | | |
| | | #region 事件集合 |
| | |
| | | /// 选择改变事件 |
| | | /// </summary> |
| | | public event Action<List<VisualL3d>> SelectionChangedEvent; |
| | | /// <summary> |
| | | /// 添加改变事件 |
| | | /// </summary> |
| | | public event Action<VisualL3d> AddChangedEvent; |
| | | /// <summary> |
| | | /// 编辑改变事件 |
| | | /// </summary> |
| | | public event Action<List<VisualL3d>> EditChangedEvent; |
| | | /// <summary> |
| | | /// 移除改变事件 |
| | | /// </summary> |
| | | public event Action<List<VisualL3d>> RemoveChangedEvent; |
| | | |
| | | #endregion |
| | | |
| | |
| | | |
| | | #region 初始化 |
| | | |
| | | |
| | | /// <summary> |
| | | /// 初始化 |
| | | /// </summary> |
| | |
| | | { |
| | | _manager = new DrawEditManager(this.viewport); |
| | | _manager.Initial(nw); |
| | | _manager.SelectionChangedEvent += (List<VisualL3d> visuals) => this.SelectionChangedEvent?.Invoke(visuals); |
| | | _manager.SelectionChangedEvent += OnSelectionChanged; |
| | | _manager.AddChangedEvent += OnAddChanged; |
| | | _manager.EditChangedEvent += OnEditChanged; |
| | | _manager.RemoveChangedEvent += OnRemoveChanged; |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | _manager?.SelectVisual(Ids); |
| | | } |
| | | |
| | | //处理选择改变 |
| | | private void OnSelectionChanged(List<VisualL3d> visuals) |
| | | { |
| | | this.SelectionChangedEvent?.Invoke(visuals); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 缩放并选择构件 |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 颜色覆盖 |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void SetColor(string Id, string htmlColor) |
| | | { |
| | | _manager?.SetColor(Id, htmlColor); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void SetColor(List<string> Ids, string htmlColor) |
| | | { |
| | | _manager?.SetColor(Ids, htmlColor); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void SetColor(List<ColorL3d> list) |
| | | { |
| | | _manager?.SetColor(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void ClearColor(string Id) |
| | | { |
| | | _manager?.ClearColor(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void ClearColor(List<string> Ids) |
| | | { |
| | | _manager?.ClearColor(Ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除颜色 |
| | | /// </summary> |
| | | public void ClearColor() |
| | | { |
| | | _manager?.ClearColor(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 透明度 |
| | | |
| | | /// <summary> |
| | | /// 设置透明度 |
| | | /// </summary> |
| | | public void SetOpacity(string Id, double opacity) |
| | | { |
| | | _manager?.SetOpacity(Id, opacity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置透明度 |
| | | /// </summary> |
| | | public void SetOpacity(List<string> Ids, double opacity) |
| | | { |
| | | _manager?.SetOpacity(Ids, opacity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置透明度 |
| | | /// </summary> |
| | | public void SetOpacity(List<OpacityL3d> list) |
| | | { |
| | | _manager?.SetOpacity(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除透明度 |
| | | /// </summary> |
| | | public void ClearOpacity(string Id) |
| | | { |
| | | _manager?.ClearOpacity(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除透明度 |
| | | /// </summary> |
| | | public void ClearOpacity(List<string> Ids) |
| | | { |
| | | _manager?.ClearOpacity(Ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除透明度 |
| | | /// </summary> |
| | | public void ClearOpacity() |
| | | { |
| | | _manager?.ClearOpacity(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 可见性 |
| | | |
| | | /// <summary> |
| | | /// 设置可见性 |
| | | /// </summary> |
| | | public void SetVisible(string Id, bool visible) |
| | | { |
| | | _manager?.SetVisible(Id, visible); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置可见性 |
| | | /// </summary> |
| | | public void SetVisible(List<string> Ids, bool visible) |
| | | { |
| | | _manager?.SetVisible(Ids, visible); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置可见性 |
| | | /// </summary> |
| | | public void SetVisible(List<VisibleL3d> list) |
| | | { |
| | | _manager?.SetVisible(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除可见性 |
| | | /// </summary> |
| | | public void ClearVisible(string Id) |
| | | { |
| | | _manager?.ClearVisible(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除可见性 |
| | | /// </summary> |
| | | public void ClearVisible(List<string> Ids) |
| | | { |
| | | _manager?.ClearVisible(Ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除可见性 |
| | | /// </summary> |
| | | public void ClearVisible() |
| | | { |
| | | _manager?.ClearVisible(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 公告文本 |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 公告文本可见性 |
| | | /// </summary> |
| | | public bool BillboardTextVisible |
| | | { |
| | | get { return _manager?.BillboardTextVisible ?? false; } |
| | | set |
| | | { |
| | | if (_manager != null) |
| | | { |
| | | _manager.BillboardTextVisible = value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置公告文本 |
| | | /// </summary> |
| | | /// <param name="items"></param> |
| | | public void SetBillboardText(TextL3d item) |
| | | { |
| | | _manager.SetBillboardText(item); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置公告文本 |
| | | /// </summary> |
| | | public void SetBillboardText(List<TextL3d> items) |
| | | { |
| | | _manager.SetBillboardText(items); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新公告文本 |
| | | /// </summary> |
| | | public void UpdateBillboardText(TextL3d item) |
| | | { |
| | | _manager.UpdateBillboardText(item); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新公告文本 |
| | | /// </summary> |
| | | public void UpdateBillboardText(List<TextL3d> items) |
| | | { |
| | | _manager.UpdateBillboardText(items); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 水流方向可见性 |
| | | /// </summary> |
| | | public bool FlowDirectionVisible |
| | | { |
| | | get { return _manager?.FlowDirectionVisible ?? false; } |
| | | set |
| | | { |
| | | if (_manager != null) |
| | | { |
| | | _manager.FlowDirectionVisible = value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置水流方向 |
| | | /// </summary> |
| | | public void SetFlowDirection(FlowDirectionL3d item) |
| | | { |
| | | _manager.SetFlowDirection(item); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置水流方向 |
| | | /// </summary> |
| | | public void SetFlowDirection(List<FlowDirectionL3d> items) |
| | | { |
| | | _manager.SetFlowDirection(items); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新水流方向 |
| | | /// </summary> |
| | | public void UpdateFlowDirection(FlowDirectionL3d item) |
| | | { |
| | | _manager.UpdateFlowDirection(item); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新水流方向 |
| | | /// </summary> |
| | | public void UpdateFlowDirection(List<FlowDirectionL3d> items) |
| | | { |
| | | _manager.UpdateFlowDirection(items); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | #region 添加模式 |
| | | |
| | | /// <summary> |
| | | /// 设置添加模式 |
| | | /// </summary> |
| | | public void SetAddMode(eDrawAddWay addWay, eDrawAddType addType) |
| | | { |
| | | _manager?.SetAddMode(addWay, addType); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置添加方式 |
| | | /// </summary> |
| | | public void SetAddWay(eDrawAddWay addWay) |
| | |
| | | public void SetAddType(eDrawAddType addType) |
| | | { |
| | | _manager?.SetAddType(addType); |
| | | } |
| | | |
| | | //处理添加改变 |
| | | private void OnAddChanged(VisualL3d visual) |
| | | { |
| | | if (visual == null) |
| | | { |
| | | return; |
| | | } |
| | | this.AddChangedEvent?.Invoke(visual); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | _manager?.EndEdit(); |
| | | } |
| | | |
| | | //处理编辑改变 |
| | | private void OnEditChanged(List<VisualL3d> visuals) |
| | | { |
| | | if (visuals == null || visuals.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | this.EditChangedEvent?.Invoke(visuals); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 移除模式 |
| | | |
| | | /// <summary> |
| | | /// 移除可见元素 |
| | | /// </summary> |
| | | public bool RemoveVisual(string Id) |
| | | { |
| | | if (_manager == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (string.IsNullOrEmpty(Id)) |
| | | { |
| | | return false; |
| | | } |
| | | return _manager.RemoveVisual(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 移除可见元素 |
| | | /// </summary> |
| | | public bool RemoveVisual(List<string> Ids) |
| | | { |
| | | if (_manager == null) |
| | | { |
| | | return false; |
| | | } |
| | | if (Ids == null || Ids.Count < 1) |
| | | { |
| | | return false; |
| | | } |
| | | return _manager.RemoveVisual(Ids); |
| | | } |
| | | |
| | | //处理移除改变 |
| | | private void OnRemoveChanged(List<VisualL3d> visuals) |
| | | { |
| | | if (visuals == null || visuals.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | this.RemoveChangedEvent?.Invoke(visuals); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 卸载 |
| | | /// </summary> |
| | | private void OnUnloaded(object sender, RoutedEventArgs e) |
| | | { |
| | | if (_manager != null) |
| | | { |
| | | _manager.SelectionChangedEvent -= OnSelectionChanged; |
| | | _manager.AddChangedEvent -= OnAddChanged; |
| | | _manager.EditChangedEvent -= OnEditChanged; |
| | | _manager.RemoveChangedEvent -= OnRemoveChanged; |
| | | _manager?.Close(); |
| | | _manager = null; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |