namespace Yw.WpfUI.Hydro
{
///
/// 抽象3D可见元素
///
internal abstract class LogicalVisual3D : MeshGeometryVisual3D
{
///
///
///
public LogicalVisual3D() { }
///
///
///
public LogicalVisual3D
(
VisualL3d vmo,
LogicalStateHelper stateHelper,
LogicalMaterialHelper materialHelper,
LogicalOverrideColorHelper overrideColorHelper,
LogicalOverrideOpacityHelper overrideOpacityHelper,
LogicalOverrideVisibleHelper overrideVisibleHelper
)
{
this.Vmo = vmo;
_stateHelper = stateHelper;
_materialHelper = materialHelper;
_overrideColorHelper = overrideColorHelper;
_overrideOpacityHelper = overrideOpacityHelper;
_overrideVisibleHelper = overrideVisibleHelper;
UpdateVisual();
}
protected readonly LogicalStateHelper _stateHelper = null; //状态辅助类
protected readonly LogicalMaterialHelper _materialHelper = null; //材质辅助类
protected readonly LogicalOverrideColorHelper _overrideColorHelper = null;//覆盖颜色辅助类
protected readonly LogicalOverrideOpacityHelper _overrideOpacityHelper = null;//覆盖透明度辅助类
protected readonly LogicalOverrideVisibleHelper _overrideVisibleHelper = null;//覆盖可见性辅助类
///
/// Vmo
///
public VisualL3d Vmo
{
get { return _vmo; }
set { _vmo = value; }
}
protected VisualL3d _vmo = null;
///
/// 更新可见元素
///
public virtual void UpdateVisual()
{
this.UpdateGeometry();
this.UpdateMaterial();
this.UpdateVisibility();
}
//更新材质
protected abstract void UpdateMaterial();
//更新几何图形
protected abstract void UpdateGeometry();
//更新可见性
protected abstract void UpdateVisibility();
}
}