namespace Yw.WpfUI.Hydro
{
///
/// 抽象状态辅助类
///
internal class LogicalStateHelper
{
//缓存
private readonly Dictionary _cache = new();
///
/// 获取状态
///
public eLogicalState GetState(VisualL3d visual)
{
if (visual == null)
{
return eLogicalState.Normal;
}
if (!_cache.ContainsKey(visual))
{
return eLogicalState.Normal;
}
return _cache[visual];
}
///
/// 设置状态
///
public void SetState(VisualL3d visual, eLogicalState state)
{
if (visual == null)
{
return;
}
_cache[visual] = state;
}
///
/// 加载状态
///
public void LoadState(VisualL3d visual, eLogicalState state)
{
var origin = GetState(visual);
_cache[visual] = origin | state;
}
///
/// 卸载状态
///
public void UnloadState(VisualL3d visual, eLogicalState state)
{
var origin = GetState(visual);
_cache[visual] = origin ^ state;
}
}
}