using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Yw.WpfUI.Hydro
{
///
/// ViewerL3d.xaml 的交互逻辑
///
public partial class ViewerL3d : UserControl
{
public ViewerL3d()
{
InitializeComponent();
this.Unloaded += OnUnloaded;
}
#region 事件集合
///
/// 选择改变事件
///
public event Action> SelectionChangedEvent;
#endregion
#region 私有字段
private DrawViewManager _manager = null;//管理器
#endregion
#region 初始化
///
/// 初始化
///
public void Initial(NetworkL3d nw)
{
_manager = new DrawViewManager(this.viewport);
_manager.Initial(nw);
_manager.SelectionChangedEvent += OnSelectionChanged;
}
#endregion
#region 图片背景
///
/// 显示图片背景
///
public void ShowBackground()
{
_manager?.ShowBackgroud();
}
///
/// 隐藏图片背景
///
public void HideBackground()
{
_manager?.HideBackgroud();
}
///
/// 图片背景可见性
///
public bool BackgroundVisible
{
get { return _manager?.BackgroudVisible ?? false; }
set
{
if (_manager != null)
{
_manager.BackgroudVisible = value;
}
}
}
///
/// 设置图片背景
///
public void SetBackground(BackgroundL3d bc)
{
_manager?.SetBackground(bc);
}
///
/// 设置图片背景
///
public void SetBackground(string url)
{
_manager?.SetBackground(url);
}
#endregion
#region 相机视角
#region 当前视角
///
/// 获取当前相机Setting
///
public CameraSettingL3d GetCurrentCameraSetting()
{
return _manager?.GetCurrentCameraSetting();
}
#endregion
#region 默认视角
///
/// 显示默认视图
///
public bool ShowDefaultView()
{
return _manager?.ShowDefaultView() ?? false;
}
///
/// 设置默认视图
///
public bool SetDefaultView(CameraInfoL3d info)
{
return _manager?.SetDefaultView(info) ?? false;
}
///
/// 设置默认视图名称
///
public bool SetDefaultViewName(string name)
{
return _manager?.SetDefaultViewName(name) ?? false;
}
///
/// 设置默认视图Setting
///
public bool SetDefaultViewSetting(CameraSettingL3d setting)
{
return _manager?.SetDefaultViewSetting(setting) ?? false;
}
#endregion
#region 六视图
///
/// 显示上视图
///
public bool ShowTopView()
{
return _manager?.ShowTopView() ?? false;
}
///
/// 显示下视图
///
public bool ShowBottomView()
{
return _manager?.ShowBottomView() ?? false;
}
///
/// 显示左视图
///
public bool ShowLeftView()
{
return _manager?.ShowLeftView() ?? false;
}
///
/// 显示右视图
///
public bool ShowRightView()
{
return _manager?.ShowRightView() ?? false;
}
///
/// 显示前视图
///
public bool ShowFrontView()
{
return _manager?.ShowFrontView() ?? false;
}
///
/// 显示后视图
///
public bool ShowBackView()
{
return _manager?.ShowBackView() ?? false;
}
#endregion
#region 等轴视图
///
/// 西北视角
///
public bool ShowNorthWestView()
{
return _manager?.ShowNorthWestView() ?? false;
}
///
/// 东北视角
///
public bool ShowNorthEastView()
{
return _manager?.ShowNorthEastView() ?? false;
}
///
/// 西南视角
///
public bool ShowSouthWestView()
{
return _manager?.ShowSouthWestView() ?? false;
}
///
/// 东南视角
///
public bool ShowSouthEastView()
{
return _manager?.ShowSouthEastView() ?? false;
}
#endregion
#endregion
#region 关联缩放
///
/// 缩放至可见构件
///
public void ZoomToVisual(string Id)
{
_manager?.ZoomToVisual(Id);
}
///
/// 缩放至可见构件
///
public void ZoomToVisual(List Ids)
{
_manager?.ZoomToVisual(Ids);
}
#endregion
#region 选择构件
///
/// 选择构件
///
public void SelectVisual(string Id)
{
_manager?.SelectVisual(Id);
}
///
/// 选择构件
///
public void SelectVisual(List Ids)
{
_manager?.SelectVisual(Ids);
}
//处理选择改变
private void OnSelectionChanged(List visuals)
{
this.SelectionChangedEvent?.Invoke(visuals);
}
#endregion
#region 缩放并选择构件
///
/// 缩放并选择构件
///
public void ZoomAndSelectVisual(string Id)
{
_manager?.ZoomAndSelectVisual(Id);
}
///
/// 缩放并选择构件
///
public void ZoomAndSelectVisual(List Ids)
{
_manager?.ZoomAndSelectVisual(Ids);
}
#endregion
#region 颜色覆盖
///
/// 设置颜色
///
public void SetColor(string Id, string htmlColor)
{
_manager?.SetColor(Id, htmlColor);
}
///
/// 设置颜色
///
public void SetColor(List Ids, string htmlColor)
{
_manager?.SetColor(Ids, htmlColor);
}
///
/// 设置颜色
///
public void SetColor(List list)
{
_manager?.SetColor(list);
}
///
/// 设置颜色
///
public void ClearColor(string Id)
{
_manager?.ClearColor(Id);
}
///
/// 设置颜色
///
public void ClearColor(List Ids)
{
_manager?.ClearColor(Ids);
}
///
/// 清除颜色
///
public void ClearColor()
{
_manager?.ClearColor();
}
#endregion
#region 透明度
///
/// 设置透明度
///
public void SetOpacity(string Id, double opacity)
{
_manager?.SetOpacity(Id, opacity);
}
///
/// 设置透明度
///
public void SetOpacity(List Ids, double opacity)
{
_manager?.SetOpacity(Ids, opacity);
}
///
/// 设置透明度
///
public void SetOpacity(List list)
{
_manager?.SetOpacity(list);
}
///
/// 清除透明度
///
public void ClearOpacity(string Id)
{
_manager?.ClearOpacity(Id);
}
///
/// 清除透明度
///
public void ClearOpacity(List Ids)
{
_manager?.ClearOpacity(Ids);
}
///
/// 清除透明度
///
public void ClearOpacity()
{
_manager?.ClearOpacity();
}
#endregion
#region 可见性
///
/// 设置可见性
///
public void SetVisible(string Id, bool visible)
{
_manager?.SetVisible(Id, visible);
}
///
/// 设置可见性
///
public void SetVisible(List Ids, bool visible)
{
_manager?.SetVisible(Ids, visible);
}
///
/// 设置可见性
///
public void SetVisible(List list)
{
_manager?.SetVisible(list);
}
///
/// 清除可见性
///
public void ClearVisible(string Id)
{
_manager?.ClearVisible(Id);
}
///
/// 清除可见性
///
public void ClearVisible(List Ids)
{
_manager?.ClearVisible(Ids);
}
///
/// 清除可见性
///
public void ClearVisible()
{
_manager?.ClearVisible();
}
#endregion
#region 公告文本
///
/// 显示公告文本
///
public void ShowBillboardText()
{
_manager?.ShowBillboardText();
}
///
/// 隐藏公告文本
///
public void HideBillboardText()
{
_manager?.HideBillboardText();
}
///
/// 公告文本可见性
///
public bool BillboardTextVisible
{
get { return _manager?.BillboardTextVisible ?? false; }
set
{
if (_manager != null)
{
_manager.BillboardTextVisible = value;
}
}
}
///
/// 设置公告文本
///
public void SetBillboardText(TextL3d item)
{
_manager.SetBillboardText(item);
}
///
/// 设置公告文本
///
public void SetBillboardText(List items)
{
_manager.SetBillboardText(items);
}
///
/// 清理公告文本
///
public void ClearBillboardText()
{
_manager.ClearBillboardText();
}
#endregion
#region 水流方向
///
/// 显示水流方向
///
public void ShowFlowDirection()
{
_manager?.ShowFlowDirection();
}
///
/// 隐藏水流方向
///
public void HideFlowDirection()
{
_manager?.HideFlowDirection();
}
///
/// 水流方向可见性
///
public bool FlowDirectionVisible
{
get { return _manager?.FlowDirectionVisible ?? false; }
set
{
if (_manager != null)
{
_manager.FlowDirectionVisible = value;
}
}
}
///
/// 设置水流方向
///
public void SetFlowDirection(FlowDirectionL3d item)
{
_manager.SetFlowDirection(item);
}
///
/// 设置水流方向
///
public void SetFlowDirection(List items)
{
_manager.SetFlowDirection(items);
}
///
/// 清理水流方向
///
public void ClearFlowDirection()
{
_manager.ClearFlowDirection();
}
#endregion
///
/// 卸载
///
private void OnUnloaded(object sender, RoutedEventArgs e)
{
if (_manager != null)
{
_manager.SelectionChangedEvent -= OnSelectionChanged;
_manager.Close();
_manager = null;
}
}
}
}