namespace Yw.WpfUI.Hydro
{
///
/// 简单高亮管理器
///
internal class SimpleHighlightManager
{
///
///
///
public SimpleHighlightManager(HelixViewport3D viewport)
{
_viewport = viewport;
}
///
/// 状态改变事件
///
public event Action StateChangedEvent;
private readonly HelixViewport3D _viewport;
private Visual3D _visual;
///
/// 高亮
///
public void Highlight(Point pt)
{
var visual = _viewport.FindNearestVisual(pt);
if (visual == null)
{
Reset();
return;
}
if (_visual == visual)
{
return;
}
Reset();
_visual = visual;
this.StateChangedEvent?.Invoke(_visual, eHighlightType.Load);
}
//重置
private void Reset()
{
if (_visual != null)
{
this.StateChangedEvent?.Invoke(_visual, eHighlightType.Unload);
_visual = null;
}
}
}
}