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