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(); } }