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
{
///
/// LogicalViewerL3d.xaml 的交互逻辑
///
public partial class LogicalViewerL3d : UserControl
{
public LogicalViewerL3d()
{
InitializeComponent();
}
#region 事件集合
///
/// 选择改变事件
///
public event Action> SelectionChangedEvent;
#endregion
#region 私有字段
private LogicalViewManager _manager = null;//管理器
#endregion
#region 初始化
///
/// 初始化
///
public void Initial(NetworkL3d nw)
{
_manager = new LogicalViewManager(this.viewport);
_manager.Initial(nw);
_manager.SelectionChangedEvent += (List visuals) => this.SelectionChangedEvent?.Invoke(visuals);
}
#endregion
#region 相机视角
///
/// 设置上视图
///
public void SetTopView()
{
_manager?.SetTopView();
}
///
/// 设置下视图
///
public void SetBottomView()
{
_manager?.SetBottomView();
}
///
/// 设置左视图
///
public void SetLeftView()
{
_manager?.SetLeftView();
}
///
/// 设置右视图
///
public void SetRightView()
{
_manager?.SetRightView();
}
///
/// 设置前视图
///
public void SetFrontView()
{
_manager?.SetFrontView();
}
///
/// 设置后视图
///
public void SetBackView()
{
_manager?.SetBackView();
}
///
/// 西南视角
/// 从物体的左前下方观察
///
public void SetSouthWestView()
{
_manager?.SetSouthWestView();
}
///
/// 东南视角
/// 从物体的右前下方观察
///
public void SetSouthEastView()
{
_manager?.SetSouthEastView();
}
///
/// 东北视角
/// 从物体的右后上方观察
///
public void SetNorthEastView()
{
_manager?.SetNorthEastView();
}
///
/// 西北视角
/// 从物体的左后上方观察
///
public void SetNorthWestView()
{
_manager?.SetNorthWestView();
}
#endregion
#region 网格线
///
/// 显示网格线
///
public void ShowGridLines()
{
_manager?.ShowGridLines();
}
///
/// 隐藏网格线
///
public void HideGridLines()
{
_manager?.HideGridLines();
}
///
/// 网格线可见性
///
public bool GridLinesVisible
{
get
{
return _manager == null ? false : _manager.GridLinesVisible;
}
set
{
if (_manager != null)
{
_manager.GridLinesVisible = value;
}
}
}
#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);
}
#endregion
#region 缩放并选择构件
///
/// 缩放并选择构件
///
public void ZoomAndSelectVisual(string Id)
{
_manager?.ZoomAndSelectVisual(Id);
}
///
/// 缩放并选择构件
///
public void ZoomAndSelectVisual(List Ids)
{
_manager?.ZoomAndSelectVisual(Ids);
}
#endregion
}
}