using System.Windows.Forms.Integration;
|
using Yw.WpfUI.Hydro;
|
|
namespace Yw.WinFrmUI.Hydro
|
{
|
public partial class EditerL3d2 : UserControl
|
{
|
public EditerL3d2()
|
{
|
InitializeComponent();
|
|
}
|
|
#region 事件集合
|
|
/// <summary>
|
/// 选择改变事件
|
/// </summary>
|
public event Action<List<VisualL3d>> SelectionChangedEvent;
|
|
/// <summary>
|
/// 添加改变事件
|
/// </summary>
|
public event Action<VisualL3d> AddChangedEvent;
|
|
/// <summary>
|
/// 编辑改变事件
|
/// </summary>
|
public event Action<List<VisualL3d>> EditChangedEvent;
|
|
#endregion
|
|
#region 私有字段
|
|
private Yw.WpfUI.Hydro.EditerL3d _wpfViewer = null;//wpf控件
|
|
#endregion
|
|
#region 初始化
|
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public void Initial(Yw.WpfUI.Hydro.NetworkL3d nw)
|
{
|
InitialWpfControl();
|
_wpfViewer.Initial(nw);
|
}
|
|
//初始化wpf控件
|
private void InitialWpfControl()
|
{
|
_wpfViewer = new WpfUI.Hydro.EditerL3d();
|
_wpfViewer.SelectionChangedEvent += OnSelectionChanged;
|
_wpfViewer.AddChangedEvent += OnAddChanged;
|
_wpfViewer.EditChangedEvent += OnEditChanged;
|
var elementHost = new ElementHost();
|
elementHost.Dock = DockStyle.Fill;
|
elementHost.Child = _wpfViewer;
|
this.Controls.Clear();
|
this.Controls.Add(elementHost);
|
}
|
|
#endregion
|
|
#region 工作面板
|
|
/// <summary>
|
/// 显示工作面板
|
/// </summary>
|
public void ShowWorkPanel()
|
{
|
_wpfViewer?.ShowWorkPanel();
|
}
|
|
/// <summary>
|
/// 隐藏工作面板
|
/// </summary>
|
public void HideWorkPanel()
|
{
|
_wpfViewer?.HideWorkPanel();
|
}
|
|
/// <summary>
|
/// 工作面板可见性
|
/// </summary>
|
public bool WorkPanelVisible
|
{
|
get
|
{
|
return _wpfViewer == null ? false : _wpfViewer.WorkPanelVisible;
|
}
|
set
|
{
|
if (_wpfViewer != null)
|
{
|
_wpfViewer.WorkPanelVisible = value;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 设置工作面板
|
/// </summary>
|
public void SetWorkPanel(WorkPanelL3d workPanel)
|
{
|
_wpfViewer?.SetWorkPanel(workPanel);
|
}
|
|
#endregion
|
|
#region 图片背景
|
|
/// <summary>
|
/// 显示图片背景
|
/// </summary>
|
public void ShowBackground()
|
{
|
_wpfViewer?.ShowBackground();
|
}
|
|
/// <summary>
|
/// 隐藏图片背景
|
/// </summary>
|
public void HideBackground()
|
{
|
_wpfViewer?.HideBackground();
|
}
|
|
/// <summary>
|
/// 图片背景可见性
|
/// </summary>
|
public bool BackgroundVisible
|
{
|
get
|
{
|
return _wpfViewer == null ? false : _wpfViewer.BackgroundVisible;
|
}
|
set
|
{
|
if (_wpfViewer != null)
|
{
|
_wpfViewer.BackgroundVisible = value;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 设置图片背景
|
/// </summary>
|
public void SetBackground(BackgroundL3d bc)
|
{
|
_wpfViewer?.SetBackground(bc);
|
}
|
|
/// <summary>
|
/// 设置图片背景
|
/// </summary>
|
public void SetBackground(string url)
|
{
|
_wpfViewer?.SetBackground(url);
|
}
|
|
#endregion
|
|
#region 相机视角
|
|
/// <summary>
|
/// 显示上视图
|
/// </summary>
|
public void ShowTopView()
|
{
|
_wpfViewer?.ShowTopView();
|
}
|
|
/// <summary>
|
/// 显示下视图
|
/// </summary>
|
public void ShowBottomView()
|
{
|
_wpfViewer?.ShowBottomView();
|
}
|
|
/// <summary>
|
/// 显示左视图
|
/// </summary>
|
public void ShowLeftView()
|
{
|
_wpfViewer?.ShowLeftView();
|
}
|
|
/// <summary>
|
/// 显示右视图
|
/// </summary>
|
public void ShowRightView()
|
{
|
_wpfViewer?.ShowRightView();
|
}
|
|
/// <summary>
|
/// 显示前视图
|
/// </summary>
|
public void ShowFrontView()
|
{
|
_wpfViewer?.ShowFrontView();
|
}
|
|
/// <summary>
|
/// 显示后视图
|
/// </summary>
|
public void ShowBackView()
|
{
|
_wpfViewer?.ShowBackView();
|
}
|
|
/// <summary>
|
/// 显示西南视角
|
/// 从物体的左前下方观察
|
/// </summary>
|
public void ShowSouthWestView()
|
{
|
_wpfViewer?.ShowSouthWestView();
|
}
|
|
/// <summary>
|
/// 显示东南视角
|
/// 从物体的右前下方观察
|
/// </summary>
|
public void ShowSouthEastView()
|
{
|
_wpfViewer?.ShowSouthEastView();
|
}
|
|
/// <summary>
|
/// 显示东北视角
|
/// 从物体的右后上方观察
|
/// </summary>
|
public void ShowNorthEastView()
|
{
|
_wpfViewer?.ShowNorthEastView();
|
}
|
|
/// <summary>
|
/// 显示西北视角
|
/// 从物体的左后上方观察
|
/// </summary>
|
public void ShowNorthWestView()
|
{
|
_wpfViewer?.ShowNorthWestView();
|
}
|
|
#endregion
|
|
#region 关联缩放
|
|
/// <summary>
|
/// 缩放至可见构件
|
/// </summary>
|
public void ZoomToVisual(string Id)
|
{
|
_wpfViewer?.ZoomToVisual(Id);
|
}
|
|
/// <summary>
|
/// 缩放至可见构件
|
/// </summary>
|
public void ZoomToVisual(List<string> Ids)
|
{
|
_wpfViewer?.ZoomToVisual(Ids);
|
}
|
|
#endregion
|
|
#region 选择构件
|
|
/// <summary>
|
/// 选择构件
|
/// </summary>
|
public void SelectVisual(string Id)
|
{
|
_wpfViewer?.SelectVisual(Id);
|
}
|
|
/// <summary>
|
/// 选择构件
|
/// </summary>
|
public void SelectVisual(List<string> Ids)
|
{
|
_wpfViewer?.SelectVisual(Ids);
|
}
|
|
//处理选择改变
|
protected virtual void OnSelectionChanged(List<VisualL3d> visuals)
|
{
|
this.SelectionChangedEvent?.Invoke(visuals);
|
}
|
|
#endregion
|
|
#region 缩放并选择构件
|
|
/// <summary>
|
/// 缩放并选择构件
|
/// </summary>
|
public void ZoomAndSelectVisual(string Id)
|
{
|
_wpfViewer?.ZoomAndSelectVisual(Id);
|
}
|
|
/// <summary>
|
/// 缩放并选择构件
|
/// </summary>
|
public void ZoomAndSelectVisual(List<string> Ids)
|
{
|
_wpfViewer?.ZoomAndSelectVisual(Ids);
|
}
|
|
|
#endregion
|
|
#region 颜色覆盖
|
|
/// <summary>
|
/// 设置颜色
|
/// </summary>
|
public void SetColor(string Id, string htmlColor)
|
{
|
_wpfViewer?.SetColor(Id, htmlColor);
|
}
|
|
/// <summary>
|
/// 设置颜色
|
/// </summary>
|
public void SetColor(List<string> Ids, string htmlColor)
|
{
|
_wpfViewer?.SetColor(Ids, htmlColor);
|
}
|
|
/// <summary>
|
/// 设置颜色
|
/// </summary>
|
public void SetColor(List<ColorL3d> list)
|
{
|
_wpfViewer?.SetColor(list);
|
}
|
|
/// <summary>
|
/// 清除颜色
|
/// </summary>
|
public void ClearColor(string Id)
|
{
|
_wpfViewer?.ClearColor(Id);
|
}
|
|
/// <summary>
|
/// 清除颜色
|
/// </summary>
|
public void ClearColor(List<string> Ids)
|
{
|
_wpfViewer?.ClearColor(Ids);
|
}
|
|
/// <summary>
|
/// 清除颜色
|
/// </summary>
|
public void ClearColor()
|
{
|
_wpfViewer?.ClearColor();
|
}
|
|
#endregion
|
|
#region 透明度
|
|
/// <summary>
|
/// 设置透明度
|
/// </summary>
|
public void SetOpacity(string Id, double opacity)
|
{
|
_wpfViewer?.SetOpacity(Id, opacity);
|
}
|
|
/// <summary>
|
/// 设置透明度
|
/// </summary>
|
public void SetOpacity(List<string> Ids, double opacity)
|
{
|
_wpfViewer?.SetOpacity(Ids, opacity);
|
}
|
|
/// <summary>
|
/// 设置透明度
|
/// </summary>
|
public void SetOpacity(List<OpacityL3d> list)
|
{
|
_wpfViewer?.SetOpacity(list);
|
}
|
|
/// <summary>
|
/// 清除透明度
|
/// </summary>
|
public void ClearOpacity(string Id)
|
{
|
_wpfViewer?.ClearOpacity(Id);
|
}
|
|
/// <summary>
|
/// 清除透明度
|
/// </summary>
|
public void ClearOpacity(List<string> Ids)
|
{
|
_wpfViewer?.ClearOpacity(Ids);
|
}
|
|
/// <summary>
|
/// 清除透明度
|
/// </summary>
|
public void ClearOpacity()
|
{
|
_wpfViewer?.ClearOpacity();
|
}
|
|
#endregion
|
|
#region 可见性
|
|
/// <summary>
|
/// 设置可见性
|
/// </summary>
|
public void SetVisible(string Id, bool visible)
|
{
|
_wpfViewer?.SetVisible(Id, visible);
|
}
|
|
/// <summary>
|
/// 设置可见性
|
/// </summary>
|
public void SetVisible(List<string> Ids, bool visible)
|
{
|
_wpfViewer?.SetVisible(Ids, visible);
|
}
|
|
/// <summary>
|
/// 设置可见性
|
/// </summary>
|
public void SetVisible(List<VisibleL3d> list)
|
{
|
_wpfViewer?.SetVisible(list);
|
}
|
|
/// <summary>
|
/// 清除可见性
|
/// </summary>
|
public void ClearVisible(string Id)
|
{
|
_wpfViewer?.ClearVisible(Id);
|
}
|
|
/// <summary>
|
/// 清除可见性
|
/// </summary>
|
public void ClearVisible(List<string> Ids)
|
{
|
_wpfViewer?.ClearVisible(Ids);
|
}
|
|
/// <summary>
|
/// 清除可见性
|
/// </summary>
|
public void ClearVisible()
|
{
|
_wpfViewer?.ClearVisible();
|
}
|
|
#endregion
|
|
#region 公告文本
|
|
/// <summary>
|
/// 显示公告文本
|
/// </summary>
|
public void ShowBillboardText()
|
{
|
_wpfViewer?.ShowBillboardText();
|
}
|
|
/// <summary>
|
/// 隐藏公告文本
|
/// </summary>
|
public void HideBillboardText()
|
{
|
_wpfViewer?.HideBillboardText();
|
}
|
|
/// <summary>
|
/// 公告文本可见性
|
/// </summary>
|
public bool BillboardTextVisible
|
{
|
get
|
{
|
return _wpfViewer == null ? false : _wpfViewer.BillboardTextVisible;
|
}
|
set
|
{
|
if (_wpfViewer != null)
|
{
|
_wpfViewer.BillboardTextVisible = value;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 设置公告文本
|
/// </summary>
|
public void SetBillboardText(TextL3d item)
|
{
|
_wpfViewer.SetBillboardText(item);
|
}
|
|
/// <summary>
|
/// 设置公告文本
|
/// </summary>
|
public void SetBillboardText(List<TextL3d> items)
|
{
|
_wpfViewer.SetBillboardText(items);
|
}
|
|
/// <summary>
|
/// 清理公告文本
|
/// </summary>
|
public void ClearBillboardText()
|
{
|
_wpfViewer.ClearBillboardText();
|
}
|
|
#endregion
|
|
#region 水流方向
|
|
/// <summary>
|
/// 显示水流方向
|
/// </summary>
|
public void ShowFlowDirection()
|
{
|
_wpfViewer?.ShowFlowDirection();
|
}
|
|
/// <summary>
|
/// 隐藏水流方向
|
/// </summary>
|
public void HideFlowDirection()
|
{
|
_wpfViewer?.HideFlowDirection();
|
}
|
|
/// <summary>
|
/// 水流方向可见性
|
/// </summary>
|
public bool FlowDirectionVisible
|
{
|
get
|
{
|
return _wpfViewer == null ? false : _wpfViewer.FlowDirectionVisible;
|
}
|
set
|
{
|
if (_wpfViewer != null)
|
{
|
_wpfViewer.FlowDirectionVisible = value;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 设置水流方向
|
/// </summary>
|
public void SetFlowDirection(FlowDirectionL3d item)
|
{
|
_wpfViewer.SetFlowDirection(item);
|
}
|
|
/// <summary>
|
/// 设置水流方向
|
/// </summary>
|
public void SetFlowDirection(List<FlowDirectionL3d> items)
|
{
|
_wpfViewer.SetFlowDirection(items);
|
}
|
|
/// <summary>
|
/// 清理水流方向
|
/// </summary>
|
public void ClearFlowDirection()
|
{
|
_wpfViewer.ClearFlowDirection();
|
}
|
|
#endregion
|
|
#region 添加模式
|
|
/// <summary>
|
/// 设置添加模式
|
/// </summary>
|
public void SetAddMode(eDrawAddWay addWay, eDrawAddType addType)
|
{
|
_wpfViewer?.SetAddMode(addWay, addType);
|
}
|
|
/// <summary>
|
/// 设置添加方式
|
/// </summary>
|
public void SetAddWay(eDrawAddWay addWay)
|
{
|
_wpfViewer?.SetAddWay(addWay);
|
}
|
|
/// <summary>
|
/// 设置添加类型
|
/// </summary>
|
public void SetAddType(eDrawAddType addType)
|
{
|
_wpfViewer?.SetAddType(addType);
|
}
|
|
//处理添加改变
|
private void OnAddChanged(VisualL3d visual)
|
{
|
if (visual == null)
|
{
|
return;
|
}
|
this.AddChangedEvent?.Invoke(visual);
|
}
|
|
#endregion
|
|
#region 编辑模式
|
|
/// <summary>
|
/// 开始编辑
|
/// </summary>
|
public void StartEdit()
|
{
|
_wpfViewer?.StartEdit();
|
}
|
|
/// <summary>
|
/// 结束编辑
|
/// </summary>
|
public void EndEdit()
|
{
|
_wpfViewer?.EndEdit();
|
}
|
|
//处理编辑改变
|
protected virtual void OnEditChanged(List<VisualL3d> visuals)
|
{
|
if (visuals == null || visuals.Count < 1)
|
{
|
return;
|
}
|
this.EditChangedEvent?.Invoke(visuals);
|
}
|
|
#endregion
|
|
//关闭
|
protected virtual void Close()
|
{
|
if (_wpfViewer != null)
|
{
|
_wpfViewer.AddChangedEvent -= OnAddChanged;
|
_wpfViewer.EditChangedEvent -= OnEditChanged;
|
_wpfViewer.SelectionChangedEvent -= OnSelectionChanged;
|
}
|
}
|
|
}
|
}
|