namespace Yw.WpfUI.Hydro
|
{
|
/// <summary>
|
/// 绘制编辑管理器
|
/// </summary>
|
internal class DrawEditManager : DrawManager
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public DrawEditManager(HelixViewport3D viewport) : base(viewport)
|
{
|
_addHelper = new DrawAddHelper(viewport, _initialHelper);
|
_editHelper = new DrawEditHelper(viewport, _initialHelper, _selectionHelper);
|
_editHelper.EditChangedEvent += OnEditChanged;
|
}
|
|
|
#region 事件集合
|
|
/// <summary>
|
/// 编辑改变事件
|
/// </summary>
|
public event Action<List<VisualL3d>> EditChangedEvent;
|
|
#endregion
|
|
protected readonly DrawAddHelper _addHelper = null;//添加辅助类
|
protected readonly DrawEditHelper _editHelper = null;//编辑辅助类
|
|
#region 添加方法
|
|
/// <summary>
|
/// 设置添加方式
|
/// </summary>
|
public void SetAddWay(eDrawAddWay addWay)
|
{
|
if (!Initialized)
|
{
|
return;
|
}
|
_addHelper.AddWay = addWay;
|
}
|
|
/// <summary>
|
/// 设置添加类型
|
/// </summary>
|
public void SetAddType(eDrawAddType addType)
|
{
|
if (!Initialized)
|
{
|
return;
|
}
|
_addHelper.AddType = addType;
|
}
|
|
|
#endregion
|
|
#region 编辑方法
|
|
/// <summary>
|
/// 开始编辑
|
/// </summary>
|
public void StartEdit()
|
{
|
_editHelper.Start();
|
}
|
|
/// <summary>
|
/// 结束编辑
|
/// </summary>
|
public void EndEdit()
|
{
|
_editHelper.End();
|
}
|
|
//处理编辑改变
|
protected virtual void OnEditChanged(List<VisualDraw3D> visual3ds)
|
{
|
if (visual3ds == null || visual3ds.Count < 1)
|
{
|
return;
|
}
|
var visuals = visual3ds.Select(x => x.Visual).ToList();
|
this.EditChangedEvent?.Invoke(visuals);
|
}
|
|
#endregion
|
|
/// <summary>
|
/// 关闭
|
/// </summary>
|
public override void Close()
|
{
|
_editHelper.EditChangedEvent -= OnEditChanged;
|
_editHelper.Dispose();
|
base.Close();
|
}
|
|
|
|
}
|
}
|